Conferencia sobre Python y sobre comunicación.

Tradicionalmente, Python se usa para crear servicios de red, un back-end en la web y, por supuesto, para recopilar y procesar datos, generalmente Big. Intentaremos discutir estas áreas en partes iguales con los informes del ecosistema en el próximo Moscow Python Conf ++. Esta conferencia para desarrolladores de Python se llevará a cabo en Moscú los días 22 y 23 de octubre, y encabezo su Comité de Programa. El programa, se podría decir, ha sufrido, logramos hacerlo exactamente como lo planeamos: diverso. Las funciones de back-end, Big Data y lenguaje, combinamos armoniosamente con informes sobre pruebas, inteligencia artificial, seguridad y DevOps. Me gustaría compartir el resultado con usted de antemano, por lo que ofrezco una revisión de los informes en las secciones, lo que no se aplica a usted de ninguna manera se puede omitir.



Aunque, espera, no te apresures a pasar al siguiente tema. La imagen de arriba dice: "Conferencia profesional", es decir, está destinada a desarrolladores profesionales. Pero los invitados que vemos no son solo desarrolladores de Python, sino también programadores que utilizan principalmente una pila diferente, pero están interesados ​​en las capacidades de Python para tareas auxiliares. Los últimos en desaparecer son informes, por ejemplo, sobre Apache Kafka, Wagtail, SQLAlchemy o linter.

Todos los informes se construirán de tal manera que pueda comprender incluso sin comprender el tema específico del discurso, ampliando así sus horizontes, pero al mismo tiempo, los profesionales podrán llegar a los problemas más complejos. Convencionalmente, hay tres bloques de temas y "varios":


Nuestra conferencia es principalmente sobre comunicación. Se entiende que el orador establece un tema interesante, cuenta su visión, comparte su experiencia, sugiere discutir posibles enfoques para los colegas. Todo esto significa que si logra amortiguar su propia introversión y utiliza todas las posibilidades al máximo, luego de la conferencia estará lleno de nuevas ideas y formas de resolver viejos problemas. Qué problemas se discutirán, sigue leyendo.

Red, backend y desarrollo web


Comenzamos la revisión con una sección seria y bastante universal, que incluye casi un tercio de todos los informes.

Procesamiento de datos de alto rendimiento en Python


Python es actualmente la herramienta principal para convertir grandes datos no estructurados. numpy y numba son bibliotecas populares, pero cuando se trabaja con ellas, es fácil para un desarrollador caer en la trampa y perder toda la productividad. Donald Whyte (Engineers Gate) explicará cómo funcionan numpy / numba bajo el capó y cómo usan la vectorización para procesar rápidamente grandes cantidades de datos. Estas herramientas le permitieron a Donald acelerar los cálculos científicos en 10 o más veces , será muy útil adoptar su experiencia.

Experiencia usando Apache Kafka en World of Tanks


Levon Avakyan en su informe contará cómo se usa Apache Kafka en los proyectos de Wargaming, qué dificultades surgen en esta conexión y cómo superarlos. Tampoco es ningún secreto que Wargaming usa Python ampliamente para el desarrollo. Levon compartirá su experiencia de usar varias bibliotecas para Apache Kafka en Python .



Lavandera: cuando quieres algo mejor que solo Django


En el mundo del desarrollo de PHP, existe WordPress en el que casi cualquier persona puede crear un sitio simple y conectar a un especialista más tarde cuando necesite expandir este sitio. En el mundo de Python, hasta hace poco, no había nada como esto. Pero ahora ha aparecido el proyecto Wagtail: un CMS completo basado en Django para sitios web modernos. Igor Mosyagin de Lamoda le dirá cómo funciona Wagtail, dónde es conveniente de usar y es realmente así de simple.

Django bajo microscopio


Del informe del desarrollador principal de Django Channels Artyom Malyshev (que ya conocemos, por ejemplo, de esta charla ), aprenderá todos los detalles de la vida de los mecanismos internos de Django desde el primer byte de la solicitud HTTP hasta el último byte de la respuesta .

Le espera un gran espectáculo sobre cómo funcionan los formularios del analizador, cómo se compila SQL, cómo se implementa el motor de plantillas para HTML, cómo se gestiona el grupo de conexiones, etc. Todo esto en orden cronológico de procesamiento de objetos WSGI.

Más allá de Jupyter. Sistemas de construcción de tuberías de procesamiento de datos


Andrey Popov le dirá qué marcos de trabajo para Python son utilizados por Positive Technologies para recopilar una gran cantidad de datos y analizarlos en busca de amenazas. Un informe se centrará en cómo recopilar adecuadamente estos datos y almacenarlos en una forma conveniente para los diferentes equipos de la empresa. Pero además de esto, abordaremos tales preguntas:

  • ¿Cuándo es apropiado usar apio / conejo y cuándo es mejor construir una tubería de datos?
  • Comparación de Airflow y Luigi .
  • Luigi 101 - conceptos básicos y ejemplos de su uso.

Como resultado, podemos determinar qué tecnología elegir en un caso particular y cómo se verá en el código.

Historial de actualizaciones de arquitectura del proyecto


Alexander Borgardt compartirá una historia bastante trivial de la evolución de un proyecto. Comenzó en un tornado, luego parte de él fue reescrito en C ++ para mejorar el rendimiento de la conducción. Luego llegó 2018, y resultó que ahora no se necesitan muchos hacks viejos . El paquete asyncio + uvloop + aiohttp generalmente no dará peor rendimiento. Se trata de tal caso, usando un ejemplo específico, con recomendaciones claras, de lo que hablaremos en el informe de Alexander.



50 tonos de apio


Oleg Churkin ha estado involucrado en el desarrollo de Python durante 8 años y ahora desempeña el papel de techlide en la startup Fintech de TechOps. Cuando decimos fintech, queremos decir: Big data . Del informe de Oleg , aprendemos sobre las complejidades del uso del programador de Celery para procesar grandes datos:

  • para qué tipos de tareas el apio puede y debe usarse;
  • cómo iniciar 500 mil tareas y dejar con vida la base de datos y los servicios externos;
  • cómo monitorear el desempeño de la tarea;
  • cómo no perder tareas al implementar;
  • cómo escribir código de tarea compatible.

También echaremos un vistazo a las bibliotecas del autor, que permiten escalar con éxito Celery y monitorear las colas / tareas en Grafana y Prometheus. Quizás ya hayas visto algunos spoilers aquí .

Lenguaje Python, su evolución y uso.


Antes de pasar a mi amado Python, notaré que nuestro programa de conferencia es tal que cualquier invitado puede elegir un caso interesante para sí mismo, escuchar al orador y, lo más importante, comunicarse con todas las personas que llegaron al mismo informe.

Truco social. Cuanto más importante es el tema del informe, más cerca tiene sentido sentarse. Primero, será más conveniente hacer preguntas al orador. En segundo lugar, otros especialistas interesados ​​harán lo mismo, puede discutir el desempeño con ellos y continuar sin problemas la discusión sobre un descanso para tomar café.

Permítanme recordarles que, en mi opinión, la conferencia trata sobre la comunicación, y esta oportunidad no debe ser desaprovechada.

Actualice Python 2.7 a Python 3.6 y no muera


La evolución es un fenómeno natural. Tampoco aprobó Python, pero algunos proyectos aún usan Python 2.7 por una simple razón: debido a la complejidad de la migración entre versiones . Alexander Polishchuk (Código de seguridad) ofrece compartir su espinoso camino de renovación. Del informe aprendemos sobre el rastrillo y los conos hacinados, y con un ejemplo vivo entenderemos que el resultado, por supuesto, vale la pena.

Informe de Hollywood Linter


Nikita Sobolev, fundadora del estudio wemake.services, ha actuado en más de una de nuestras reuniones y ya está familiarizado con usted. Logramos atraer a Nikita para grabar el podcast Python Junior , durante el cual se creó la aplicación para el informe.

Como su nombre lo indica , esta vez nos centraremos en la verificación automática de código en Python. Este linter fue desarrollado directamente en el estudio de Nikita, es decir, tendremos la oportunidad de preguntarle directamente al desarrollador de la herramienta. Además, se promete interactiva , lo que significa que no solo será informativo, sino también entretenido.

Cómo enseñar a la gente a programar y disfrutar la vida


El profesor murmura miserablemente, explicando el término escrito en la pizarra. Tu vecino está dibujando algo en el escritorio. Del sueño ahorras solo la necesidad de escribir cada palabra del profesor. ¿Eso es familiar? Desafortunadamente, el proceso de aprendizaje no ha cambiado mucho. Las conferencias aburridas se convirtieron en seminarios web aburridos, las pruebas aburridas se convirtieron en pruebas aburridas en línea, las tareas aburridas se convirtieron en tareas aburridas e inútiles.

Ilya Lebedev es un experimentado desarrollador de Python y creador de la plataforma de aprendizaje devman.org. Como coorganizador, MoscowPython ha estado desarrollando y enseñando en learn.python.ru durante varios años. En su informe, Ilya planteará la cuestión de la educación de los programadores, con quienes no todo es muy. Por otra parte, en general. Una forma sencilla de contratar jóvenes de graduados de una universidad, facultad o especialidad en particular no funciona. Ilya, basándose en su experiencia, tratará de explicar qué dificultades surgen para aprender a desarrollarse y le dará consejos sobre qué hacer para mejorar sus habilidades y ayudarlo a subordinarse.

Refactorización en Python: patrones de diseño y enfoques


Tin Marković de Kiwi.com (República Checa) compartirá su experiencia en la organización de una gran cantidad de código Python extremadamente complejo . Cómo restaurar el orden, cómo actualizar el código, evitar que se desarrolle un nuevo desastre y, en general, cumplir con los altos estándares en la base del código. Todo esto es cómo nos encantan los ejemplos reales y la experiencia personal.

Pylint de adentro hacia afuera. Como lo hace


Maxim Mazaev se desarrolla en Python en CIAN, está interesado en el lenguaje interno, la asincronía y la programación funcional. Su informe se hace eco del informe de Nikita Sobolev sobre linters , pero se centrará en una herramienta principal, que entenderemos a fondo . Armados con este conocimiento, lo aplicaremos en nombre de mejorar la calidad del código; escribiremos nuestro complemento para Pylint .

Crear compiladores DSL en Python


El uso de pequeños lenguajes de programación para áreas temáticas individuales (DSL) le permite lidiar con la complejidad de los sistemas de software cuando lo necesite. Como resultado, surge el problema de la creación rápida de prototipos de compiladores DSL. Por ejemplo, antes de Peter Sovetov de MIREA, esta tarea surgió en el contexto de acelerar el desarrollo de núcleos de procesador especializados en FPGA . Peter contará sobre las etapas y los impresionantes resultados de su trabajo en Moscow Python Conf ++.

Errores comunes en la arquitectura de las aplicaciones de Django


Alexey Polovinkin de Agima establece el ambicioso objetivo del informe : mostrar a los equipos de desarrollo de back-end cómo construir la arquitectura de las aplicaciones de Django, cómo no tropezar con más de cien trampas y no vencer todos los plazos. Considere ejemplos de los errores de equipo más comunes en la etapa inicial de desarrollo. Analicemos cómo diseñar la arquitectura de las aplicaciones de Django, por qué debería usar una arquitectura distribuida y mantener las estáticas alejadas de Django. Olvidémonos de la refactorización , toquemos muchos temas importantes, conozcamos la experiencia de los desarrolladores de Agima.

Aprendizaje automático, inteligencia artificial y visualización de datos


El aprendizaje automático y Python son una pareja asociativa persistente. Y, por supuesto, en Moscú Python Conf ++ no estará exento de informes sobre todo al respecto.

Cómo incrustar ML moderno en un duro legado


Cuando se trata de la automatización de los modelos ML, a menudo me refiero, en primer lugar, a nuevos proyectos y, en segundo lugar, a Jupyter y algún tipo de entorno a su alrededor. Este enfoque no es adecuado para un sistema de análisis en un banco, donde generalmente hay mucho legado.

Sin embargo, Oleg Mangutov logró hacer amigos modernos de Machine Learning con un entorno en el que Oracle y SOAP están en uso con la ayuda del pegamento universal: Python. La conclusión principal de este informe , en mi opinión, es que un desarrollador habitual, con la debida diligencia, puede implementar algoritmos de aprendizaje automático en proyectos existentes sin tener que volver a escribir todo desde cero y sin estudiar a fondo cómo funciona Oracle. Y el beneficio de esto puede ser enorme, los usuarios de negocios en vivo pueden usar la interfaz desarrollada.

Teoría de las redes neuronales.


Beau Carnes tiene una vasta experiencia enseñando temas de TI y actualmente está preparando un nuevo curso de aprendizaje profundo. Su informe se dividirá en dos partes (almuerzo en el medio para digerir el conocimiento). En la primera parte del informe, tocaremos los conceptos básicos: educación con y sin maestro; redes neuronales para predicción; Descenso de gradiente. Discutiremos cómo los métodos de aprendizaje profundo difieren de los métodos tradicionales de aprendizaje automático, y trataremos con ellos, sin limitarnos a los marcos.

En la segunda parte de la presentación, estamos esperando la codificación en vivo en el Jupyter Notebook. Bo, sobre la marcha en Python puro desde cero, creará una red neuronal que aprende y reconoce ... pero lo que reconoce, aprenderá el 22 de octubre.

Cómo proteger el algoritmo de aprendizaje automático de ejemplos adversos


Cuando usamos datos públicos para el aprendizaje automático, tenemos que confiar en que sean completos y limpios. Sin embargo, como es fácil notar en el ejemplo del traductor de Google, los datos pueden parecer correctos, pero de hecho, en lugar de traducir correctamente, enseñan al sistema interpretaciones inesperadas. Esta es una variación del ejemplo de confrontación.

El especialista en análisis de datos de seguridad digital Sergey Dudorov nos presentará este problema en detalle, hablará sobre métodos de ataque, defensa y prueba de algoritmos de aprendizaje automático para contrarrestar tales manipulaciones utilizando las bibliotecas CleverHans y Adversarial- robustness -toolbox .

Asistente virtual de Python


Oleg Plichko promete demostrar que es posible crear un chatbot con inteligencia artificial utilizando herramientas comunes: TensorFlow, Celery, Django. Aprenderemos del informe cómo hacer que nuestro asistente virtual sea realmente útil, y veremos un ejemplo de un bot de chat muy interesante que muchos de nosotros podemos encontrar útil en el futuro. Podemos hacerle a Oleg todas nuestras preguntas sobre bots y servicios cognitivos.

Jupyter y PySpark en Hadoop para Big Data Analysis


El aprendizaje automático es un campo nuevo y de rápido crecimiento; todavía no hay muchas prácticas establecidas. Por lo tanto, cada científico de datos pone mucha experimentación y quiere hacerlo rápidamente. Bueno, si se trata de hipótesis simples, como si hay suficientes datos y si son correctos. Pero, ¿qué sucede si necesita aplicar una función autoescrita compleja a una gran cantidad de objetos? Además, todas las tareas deben resolverse en el clúster de producción, en el que trabajan otras 50 personas.

Pavel Tarasov le dirá cómo probar rápidamente hipótesis complejas utilizando la cantidad mínima de herramientas y código. En este caso, Jupyter y PySpark son de lo que puede construir un stand y no pasar una semana preparando el entorno, como suele ser el caso con Big Data, porque son Big.

La conferencia se llevará a cabo en Infrasprismst, se asignará una pequeña sala para el contenido generado por el usuario. Es decir, los mitaps que cualquiera puede recolectar son lo principal que se encuentran personas con ideas afines. Será posible organizarse en el acto, pero si se registra con anticipación, se lo programará.

Varios: pruebas, seguridad, DevOps


Más informes individuales, no entran en grandes secciones, pero resuelven el problema de la diversidad. Los temas, por cierto, son muy importantes e interesantes, vale la pena una ingeniería social, o aquí hay una "guía de piratería".

Una guía de hackers para asegurar aplicaciones web de Python


Espero que sus proyectos web nunca hayan sido atacados o pirateados, pero lo más probable es que alguien de sus amigos haya enfrentado sus tristes consecuencias. Nuestro colega, uno de los organizadores de PyCon Nigeria, Eyitemi Egbejule, afirma que, armado con prácticas de codificación seguras y algunas bibliotecas útiles, puede olvidarse para siempre de las vulnerabilidades en las aplicaciones web de Python. Basado en su amplia experiencia en la auditoría de seguridad de proyectos web, Eyitemi le dirá qué errores cometen los desarrolladores de servicios de red con mayor frecuencia, dónde buscar vulnerabilidades en primer lugar y cuáles son los más rápidos para cerrar. No necesariamente será un software, los problemas pueden estar en la lógica o en el uso de configuraciones predeterminadas comunes, pero incorrectas.

Esperamos que este informe permita a los desarrolladores echar un nuevo vistazo a su código y tal vez incluso comenzar a aplicar sugerencias allí mismo en la conferencia.

Infraestructura de selenio eficiente


¿Está utilizando Selenium para las pruebas automáticas, pero está cansado de lidiar con sus frenos y choques? Entonces, una clase magistral de Ivan Krutov (Aerokube) sobre infraestructura de Selenium efectiva es para usted.

En la clase magistral, Ivan promete mostrar cómo implementar el clúster Selenium en unos pocos pasos simples desde cero basados ​​en los proyectos de código abierto Selenoid y Ggr , que permiten reemplazar la obsoleta Selenium Grid y dejar de atormentar con Selenium. Verá lo fácil que es grabar videos de pruebas en ejecución, agregar nuevas versiones de navegadores y ver registros en tiempo real.

Había tanto material que esta clase magistral tomaría dos horas el 23 de octubre, antes y después del almuerzo, para tener tiempo de pensar cuidadosamente todo.

Dark Python: ingeniería social y piratería con una tasa de éxito del 70%


Si crees que la fuente de información más confiable, la película, los hackers ahora usan métodos de ingeniería social en lugar de la consola. Lukas Hurych de Twisto.cz, como pasatiempo, prueba varios métodos de ataque contra sus colegas. Los resultados son impresionantes: 70% de éxito. Además, nuestro Python juega un papel importante en la automatización de este proceso.

Lucas te ayudará a descubrir cómo se ve el enemigo y qué métodos son los más comunes y efectivos para que podamos defendernos de él en nuestro backend y UX.

SQLAlchemy Acceleration for Architectural Astronauts


La gran ventaja de SQLAlchemy es que es un ORM muy común y una de las mejores soluciones para comunicarse con una base de datos en un lenguaje de alto nivel. Pero a veces esta conveniencia a veces puede convertirse en sorpresas. Obviamente, esta conveniencia a veces puede convertirse en sorpresas. Alexei Starkov de Qrator Labs, utilizando el ejemplo de una configuración de red de filtrado de tráfico con una gran cantidad (cientos de miles) de registros, mostrará cómo lograr un alto rendimiento . Para hacer esto, necesitamos pasar del uso más ingenuo de SQLAlchemy ORM a operaciones masivas y el uso de SQLAlchemy Core , y detalles el 23 de octubre a las 16:00.

Buenas y malas prácticas para escribir código comprobable


En su informe, Dmitry Dygalo de kiwi.com discutirá los enfoques que ayudarán a que el código sea más comprensible , confiable y comprobable. Hablemos sobre una variedad de problemas y obtengamos consejos específicos, por ejemplo, que las variables globales son un concepto conveniente que a menudo se usa no cuando es necesario. Cómo encontrar un compromiso entre el aislamiento y la velocidad en una base de datos de prueba. Acerca de la inyección de dependencia y la separación de la ejecución de la implementación utilizando ejemplos de bibliotecas populares. Y seguramente esto no es todo.

Parece que esto es más que suficiente para hacerse una idea de lo que sucederá en la conferencia. Para trabajar en el programa, quiero agradecer a todos los miembros del Comité del Programa: Vladimir Filonov, Zlata Obukhovskaya, Alexander Khayorov a, Ivan Tsyganov a, Leonid Kalneus.

A través de operaciones lógicas complejas, ya hemos colocado todos los informes en un calendario armonioso ( aquí pdf con visualización por tema). Resultó lo que teníamos en mente cuando comenzamos nuestros preparativos para la conferencia hace seis meses: los temas se distribuyen en toda la variedad de usos de Python, un número razonable de hablantes de inglés, hay algo de qué hablar con una taza de café y un vaso de cerveza en la fiesta posterior.

¡Nos vemos en Moscú Python Conf ++ 2018 !

Source: https://habr.com/ru/post/es425473/


All Articles