Tradicionalmente, o Python é usado para criar serviços de rede, um back-end na Web e, é claro, para coletar e processar dados, geralmente Big. Tentaremos discutir essas áreas em partes iguais com os relatórios dos ecossistemas no próximo Moscow Python Conf ++. Esta conferência para desenvolvedores de Python será realizada em Moscou, nos dias 22 e 23 de outubro, e eu chefio seu Comitê de Programa. O programa, pode-se dizer, sofreu, conseguimos fazê-lo exatamente como planejado - diversificado. O back-end, o Big Data e os recursos de idioma, combinamos harmoniosamente com relatórios sobre testes, inteligência artificial, segurança e DevOps. Gostaria de compartilhar o resultado com antecedência, portanto, ofereço uma revisão dos relatórios nas seções - o que não se aplica a você de forma alguma pode ser ignorado.

Embora, espere, não se apresse para pular para o próximo tópico. A imagem acima diz: “Conferência Profissional” - ou seja, é destinada a desenvolvedores profissionais. Mas os convidados que vemos não são apenas desenvolvedores de Python, mas também programadores que usam principalmente uma pilha diferente, mas estão interessados nos recursos do Python para tarefas auxiliares. Os últimos são relatórios, por exemplo, sobre Apache Kafka, Wagtail, SQLAlchemy ou linter.
Todos os relatórios serão elaborados de maneira que você possa entender mesmo sem entender o tópico específico do discurso, expandindo seus horizontes, mas, ao mesmo tempo, os profissionais poderão obter os problemas mais complexos. Convencionalmente, existem três blocos de tópicos e "diversos":
Nossa conferência é principalmente sobre comunicação. Entende-se que o palestrante define um tópico interessante, conta sua visão, compartilha sua experiência, sugere discutir possíveis abordagens para os colegas. Isso tudo significa que, se você conseguir amortecer sua própria introversão e usar todas as possibilidades ao máximo, depois da conferência, você estará cheio de novas idéias e maneiras de resolver problemas antigos. Quais problemas serão discutidos, continue lendo.
Desenvolvimento de rede, back-end e web
Começamos a revisão com uma seção séria e bastante universal, que inclui quase um terço de todos os relatórios.
Processamento de dados de alto desempenho em Python
Atualmente, o Python é a principal ferramenta para converter grandes dados não estruturados.
numpy e
numba são bibliotecas populares, mas ao trabalhar com elas, é fácil para um desenvolvedor cair na armadilha e perder toda a produtividade.
Donald Whyte (Engineers Gate)
explicará como numpy / numba funciona sob o capô e como eles usam a vetorização para processar rapidamente grandes quantidades de dados. Essas ferramentas permitiram a Donald acelerar os cálculos científicos em
10 ou mais vezes ; será muito útil adotar sua experiência.
Experiência usando o Apache Kafka no World of Tanks
Levon Avakyan em seu
relatório dirá como o Apache Kafka é usado nos projetos Wargaming, quais dificuldades surgem nessa conexão e como superá-las. Também não é segredo que a Wargaming usa Python amplamente para o desenvolvimento. Levon compartilhará sua experiência de usar várias bibliotecas para o
Apache Kafka em Python .

Alvéola: quando você quer algo melhor do que apenas Django
No mundo do desenvolvimento do PHP, existe o WordPress no qual quase qualquer pessoa pode criar um site simples e conectar um especialista mais tarde, quando você precisar expandir esse site. No mundo Python, até recentemente, não havia nada assim. Mas agora o projeto
Wagtail apareceu - um CMS completo baseado em Django para sites modernos.
Igor Mosyagin da Lamoda
lhe dirá como o Wagtail funciona, onde é conveniente usar, e é realmente simples assim.
Django sob microscópio
No
relatório do desenvolvedor
do Core, Django Channels
Artyom Malyshev (já familiar para nós, por exemplo, nesta
palestra ), você aprenderá todos os detalhes da vida dos mecanismos internos do Django,
desde o primeiro byte da solicitação HTTP até o último byte da resposta .
Uma verdadeira extravagância espera por você sobre como os formulários do analisador funcionam, como o SQL é compilado, como o mecanismo de modelo para HTML é implementado, como o pool de conexões é gerenciado etc. Tudo isso em ordem cronológica de processamento de objetos WSGI.
Além de Jupyter. Sistemas de construção de tubulações de processamento de dados
Andrey Popov lhe dirá quais estruturas do Python são usadas pela Positive Technologies para coletar uma
enorme quantidade de dados e analisá-los em busca de ameaças. Um
relatório se concentrará em como coletar adequadamente esses dados e armazená-los de forma conveniente para diferentes equipes da empresa. Além disso, abordaremos essas questões:
- Quando é apropriado usar aipo / coelho e quando é melhor criar um pipeline de dados.
- Comparação de Airflow e Luigi .
- Luigi 101 - conceitos básicos e exemplos de uso.
Como resultado, podemos descobrir qual tecnologia escolher em um caso específico e como ela ficará no código.
Histórico de atualização da arquitetura do projeto
Alexander Borgardt compartilhará uma história não trivial da evolução de um projeto. Começou no tornado, depois parte dele foi reescrita em C ++ para melhorar o desempenho de direção. Então chegou 2018 e,
agora, muitos hacks antigos não são necessários . O pacote asyncio + uvloop + aiohttp geralmente não apresenta desempenho pior. É sobre esse caso, usando um exemplo específico, com recomendações claras, sobre as quais falaremos no relatório de Alexander.

50 tons de aipo
Oleg Churkin está envolvido no desenvolvimento de Python há 8 anos e agora desempenha o papel de techlide na inicialização da TechOps fintech. Quando dizemos fintech, queremos dizer -
Big data . No
relatório de Oleg
, aprendemos sobre os meandros do uso do
agendador de aipo para processar big data:
- para que tipos de tarefas o aipo pode e deve ser usado;
- como iniciar 500 mil tarefas e manter vivos o banco de dados e serviços externos;
- como monitorar o desempenho da tarefa;
- como não perder tarefas ao implantar;
- como escrever código de tarefa suportado.
Também veremos as bibliotecas do autor, que permitem escalar com êxito o Aipo e monitorar filas / tarefas no Grafana e no Prometheus. Talvez você já tenha visto alguns spoilers
aqui .
Linguagem Python, sua evolução e uso
Antes de passar para o meu amado Python, observarei que nosso programa de conferências é tal que qualquer convidado pode escolher um caso interessante, ouvir o orador e, o mais importante, se comunicar com todas as pessoas que vieram para o mesmo relatório.
Trapaça social. Quanto mais importante é o tópico do relatório, mais próximo faz sentido se sentar. Primeiro, será mais conveniente fazer perguntas ao orador. Em segundo lugar, outros especialistas interessados farão o mesmo, você poderá discutir o desempenho com eles e continuar a discussão suavemente no intervalo do café.
Deixe-me lembrá-lo que a conferência, na minha opinião, é sobre comunicação e essa oportunidade não deve ser negligenciada.
Atualize o Python 2.7 para o Python 3.6 e não morra
A evolução é um fenômeno natural. Ela também não passou no Python, mas alguns projetos ainda usam o Python 2.7 por um motivo simples - devido à
complexidade da migração entre versões .
Alexander Polishchuk (Código de Segurança) se oferece para
compartilhar seu caminho espinhoso de renovação. A partir do relatório, aprendemos sobre o ancinho e os cones amontoados e, como exemplo vivo, entenderemos que o resultado, é claro, vale a pena.
Relatório Hollywood Linter
Nikita Sobolev, fundadora do estúdio wemake.services, já se apresentou em mais de uma de nossas reuniões e já está familiarizada com você. Conseguimos atrair Nikita para gravar o podcast
Python Junior , durante o qual o aplicativo para o relatório foi criado.
Como o
nome indica , desta vez nos concentraremos
na verificação automatizada de código em Python. Esse linter foi desenvolvido diretamente no estúdio da Nikita, ou seja, teremos a oportunidade de perguntar diretamente ao desenvolvedor da ferramenta. Além disso, o
interativo é prometido, o que significa que será não apenas informativo, mas também divertido.
Como ensinar as pessoas a programar e aproveitar a vida
O palestrante murmura miseravelmente, explicando o termo escrito no quadro. Seu vizinho está desenhando algo sobre a mesa. Ao dormir, você economiza apenas a necessidade de anotar todas as palavras do professor. Isso é familiar? Infelizmente, o processo de aprendizagem não mudou muito. Palestras chatas se transformaram em webinars chatos, testes chatos se transformaram em testes on-line chatos, tarefas chatas se transformaram em tarefas chatas e inúteis.
Ilya Lebedev é um desenvolvedor Python experiente e criador da plataforma de aprendizado devman.org. Como co-organizador, o MoscowPython desenvolve e ensina em
learn.python.ru há vários anos. Em seu relatório, Ilya levantará a questão da educação de programadores, com quem tudo não é muito. Além disso, em geral. Uma maneira simples de contratar juniores de graduados de uma universidade, faculdade ou especialidade específica não funciona. Ilya, com base em sua experiência, tentará
explicar quais dificuldades surgem ao aprender a desenvolver e dará conselhos sobre o que fazer para melhorar suas habilidades e ajudar a torná-lo subordinado.
Refatoração em Python: padrões e abordagens de design
Tin Marković, do Kiwi.com (República Tcheca)
, compartilhará sua experiência na organização de uma
enorme quantidade de códigos Python
extremamente complexos . Como restaurar a ordem, atualizar o código, impedir que uma nova bagunça se desenvolva e geralmente
aderir a altos padrões na base de código. Tudo isso é como amamos exemplos reais e experiências pessoais.
Pilão de dentro para fora. Como ele faz isso
Maxim Mazaev desenvolve em Python no CIAN, está interessado em linguagem interna, assincronia e programação funcional. Seu
relatório faz eco ao de Nikita Sobolev
sobre linters , mas será focado em uma ferramenta principal, que
entenderemos completamente . Armado com esse conhecimento, o aplicaremos em nome da melhoria da qualidade do código -
escreveremos nosso plugin para o Pylint .
Criando compiladores DSL em Python
O uso de pequenas
linguagens de programação para áreas de assunto individuais (DSL) permite lidar com a complexidade dos sistemas de software quando necessário. Como resultado, o problema surge da prototipagem rápida de compiladores DSL. Por exemplo, antes de
Peter Sovetov, do MIREA, essa tarefa surgiu no contexto de acelerar o desenvolvimento de
núcleos de processadores especializados
em FPGA . Peter
contará sobre os estágios e resultados impressionantes de seu trabalho em Moscou Python Conf ++.
Erros comuns na arquitetura de aplicativos Django
Alexey Polovinkin, da Agima, define o objetivo ambicioso do
relatório - mostrar às equipes de desenvolvimento de back-end como construir a arquitetura dos aplicativos Django, como não tropeçar em uma centena de armadilhas e não expirar todos os prazos. Considere exemplos dos
erros de equipe
mais comuns no estágio inicial de desenvolvimento. Vamos discutir como projetar a arquitetura dos aplicativos Django, por que você deve
usar uma arquitetura distribuída e manter a estática longe do Django. Vamos esquecer a
refatoração , abordar muitas questões importantes, nos familiarizar com a experiência dos desenvolvedores do Agima.
Aprendizado de máquina, inteligência artificial e visualização de dados
Aprendizado de máquina e Python são um casal associativo persistente. E, é claro, em Moscou, o Python Conf ++ não ficará isento de relatórios sobre tudo.
Como incorporar o ML moderno em um legado severo
Quando se trata da automação de modelos ML, na maioria das vezes eu quero dizer, primeiro, novos projetos e, segundo, Jupyter e algum tipo de ambiente ao seu redor. Essa abordagem não é adequada para um sistema de análise em um banco, onde geralmente há muito legado.
No entanto, Oleg Mangutov conseguiu fazer amigos modernos do Machine Learning em um ambiente em que Oracle e SOAP estão em uso com a ajuda da cola universal - Python. A principal conclusão deste
relatório , na minha opinião, é que um desenvolvedor regular, com a devida diligência, pode implementar algoritmos de aprendizado de máquina em projetos existentes sem reescrever tudo do zero e sem estudar completamente como o Oracle funciona. E o benefício disso pode ser enorme, os usuários corporativos ao vivo podem usar a interface desenvolvida.
Teoria das redes neurais
Beau Carnes tem uma vasta experiência no ensino de tópicos de TI e atualmente está preparando um novo curso de aprendizado profundo. Seu relatório será dividido em duas partes (almoço no meio para digerir o conhecimento). Na primeira parte do
relatório, abordaremos os conceitos básicos: educação com e sem professor; redes neurais para previsão; descida gradiente. Discutiremos
como os métodos de aprendizado profundo diferem dos
métodos tradicionais de aprendizado de máquina e lidaremos com eles, não limitados às estruturas.
Na segunda parte da apresentação, estamos aguardando
codificação ao vivo no Jupyter Notebook. Se você estiver em Python puro do zero, criará uma rede neural que aprende e reconhece ... mas o que ele reconhece, você aprenderá em 22 de outubro.
Como proteger o algoritmo de aprendizado de máquina de exemplos adversos
Quando usamos dados públicos para aprendizado de máquina, precisamos confiar neles para estarmos completos e limpos. No entanto, como é fácil perceber no exemplo do tradutor do Google, os dados podem parecer corretos, mas na verdade, em vez de traduzir corretamente, ensinam ao sistema interpretações inesperadas. Essa é uma variação do exemplo contraditório.
O especialista em análise de dados de segurança digital
Sergey Dudorov nos apresentará esse problema em detalhes, falar sobre métodos de ataque, defesa e teste de algoritmos de aprendizado de máquina para combater essas manipulações usando as
bibliotecas CleverHans e
Adversarial-robustness-robustness-toolbox .
Assistente virtual do Python
Oleg Plichko promete demonstrar que é possível criar um
chatbot com inteligência artificial usando ferramentas comuns: TensorFlow, Aipo, Django. Aprenderemos com o
relatório como tornar nosso assistente virtual realmente útil e veremos um exemplo de um bot de bate-papo muito interessante que muitos de nós podem achar útil no futuro. Podemos fazer a Oleg todas as nossas perguntas sobre bots e serviços cognitivos.
Jupyter e PySpark no Hadoop para análise de big data
O aprendizado de máquina é um campo novo e de rápido crescimento; ainda não existem muitas práticas estabelecidas. Portanto, todo cientista de dados faz muita experimentação e deseja fazê-lo rapidamente. Bem, se essas são hipóteses simples, como se há dados suficientes e se estão corretas. Mas e se você precisar aplicar uma função auto-escrita complexa a um grande número de objetos? Além disso, todas as tarefas devem ser resolvidas no cluster de produção, no qual outras 50 pessoas trabalham.
Pavel Tarasov lhe dirá como testar rapidamente hipóteses complexas usando o número mínimo de ferramentas e código. Nesse caso, Jupyter e PySpark são o que você pode criar e não passar uma semana preparando o ambiente, como costuma ser o caso dos big data, porque eles são grandes.
A conferência será realizada no Infrasprismst, uma pequena sala será alocada para o conteúdo gerado pelo usuário. Ou seja, as mitaps que qualquer pessoa pode coletar são a principal coisa que pessoas com idéias semelhantes são encontradas. Será possível organizar no local, mas se você se inscrever com antecedência, será agendado.
Diversos: Teste, Segurança, DevOps
Outros relatórios únicos, eles não entram em grandes seções, mas resolvem o problema da diversidade. Os tópicos, a propósito, são muito importantes e interessantes, uma engenharia social vale o que vale, ou aqui está um "guia de hackers".
Guia de um hacker para proteger aplicativos da Web Python
Espero que seus projetos na Web nunca tenham sido atacados ou invadidos, mas provavelmente alguém de seus amigos enfrentou suas tristes conseqüências.
Eyitemi Egbejule , nosso colega, um dos organizadores da PyCon Nigéria,
afirma que, armado com práticas seguras de codificação e algumas bibliotecas úteis, você pode
esquecer para sempre as vulnerabilidades nos aplicativos Web Python. Com base em sua
vasta experiência em auditoria de segurança de projetos da Web, Eyitemi lhe dirá quais erros os desenvolvedores de serviços de rede cometem com mais freqüência, onde procurar vulnerabilidades em primeiro lugar e quais são as mais rápidas de fechar. Não necessariamente será um software, os problemas podem estar na lógica ou no uso de configurações padrão comuns, mas incorretas.
Esperamos que este relatório permita aos desenvolvedores dar uma nova olhada em seu código e talvez até começar a aplicar dicas logo na conferência.
Infraestrutura eficiente de selênio
Você está usando o Selenium para testes automáticos, mas está cansado de lidar com os freios e as batidas? Então, uma
aula de Ivan Krutov (Aerokube) sobre a infraestrutura eficaz do Selenium é para você.
Na aula principal, Ivan promete mostrar como implantar o cluster Selenium em algumas etapas simples do zero, com base nos projetos de código
aberto Selenoid e Ggr , que permitem substituir a obsoleta Grade de Selênio e parar de atormentar com o Selênio. Você verá como é fácil gravar vídeos de testes em execução, adicionar novas versões de navegadores e assistir logs em tempo real.
Havia tanto material que essa aula de mestre levaria duas horas em 23 de outubro - antes e depois do almoço, a fim de ter tempo para refletir cuidadosamente sobre tudo.
Dark Python: engenharia social e hackers com 70% de sucesso
Se você acredita na fonte de informação mais confiável - o filme, os hackers agora usam
métodos de engenharia social em vez do console.
Lukas Hurych, do Twisto.cz, como hobby, tenta vários métodos de ataque com seus colegas. Os resultados são impressionantes - 70% de sucesso. Além disso, nosso Python desempenha um papel importante na automação desse processo.
Lucas o ajudará a
descobrir como o inimigo se parece e quais métodos são os mais comuns e eficazes para que possamos nos defender contra eles em nosso back-end e UX.
Aceleração SQLAlchemy para astronautas arquitetônicos
A enorme vantagem do SQLAlchemy é que ele é um
ORM muito comum e uma das melhores soluções para se comunicar com um banco de dados em uma linguagem de alto nível. Mas algumas vezes essa conveniência pode se transformar em surpresas. Obviamente, essa conveniência às vezes pode se transformar em surpresas.
Alexei Starkov, da Qrator Labs, usando o exemplo de uma configuração de rede de filtragem de tráfego com um grande número (centenas de milhares) de registros,
mostrará como
obter alto desempenho . Para fazer isso, precisamos passar do uso mais ingênuo do SQLAlchemy ORM para operações em massa e do uso do
SQLAlchemy Core , além de detalhes em 23 de outubro às 16:00.
Boas e más práticas para escrever código testável
Em seu relatório,
Dmitry Dygalo, do kiwi.com,
discutirá abordagens que ajudarão a
tornar o código mais compreensível , confiável e testável. Vamos falar sobre uma variedade de problemas e obter conselhos específicos, por exemplo, de que variáveis globais são um conceito conveniente que geralmente não é usado quando necessário. Como encontrar um compromisso entre isolamento e velocidade em um banco de dados de teste. Sobre
injeção de dependência e separação de execução da implementação usando exemplos de bibliotecas populares. E certamente isso não é tudo.
Parece que isso é mais que suficiente para formar uma idéia do que acontecerá na conferência. Pelo trabalho no programa, quero agradecer a todos os membros do Comitê do Programa: Vladimir Filonov, Zlata Obukhovskaya,
Alexander Khayorov e
Ivan Tsyganov e Leonid Kalneus.
Através de operações lógicas complexas, já colocamos todos os relatórios em um
cronograma harmonioso (
aqui, pdf com visualização por tópico). Descobriu-se o que tínhamos em mente ao iniciar nossos preparativos para a conferência há seis meses: os tópicos estão distribuídos por toda a variedade de usos do Python, um número razoável de falantes de inglês, há algo sobre o que conversar sobre uma xícara de café e um copo de cerveja na festa posterior.
Vejo você no Moscow Python Conf ++ 2018 !