Python en español #23: Tertulia 2021-03-09

Python en español - Un pódcast de Jesús Cea

Categorías:

Hoy estamos poquitos en la tertulia y eso permite hablar a gente que nunca ha hablado antes: ¿Cómo puede aprender Python un novato? Python y seguridad https://podcast.jcea.es/python/23 Audio procesado con "rnnoise": https://jmvalin.ca/demo/rnnoise/. Participantes: Jesús Cea, email: [email protected], twitter: @jcea, https://blog.jcea.es/, https://www.jcea.es/. Conectando desde Madrid. Jesús, conectando desde Ferrol. Víctor Ramírez, twitter: @virako, programador python y amante de vim, conectando desde Huelva. Gato, desde Chile. 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] Hoy no se han conectado los habituales (Virako conectó un rato en medio de la sesión). Por suerte, Jesús, un oyente silencioso habitual, se apiadó de mí. ¿Cómo empezamos a programar en Python? Empezar con el tutorial: https://docs.python.org/es/3/tutorial/index.html. [05:43] Jesús Cea coleccionaba lenguajes de programación en su juventud. Forth: https://es.wikipedia.org/wiki/Forth. Ensamblador: https://es.wikipedia.org/wiki/Lenguaje_ensamblador. [06:23] "La mejor herramienta para cada trabajo" tiene un coste oculto. Especializarse. [07:23] Mercado laboral en España para trabajar en remoto. Los empleadores tienen exigencias poco realistas. [09:18] Hay mucho material para aprender. Saqueadores edición técnica: http://set-ezine.org/. [12:48] Formación formal. [14:03] Comunidades locales Python: Python Vigo: https://www.python-vigo.es/. Se intentaba montar algo en La Coruña. Makerspaces: A Industriosa https://aindustriosa.org/. [16:23] ¿Recursos que pueda usar un novato para aprender? Asociación Python España: https://www.es.python.org/. Lista de correo Python-es: https://mail.python.org/mailman/listinfo/python-es. Internet. [19:23] Raspberry PI https://www.raspberrypi.org/, ESP8266 https://es.wikipedia.org/wiki/ESP8266, ESP32 https://es.wikipedia.org/wiki/ESP32. [21:43] Puesta al día de la semana. [23:28] Encuesta mundial de programadores de Python: Python Developers Survey 2020 Results https://www.jetbrains.com/lp/python-developers-survey-2020/. [24:04] Ya estamos repasando las grabaciones, con vista a publicarlas. Las notas jugarán un papel importante en las grabaciones. Capítulos. [26:03] IPFS: https://es.wikipedia.org/wiki/IPFS. Peer 2 Peer: https://es.wikipedia.org/wiki/Peer-to-peer. webrtc: https://es.wikipedia.org/wiki/WebRTC. Contribuir compartiendo las fotos de Python España. BitTorrent: https://es.wikipedia.org/wiki/BitTorrent. [29:33] Métricas de calidad de código. Complejidad ciclomática: https://es.wikipedia.org/wiki/Complejidad_ciclom%C3%A1tica. Radon: https://pypi.org/project/radon/. Cobertura de test: Coverage https://pypi.org/project/coverage/. Cada pequeño paso ayuda. [35:08] Porcentaje de código nuevo y mantenimiento. [36:33] Se perdió parte de la grabación de la tertulia de la semana pasada. Explicaciones. Explicación de cómo se graban las tertulias. [41:13] Packt https://www.packtpub.com/. Muchos libros digitales sobre Python. Un libro gratis al día: https://www.packtpub.com/free-learning. Bot de telegram de notificaciones diarias: https://t.me/packtpubfreelearning. [44:33] Funciones que son malas prácticas en C. C++ 'strcpy' gives a Warning (C4996): https://stackoverflow.com/questions/4012222/c-strcpy-gives-a-warning-c4996 [46:23] Tema recurrente: ¿poner deberes? [48:08] ¿Progresos sobre Issue24676: Error in pickle using cProfile https://bugs.python.org/issue24676, visto en tertulias anteriores? Bug poco prioritario. Jesús Cea propone algunos rodeos al problema. runpy: https://docs.python.org/3/library/runpy.html. [52:09] Volvemos al tema de cómo un novato puede aprender desde cero. Hacer un proyecto pequeño. Intentar no extenderse mucho, no hacer "muchas cosas". Si no tiene base, el código del novato va a ser malo y con mucho más esfuerzo del necesario. Hace falta cierto tutelaje. Examinar un proceso ajeno "pequeño" y estudiarlo. Project Euler: https://projecteuler.net/. Kata: https://es.wikipedia.org/wiki/Kata. Ventajas de un libro: Aprendizaje estructurado, gradual y que prioriza lo importante. Aprende Python en un fin de semana || Libro – PDF – EPUB – Descargar https://elcientificodedatos.com/aprende-python-en-un-fin-de-semana/. Python España: Aprende Python https://www.es.python.org/pages/aprende-python.html. Comunidades locales. ¿Las charlas valen para algo? ¿Alguien que no sabe programar en absoluto entiende qué significa a = a + 1? Commodore VIC-20: https://en.wikipedia.org/wiki/Commodore_VIC-20. BASIC: https://es.wikipedia.org/wiki/BASIC. Escribir código a mano puede ayudar. [01:11:13] ¿Los emails de recordatorio a las listas de correo sirven para algo? ¿Son spam? [01:13:43] Python y seguridad. ¿Recomendaciones para novatos? OWASP: https://owasp.org/. OWASP Top Ten Web Application Security Risks: https://owasp.org/www-project-top-ten/. Listas de correo de seguridad. Desbordamiento de búfer: https://es.wikipedia.org/wiki/Desbordamiento_de_buffer. Podcast: Security Now https://twit.tv/shows/security-now. Hispasec: Noticias de seguridad diaria: Una al Día: https://unaaldia.hispasec.com/. The CERT C Secure Coding Standard https://www.amazon.com/CERT-Secure-Coding-Standard/dp/0321563212. Cada lenguaje tiene sus propios fallos de seguridad típicos, propios de las idiosincrasias o el estilo de ese lenguaje. [01:22:43] PEP 578 -- Python Runtime Audit Hooks https://www.python.org/dev/peps/pep-0578/ Audit events table: https://docs.python.org/3/library/audit_events.html. [01:24:43] Los "Framework" te protegen de fallos típicos conocidos https://es.wikipedia.org/wiki/Framework. Si el "framework" es popular y se le encuentra un bug, eres susceptible a un ataque masivo. Ejemplo: WordPress: https://es.wikipedia.org/wiki/WordPress. Hay que preocuparse de tenerlo actualizado. Django: https://www.djangoproject.com/. Ataque de cadena de suministro: https://es.wikipedia.org/wiki/Ataque_a_cadena_de_suministro. [01:28:53] DevOps: https://es.wikipedia.org/wiki/DevOps. Docker: https://www.docker.com/. ¿Quién se preocupa de actualizarlo? [01:31:53] Volvemos al tema OWASP https://owasp.org/. OWASP Top Ten Web Application Security Risks: https://owasp.org/www-project-top-ten/. [01:32:53] ¿En qué posición está Python respecto a la seguridad, respecto a otros lenguajes de programación? DB-API 2.0: PEP 249 -- Python Database API Specification v2.0 https://www.python.org/dev/peps/pep-0249/. sqlite3: https://docs.python.org/3/library/sqlite3.html. Aunque un lenguaje de programación sea razonablemente seguro, los programadores introducen fallos de seguridad en su código. Algunos ejemplos. pickle: https://docs.python.org/3/library/pickle.html. eval: https://docs.python.org/3/library/functions.html#eval. [01:36:43] Ataque de cadena de suministro: https://es.wikipedia.org/wiki/Ataque_a_cadena_de_suministro. Poison packages – “Supply Chain Risks” user hits Python community with 4000 fake modules: https://nakedsecurity.sophos.com/2021/03/07/poison-packages-supply-chain-risks-user-hits-python-community-with-4000-fake-modules/. Cualquiera puede subir un módulo nuevo a PYPI: https://pypi.org/. [01:40:53] Costes del código abierto. La reputación no basta. Trabajo ingrato. Depender del trabajo voluntario es un problema. [01:43:13] Auditoría automática de código. Hay una diferencia entre código con bugs y ataques maliciosos conscientes. Ejemplo, Antivirus. VirusTotal: https://www.virustotal.com/gui/, Hispasec https://hispasec.com/es/. Un clásico de 1984: "Reflections on Trusting Trust": https://users.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf. [01:46:08] Es un problema universal. Dependemos del trabajo de mucha gente que no cobra, que lo hace por amor al arte. Referencia obligada a XKCD https://xkcd.com/: Dependency https://xkcd.com/2347/. Wikipedia XKCD: https://es.wikipedia.org/wiki/Xkcd. OpenSSL https://es.wikipedia.org/wiki/OpenSSL: Heartbleed https://es.wikipedia.org/wiki/Heartbleed. WordPress: https://es.wikipedia.org/wiki/WordPress. [01:50:03] Empresas que dan soporte comercial a productos de código abierto. Red Hat: https://es.wikipedia.org/wiki/Red_Hat. Opinión de Jesús Cea: Se vende tranquilidad, no seguridad. Desplazas la responsabilidad a otro. Gestión de riesgo. Proteger su puesto de trabajo. "No han despedido nunca a nadie por comprar IBM": https://loscuenca.com/2010/04/nunca-han-despedido-a-nadie-por-contratar-a-______/ [01:55:23] Hoy ha sido un día raro en la tertulia, faltan (casi) todos los habituales y habla gente que no ha hablado nunca. Jesús Cea ya ha perdido el miedo a que no se conecte nadie a la tertulia semanal. [02:00:33] Falta la voz del "novato". Aprende Python en un fin de semana || Libro – PDF – EPUB – Descargar https://elcientificodedatos.com/aprende-python-en-un-fin-de-semana/. [02:09:03] Traducción de la documentación Python al español: Documentación Python en Español: https://docs.python.org/es/3/. Documentación oficial de Python en español https://pyar.discourse.group/t/documentacion-oficial-de-python-en-espanol/238/23. GitHub: https://github.com/python/python-docs-es/. Documentación oficial de Python en Español https://elblogdehumitos.com/posts/documentacion-oficial-de-python-en-espanol/. docs.python.org en Español https://elblogdehumitos.com/posts/docspythonorg-en-espanol/. [02:11:28] Final.