Conference about Python and about communication

    Traditionally, Python is used to create network services, backends on the web and, of course, to collect and process data, usually Large. We will try to discuss these areas in equal shares with ecosystem reports at the upcoming Moscow Python Conf ++. This conference for Python developers will be held in Moscow on October 22 and 23, and I head its Program Committee. The program, it can be said, was won, we managed to make it exactly as we had planned - diverse. Backend, Big Data and language features, we harmoniously combine with reports on testing, artificial intelligence, security and DevOps. I would like to share the result with you in advance, so I suggest reviewing the reports in sections - something that does not apply to you in any way can be squandered.

    Although, wait, do not rush to jump on the next topic. The picture above says: “Professional Conference” - that is, it is intended for professional developers. But as guests, we see not only the actual Python-developers, but also programmers, mostly using a different stack, but interested in the capabilities of Python for auxiliary tasks. The last should come reports, for example, about Apache Kafka, Wagtail, SQLAlchemy or linters.

    All reports will be structured in such a way that it will be possible to penetrate without even understanding the specific topic of the speech, thereby broadening your horizons, but at the same time the pros will be able to get to the most intricate problems. It is conditionally possible to distinguish three blocks of topics and "different":

    Our conference is primarily about communication. It is understood that the speaker sets an interesting topic, tells his vision, shares his experience, offers to discuss possible approaches to his colleagues. This all means that if you manage to suppress your own introversion and use all the possibilities to the maximum, then after the conference you will be full of new ideas and ways to solve old problems. What problems will be discussed, read on.

    Web, backend and web development

    We begin the review with a serious and fairly universal section, which includes almost a third of all reports.

    High Performance Data Processing in Python

    Python is currently the main tool for converting large unstructured data. numpy and  numba popular libraries, but when working with them developers easy to fall into the trap of losing the entire performance. Donald Whyte (Engineers Gate) will explain how numpy / numba work under the hood and how they use vectorization to quickly process large amounts of data. Donald made it possible for these tools to speed up scientific calculations 10 or more times , it would be very useful to learn from his experience.

    Experience using Apache Kafka in World of Tanks

    Levon Avakian in his report will tell you how Apache Kafka is used in Wargaming projects, what difficulties arise in this connection and how to overcome them. It is also no secret that in the company Wargaming, Python is widely used for development. Levon will share the experience of using various libraries for Apache Kafka in Python .

    Wagtail: when you want something nicer than just Django

    In the world of PHP development, there is WordPress, where almost anyone can make a simple site, and connect a specialist later when you need to expand this site. Until recently, nothing happened in the world of Python. But now the Wagtail project has emerged - a full-featured Django-based CMS for modern websites. Igor Mosyagin from Lamoda will tell you how Wagtail works, where it is convenient to use it, and whether it really is that simple.

    Django under microscope

    From the  report of the core developer of Django Channels Artyom Malyshev (already familiar to us, for example, from this speech ) you will learn all the details of the life of the internal mechanisms of Django from the first byte of the HTTP request to the last byte of the response .

    A real extravaganza awaits you on how the parser-forms work, how SQL is compiled, how the HTML template is implemented, how the connection pool is managed, etc. All this in chronological order of processing WSGI objects.

    Beyond Jupyter. Data Processing Pipeline Systems

    Andrey Popov will tell you what frameworks for Python are used in Positive Technologies to collect a huge amount of data and analyze them for threats. And the  report will focus on how to correctly collect this data and store them in a form convenient for different teams in the company. But besides this, we will touch on such questions:

    • When it is appropriate to use celery / rabbit, and when it is better to build a dateline.
    • Comparing Airflow and Luigi .
    • Luigi 101 - the basic concepts and examples of their use.

    As a result, we can figure out which technology to choose in a particular case, and how it will look in the code.

    History update project architecture

    Alexander Borgardt will share a fairly non-trivial evolutionary history of a single project. It began on the tornado, then to improve the driving characteristics of the part was rewritten in C ++. Then came 2018, and it turned out that now many old hacks are not needed . A bunch of asyncio + uvloop + aiohttp will most often give performance no worse. It is about such a case, on a concrete example, with clear recommendations, and let's talk about Alexander's report.

    50 shades of celery

    Oleg Churkin has been developing in Python for 8 years and now plays the role of a techlide in the TechOps FINTECH startup. When we say finteh, we mean - Big data . From  Oleg's report, we learn about the intricacies of using Celery scheduler for processing big data:

    • for which types of tasks Celery can and should be used;
    • how to run 500 thousand tasks and leave the database and external services alive;
    • how to monitor task performance;
    • how not to lose the task in case of delay;
    • how to write supported task code.

    And let's consider the author's libraries, which allow to successfully scale Celery and monitor queues / tasks in Grafana and Prometheus. Maybe you've already seen some spoilers here .

    Python language, its evolution and use

    Before you go to your beloved Python, I note that the conference program is such that any guest could choose an interesting case, listen to the speaker and, most importantly, talk with all those people who came to the same report.

    Social cheat. The more important the subject of the report to you, the closer to the scene it makes sense to sit down. First, it will be more convenient to ask questions to the speaker. Secondly, other interested specialists will do the same, you will be able to discuss the presentation with them and smoothly continue the discussion during the coffee break.

    Let me remind you that the conference, in my opinion, is about communication, and you should not neglect this opportunity.

    Upgrade Python 2.7 to Python 3.6 and not die

    Evolution is a natural phenomenon. Python is also not spared, but some projects still use Python 2.7 for one simple reason - due to the complexity of migrating between versions . Alexander Polishchuk (Security Code) offers to share his thorny expensive update. From the report we learn about the rake and stuffed cones, and by living example, we realize that the result is certainly worth it.

    Holivary report about the linter

    Nikita Sobolev, the founder of the studio, spoke on more than one of our meetings and is already well known to you. We managed to lure Nikita to record the Python Junior podcast , during which the application for the report was created.

    As the  name implies , this time it will be about automated verification of Python code . This linter was developed right in the studio of Nikita, that is, we will have the opportunity to ask the developer of the tool directly. In addition, the interactive is promised , which means it will be not only informative, but also entertaining.

    How to teach people programming and enjoy life

    Lecturer chores mutteringly, explaining the term written on the blackboard. Your neighbor is drawing something on the desk. Only the need to write down every word of the lecturer saves you from sleep. Familiar? Unfortunately, the learning process has not changed much. Boring lectures turned into boring webinars, boring tests turned into boring online tests, boring tasks turned into boring and useless tasks.

    Ilya Lebedev is an experienced Python developer, creator of the learning platform. As a co-organizer, MoscowPython has been developing and teaching for several years at In his report, Ilya will raise the issue of education of programmers, with whom everything is not very much. And, in general. The simple way of hiring juniors from graduates of a particular university, faculty or specialty does not work. Ilya, based on his experience, will try to explain what difficulties arise in the course of development training, and will give advice on what to do in order to improve his skills and help make it a subordinate.

    Refactoring in Python: design patterns

    Tin Marković from (Czech Republic) will share the experience of organizing a huge number of extremely complex Python code . How to put things in order, how to update the code, not allowing a new mess to develop, and generally adhere to high standards in the code base. All this is how we love with real examples and personal experience.

    Pylint from the inside. How he does it

    Maxim Mazaev develops in Python in TSIAN, he is interested in the internal of the language, asynchrony and functional programming. His report echoes a report Nikita Sobolev about Linter , but will be focused on one main instrument, but which we shall understand thoroughly . Armed with this knowledge, apply it in the name of improving the quality of the code - we will write our own plugin for Pylint .

    Creating DSL compilers in Python

    The use of small programming languages ​​for individual subject areas (DSL) allows you to deal with the complexity of software systems when you need it. As a consequence, the task of rapid prototyping of DSL compilers arises. For example, before Peter Sovetov of MIREA, this task arose in the context of speeding up the process of developing specialized processor cores on FPGAs . Peter will tell about the stages and impressive results of work at Moscow Python Conf ++.

    Common Errors in Django Application Architecture

    Alexei Polovinkin from Agima sets the ambitious goal of the report  - to show backend development teams how to build the architecture of Django applications, how not to stumble over a hundred pitfalls and not overdue all deadlines. Consider examples of the most common mistakes of teams at the initial stage of development. Discuss how to design a Django application architecture, why use a distributed architecture, and keep statics away from Django. Let's forget about refactoring , we will touch on many important issues, get acquainted with the experience of Agima developers.

    Machine learning, artificial intelligence and data visualization

    Machine learning and Python are a strong associative pair. And, of course, Moscow Python Conf ++ will not do without reports about everything about it.

    How to implement modern ML in the harsh legacy

    When it comes to automation of ML-models, most often it means, firstly, new projects, and secondly, Jupyter and some environment around it. This approach is not suitable for the analytics system in the bank, where, as a rule, there is a lot of legacy.

    However, Oleg Mangutov managed to make friends with modern Machine Learning with the environment, where Oracle and SOAP are running, with the help of a universal glue - Python. The main conclusion of this report , in my opinion, is that an ordinary developer, with due diligence, can introduce machine learning algorithms into existing projects without rewriting everything from scratch and not thoroughly studying how Oracle works. And the benefit of this can be a colossal one; live business users will be able to use the developed interface.

    Theory of Neural Networks

    Beau Carnes has extensive experience in teaching on IT topics and is now preparing a new course on deep learning. His report will be divided into two parts (lunch in the middle for the digestion of knowledge). In the first part of the report we will touch on basic concepts: training with and without a teacher; neural networks for prediction; gradient descent. Let's discuss how deep learning methods differ from traditional methods of machine learning, and deal with them, not limited to frameworks.

    In the second part of the speech we are waiting for live-coding in Jupyter Notebook. Bo, on the move in pure Python from scratch, will create a neural network that learns and recognizes ... but what you recognize will be learned on October 22.

    How to protect machine learning algorithm from adversarial examples

    When we use public data for machine learning, we have to expect that they will be complete and clean. However, as is easy to see from the example of Google translator, the data may look like correct, and in fact, instead of a correct translation, teach the system unexpected interpretations. This is one of the variations of the adversarial example.

    Digital Security Data Analysis Specialist Sergey Dudorov will acquaint us in detail with this problem, will talk about the methods of attack, protection and testing of machine learning algorithms for countering such manipulations using the CleverHans and  Adversarial-robustness-toolbox libraries .

    Python Virtual Assistant

    Oleg Plichko promises to clearly demonstrate that you can create a chat bot with artificial intelligence using common tools: TensorFlow, Celery, Django. From the  report we will learn how to make our virtual assistant really useful, and see an example of one very interesting chat bot that many of us may find useful in the future. We will be able to ask Oleg all our questions about bots and cognitive services.

    Jupyter and PySpark on Hadoop for big data analysis

    Machine learning is a new, fast-growing area, there are not many established practices. Therefore, every data scientist puts a lot of experimentation and wants to do it quickly. It is good if these are simple type hypotheses, are there enough data and are they correct? And what if you need to apply a complex samopisny function to a large number of objects? In addition, all tasks must be solved on a production cluster, in which another 50 people work.

    Pavel Tarasov will tell you how to really quickly test complex hypotheses using the minimum number of tools and code. Jupyter and PySpark in this case is something from which to build a stand, and not spend a week preparing the environment, as often happens with big data, because they are Big.

    The conference will be held in Inforspraste, a small hall will be allocated for user-generated content. That is, mitapas, which can be collected by anyone, the main thing is to find like-minded people. It will be possible to organize on the spot, but if you book in advance, you will be included in the schedule.

    Miscellaneous: testing, security, DevOps

    Further reports are single, they are not included in large sections, but they solve the task of diversity. Themes, by the way, are very important and interesting, one of which is social engineering, or here is the “hacking guide”.

    A Hacker's Guide to Securing Python Web Applications

    I hope that your web projects have never been attacked and have not been hacked, but most likely someone you know has come across their sad consequences. Our colleague, one of the organizers of PyCon Nigeria, Eyitemi Egbejule, claims that, armed with safe coding practices and some useful libraries, you can forget about vulnerabilities in Python web applications forever . Based on  extensive experience in security auditing of web projects Eyitemiwill tell you which errors are most often made by network service developers, where to look for vulnerabilities in the first place, and which ones are the fastest to close. It will not necessarily be software, problems may be in the logic or in the use of common, but incorrect default settings.

    We hope that this report will allow developers to take a fresh look at their code and even, perhaps, start applying the tips right there at the conference.

    Efficient Selenium Infrastructure

    Do you use Selenium for automatic testing, but are tired of fighting its brakes and crashes? Then a master class by Ivan Krutov (Aerokube) on the effective infrastructure of Selenium is for you.

    At the master class, Ivan promises to show how to deploy a Selenium cluster based on the Selenoid and Ggr opensource projects in a few simple steps , allowing you to replace the outdated Selenium Grid and stop tormenting Selenium. You will see how easy it is to record video of executing tests, add new versions of browsers and watch logs in real time.

    It turned out that there was so much material that this master class would take two hours on October 23 - before and after lunch, in time to thoroughly ponder everything in time.

    Dark Python: Social engineering and hacking with 70% success rate

    If you believe the most reliable source of information - the movie, then hackers instead of the console now use methods of social engineering . Lukas Hurych from as a hobby is trying various methods of attacks on his colleagues. The results are staggering - 70% success. And our Python plays an important role in automating this process.

    Lucas will help you know what the enemy looks like and what methods are most common and effective, so that we can defend against them in our backend and UX.

    Accelerate SQLAlchemy for architectural astronauts

    A huge advantage of SQLAlchemy is that this is a very common ORM and one of the best solutions for communicating with a database in a high-level language. But sometimes this convenience can sometimes turn out to be unexpected. Obviously, this convenience can sometimes turn out to be unexpected. Alexey Starkov from Qrator Labs on the example of a network filtering traffic with a large (hundreds of thousands) number of entries will show how to achieve high performance . To do this, you need to switch from the most naive use of SQLAlchemy ORM to bulk operations and the use of SQLAlchemy Core , and the details will be on October 23 at 16:00.

    Good and bad practices for writing test code

    In his report, Dmitry Dygalo from is going to discuss approaches that will help make the code more understandable , reliable and testable. Let's talk about a variety of problems and get specific advice, for example, that global variables are a convenient concept that is often not used where it should be. How to find a compromise between isolation and speed in a test database. On  dependency injection and separating execution from implementation with examples from popular libraries. And surely this is not all.

    It seems that this is more than enough to get an idea of ​​what will be at the conference. For the work on the program, I want to thank all the members of the Program Committee: Vladimir Filonov, Zlata Obukhovskaya, Alexander Hayorov a, Ivan Tsyganov a, Leonid Kalneusa.

    Through complex logical operations, we have already placed all the reports in a harmonious schedule ( here pdf with visualization by topic). It turned out that we conceived, starting preparations for the conference six months ago: the topics are distributed over the whole variety of Python usage, a reasonable number of English-speaking speakers have something to talk over over a cup of coffee and a glass of beer on aftapati.

    See you at  Moscow Python Conf ++ 2018 !

    Also popular now: