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 !