keywords:
ASYNC / Concurreny
Best Practice
Development

uk: Комп'ютерні науки

description: By building a simplified chaos monkey service, we will walk through how to create a good foundation for an asyncio-based service, including graceful shutdowns, proper exception handling, and testing asynchronous code. We’ll get into the hairier topics as well, covering topics like working with synchronous code, debugging and profiling, and working with threaded code. We’ll learn how to approach asynchronous and concurrent programming with Python’s asyncio library, take away some best practices, and learn what pitfalls to avoid. Outline: (40 minutes + 5 min Q&A, if unable to get 45 minutes, then 30 min slot with no time for Q&A) Intro (2m) Speaker/company intro Setting the context/purpose of talk Foundations (9m - trimmed to 6m for 30 min slot) Initial setup of an asyncio service (2m) --- Required boilerplate code --- Inspiration from official asyncio tutorial docs Making a service emactually/em concurrent (5m) --- non-blocking vs concurrent --- when to be concurrent vs serial --- using callbacks vs awaits vs scheduling tasks (create_task) vs asyncio.Events --- Making synchronous code asyncio-friendly (2m) Intermediate (9m - trimmed to 6m for 30 min slot) Graceful shutdowns (3m) --- What a signal handler is, why it’s needed --- What signals to listen to --- Gotchas of cancelling tasks, asyncio.shield + shutdown behavior Exception handling (3m) --- Difference between top-level exception handling and handling within other coroutines --- Avoid mistakenly swallowing/missing raised exceptions --- Making use of loop.setemexception/emhandler Making threaded code asyncio-“friendly” (3m) --- Calling threaded code from coroutines (aka running within a ThreadPoolExecutor) --- Calling coroutines from from threaded code (aka runemcoroutine/emthreadsafe) Advanced (19m - trimmed to 15m for 30 min slot) Testing asyncio code (7m) --- Benefits of debug mode --- How to mock coroutines Debugging an asyncio service (5m) --- Reinforce debug mode --- Using “tricks"" like codeasyncio.all_tasks/code with logging, codeloop.slow_callback_duration/code, adding context/stack trace in default exception handler Profiling (7m) --- Basic profiling (cProfile, strace) - not that different from sync code --- Continuous profiling with 3rd party tools, i.e. github.com/what-studio/profiling --- PyCharm’s asyncio & thread profiler --- How to properly trace a workflow/request (e.g. for the purpose of distributed tracing) (to be cut if not enough time) Wrap up/Review (1m) /ol

uk: вхід без авторизації

name: Advanced asyncio: Solving Real-world Production Problems


Getting Your Data Joie De Vivre Back!

Lynn Cherny

type: Person

keywords:
Big Data
Visualization
Deep Learning

cs: Informatika

de: Informatik

fi: tietojenkäsittelytiede

uk: Комп'ютерні науки

en: Computer Science

fr: Informatique

da: Datalogi

es: Ciencias de la Computación

nl: Informatica

cs: Technické vědy

de: Ingenieurwissenschaften

fi: tekniikka

uk: Інженерія

en: Engineering Sciences

fr: Ingénierie

da: Ingeniørvidenskab

es: Ingeniería

nl: Engineering

description: Most of us work too much and play too little.  When was the last time you smiled at something you made?  Playing with fun datasets, especially big data sets, opens up weird new forms of technical recreation.  Why not train an amusing model in a browser tab while you're waiting for that day-job Spark query to finish?  I'll show you some data toys I've built using AI and interesting data sets: Most of them involve both backend data science and front-end visualization tricks.  They range from poetry-composition helpers to game log analysis to image deconstruction and reconstruction. All of them taught me something, often about myself and what I like artistically, and sometimes about what ""big data"" actually means.

TIB AV-Portal

type: Service

type: WebContent

type: MediaObject

@language: en

cs: přihlášení není vyžadováno

de: keine Anmeldung erforderlich

uk: вхід без авторизації

en: no login required

nl: geen login vereist

EuroPython

type: Organization

cs: Video

de: Video

fi: Video

uk: Відео

en: Video

fr: Vidéo

da: Video

nl: Video

es: Video


AI in Contemporary Art

keywords:
Algorithms
Computer Vision
Deep Learning

uk: Комп'ютерні науки

description: Over the past couple of years, there has been increasing interest in applying the latest advances in machine learning to creative projects in art and design. From DeepDream and style transfer to a GAN-generated painting selling for $430,000 at auction, AI art has moved beyond the world of research and academia and become a trend in its own right. Meanwhile, the contemporary art world's fascination with the social impact of facial recognition, recommendation systems and deep fakes has encouraged artists to explore AI critically as subject matter. This talk will give an overview of how artists and technologists are using and thinking about machine learning, its creative potential and societal impact.

uk: вхід без авторизації


keywords:
All Other Programming Languages
Education
Programming
Python 3
Teaching

uk: Комп'ютерні науки

description: Our generation of young people in school (aged 5-18) have noticed the connection between Computer pRogramming, Technology & Success and Billionaires.On mass they are clamoring to master the skill of Computer pRogramming. We describe a successful working model for the teaching of Computer pRogamming. Computer Science is now regarded as one of the leading disciplines in the 21st century. Computers are ubiquitous and prevalent in most, if not all, sectors of our modern society – applications include using them in weather forecasting, robotic surgery, space exploration, e-commerce, smart cities, driverless cars, etc. Therefore, coding or computer programming is now regarded by many as an essential skill for the young person, and it has been dubbed the ‘4th’ R’ (computer pRogramming) along with Reading, wRiting and aRithmetic. In recognition of the new status of computer programming, governments worldwide have launched initiatives to have it taught in schools from Kindergarten through to junior school and all the way through secondary school. So, the question emerges is how do we best teach and motivate the next generation in acquiring this skill? Given the fact that this field is very much in its infancy, there are insufficient number of skilled Computer Science teachers and very little pedagogy to guide the educator. Therefore, the whole world is learning how best to teach this subject by trial and error. The talk will describe a case study whereby coding/computer programming, in the form of Python programming, was introduced to a group of 110 young people from the ages of 11 to 18 (Years 7-13 in a U.K secondary school). The talk will include descriptions of the various teaching methodologies introduced to the young people for this purpose and the outcomes; the talk will also address various challenges and questions about how to teach coding to young people. The talk will conclude with helpful suggestions, based on the findings of the case study, on how to proceed with the teaching of computer programming to these people.

uk: вхід без авторизації

name: Teaching Programming to the Next Generation: Creating the Next Generation of Computer Billionaires


keywords:
Debugging
Performance
SQL Alchemy
python

uk: Комп'ютерні науки

description: Object Relational Mappers (ORMs) are awesome enhancers of developer productivity. The freedom of having the library write that SQL and give you back a useful, rich model instance (or a bunch of them) instead of just a tuple or a list of records is simply amazing. But if you forget you have an actual database behind all that convenience, then it'll bite you back, usually when you've been in production for a while, after you've accumulated enough data that your once speedy application starts slowing down do a crawl. Databases work best when you ask them once for (or to do) a bunch of stuff, instead of asking them lots of times for small stuff. We'll discuss how innocent looking attribute accesses on your model instances translate to sequential queries (the infamous N+1 problem). Then we'll go through some practical solutions, taken from real cases, that resulted in massive speed ups. We'll cover how changes in Python code resulted in changes to the resulting SQL Queries. We'll see solutions not only for queries, but also for inserts and updates, which tend to be less well documented. Though this talk focuses on SQLAlchemy, the lessons should be applicable to most ORMs in most programing languages. The ideas discussed, and solutions proposed are also valid for any storage back-end, not only SQL databases. This talk is geared towards Python developers with systems that talk to databases. It should be accessible to anyone who already programs in Python (early intermediary level), but will be most useful for developers with projects talking to SQL databases, specially using an ORM like SQLAlchemy. Attendees will learn to detect how N+1 query situations arise and how to work around them effectively. They will also learn how to do mass inserts and mass updates with SQLAlchemy.

uk: вхід без авторизації

name: From days to minutes, from minutes to milliseconds with SQLAlchemy: Avoiding performance pitfalls and writing good database access patterns with the SQLAlchemy ORM


keywords: Deployment/Continuous Integration and Delivery

uk: Комп'ютерні науки

description: Next year Python 2 is no longer maintained. But you have a monster code base with clever tricks and libraries that don't support Python 2, and your data may be stored in a format that is hard to move Python 3. And that's the easy bit. This talk focuses on the process of moving, not the code changes. Because it's the process that is the hard part. How do you get your code in a state where it's ready to move? How do you get the whole team on the boat to Python 3? All Python 3 talks I have seen, including those I have given, and all the texts on how to port, including the book I wrote, focus on the code changes. With increasing backwards compatibility in Python 3 and forward-compatibility in Python 2, this actually became a lesser problem for big code bases. The extra issues of large, old code bases Can you stop adding features? (1 min) Separate team vs getting everyone on it (2 min) Python 2 compatibility: You need it (1 min) The steps Fix your development process (2 min) Replace old libraries, or take over maintenance and port them (2 min) Make sure your tests are solid (1 min) Run 2to3 but only backwards compatible fixers (2 min) Run tests on Python 3 to stop backsliding (4 min) Run all tests: Expansive or slow Store passed tests Detect tests that change Turning it off adds a lot of extra work Port all your little utilities and tool scripts (1 min) Fix fix fix fix (1 min) Add tests with Python 2 data, to test migration (2 min) You might need migration scripts Extra careful staging tests (1 min) Production: Try, fail, repeat (1 min) Clean the code up (3 min)

uk: вхід без авторизації

name: Moving big projects to Python 3: Did you think the language differences were difficult bit?


keywords:
Data
Data Science
Deep Learning
Jupyter
Machine-Learning

uk: Комп'ютерні науки

description: Ever wondered what breed that dog or cat is? Let’s build a pet detector service to recognize them in pictures! In this talk, we will walk through the training, optimizing, and deploying of a deep learning model using Azure Notebooks. We will use transfer learning to retrain a MobileNet model using TensorFlow to recognize dog and cat breeds using the Oxford IIIT Pet Dataset. Next, we’ll optimize the model and tune our hyperparameters to improve the model accuracy. Finally, we will deploy the model as a web service in. Come to learn how you can quickly create accurate image recognition models with a few simple techniques!

uk: вхід без авторизації

name: Building a Powerful Pet Detector in Notebooks: Yes, there will be dog pictures


keywords:
Clean Code
Python Skills
Python general

uk: Комп'ютерні науки

description: Ensuring reliably repeatable dependency installation has long been an unsolved problem for many Python projects. Pinning dependencies via setup.py and requirements.txt has historically been met with extra work and unexpected results, particularly when managing the dependencies of dependencies. Thanks to PEP 518, Python projects can now more easily manage dependencies via the new pyproject.toml file specification. In its wake, a number of useful tools have arisen that use this file to provide enhanced dependency resolution, including Poetry, Hatch, and Pipenv. Attendees of this talk will take home the following knowledge and skills: how to replace three files (setup.py, requirements.txt, and MANIFEST.ini) with just one: pyproject.toml why dependency resolution is hard and why it matters how Poetry, Hatch, and Pipenv differ and when to use each why one might use a less magical alternative: pip-tools how to use pipx to isolate system-wide Python tools

uk: вхід без авторизації

name: Zen of Python Dependency Management: Dependency resolution via pyproject.toml — replacing setup.py, requirements.txt, and MANIFEST.ini


uk: Комп'ютерні науки

description: Reading standards documents can be a dull task. But like in other fields, standards in Python play a big part. Python Enhancement Proposals (PEPs) are defined, improved, and eventually implemented by the community. They apply to mostly anything related to Python, from the more abstract and general to the more concrete and specific. Paying attention to them, and knowing which ones to read beforehand is a vital task that should take place prior to writing the first lines of code in a project. In this talk we will go over a condensed list of the most important PEPs to this date and see how they influence everyday coding. From style guides and docstring conventions to data classes and assignment expressions, we will see how these PEPs affect (or can affect) the code we write, and how can we use them to improve our code and make developing easier and more fun. After this talk, attendees will have a better grasp on why PEPs are important to Python, which are a must read, and which ones they should use as a guide in the future, both for coding and refactoring.

uk: вхід без авторизації

name: PEP yourself: 10 PEPs you should pay attention to: Another look at known and lesser known PEPs


keywords:
Data Science
Deep Learning
Machine-Learning

uk: Комп'ютерні науки

description: Sound is a rich source of information about the world around us. Modern deep learning approaches can give human-like performance on a range of sound classifiction tasks. This makes it possible to build systems that use sound to for example: understand speech, to analyze music, to assist in medical diagnostics, detect quality problems in manufacturing, and to study the behavior of animals. This talk will show you how to build practical machine learning models that can classify sound. We will convert sound into spectrograms, a visual representation of sound over time, and apply machine learning models similar to what is used to for image classification. The focus will be on Convolutional Neural Networks, which have been shown to work very well for this task. The Keras and Tensorflow deep learning frameworks will be used. Some tricks for getting usable results with small amounts of data will be covered, including transfer learning, audio embeddings and data augmentation. A basic understanding of machine learning is recommended. Familiarity with digital sound is a bonus. Please see our speaker release agreement for details: https://ep2019.europython.eu/events/speaker-release-agreement/

uk: вхід без авторизації

name: Audio Classification with Machine Learning: Learn how to classify sound using Convolutional Neural Networks


keywords: The Answer to Life the Universe and Everything Else

uk: Комп'ютерні науки

description: Did you ever wonder why development in Python can be x10 faster than development in languages like c++? Observing my teams’ experimentations, the python community, and reading, I have adopted various habits, patterns, and tools. But most importantly I learned thinking in Python. I consider thinking in Python a key for rapid development and good engineering. Thinking in a programming language affects the amount of information you need to keep in your working memory. It also affects the abstractions and tools that pop in your mind and then used in constructing solutions. Let’s explore what it means to think in Python. Why Python allows you to focus on problem solving, while languages like c++ often distract your attention from the problem at hand. In this talk I will cover some good and bad practices by examples while trying to consider the amount of effort needed to write it, read it, and talk about it with other team members. Key Takeaways: Tips for speeding your work without compromising quality, and reasoning for using it. The audience should be comfortably familiar with the process of software development, and software problem solving, and experience using Python.

uk: вхід без авторизації

name: How Thinking in Python Made Me a Better Software Engineer: Think in Python! Thinking is hard, but thinking in Python makes it easier to develop efficiently.


Introduction to Python and MongoDB

uk: Комп'ютерні науки

description: This talk will give anyone who has a basic knowledge of Python insight into how easy it is to build database applications using the PyMongo Python library for MongoDB. There will be live coding!

uk: вхід без авторизації


keywords: APIs Development Microservices Scaling Tooling

uk: Комп'ютерні науки

description: Bringing your Python scripts or apps and running them in the cloud is easier than ever with serverless computing. In this talk, we’ll show how you can use Azure Functions to easily deploy and scale your Python workloads without having to manage any servers or pay for unused compute resources. We’ll also show how deep integration with Visual Studio Code offers a great local development experience with full support for debugging and testing your app, and allows you to seamlessly deploy your serverless code to the cloud. We’ll start by giving a brief overview of the value of serverless computing. Next, we'll create a brand new Python app in Visual Studio Code, and start to add in business logic and ML capabilities. Once we get the app running debugged locally, we’ll publish it to the cloud as a serverless function, and demonstrate the serverless scalability. Finally, we’ll walk you through the tools and capabilities you can leverage around monitoring and management of your Python Azure Functions.

uk: вхід без авторизації

name: Deploy Python to the cloud faster with Azure Serverless


uk: Комп'ютерні науки

description: My talk aims to introduce and have a closer look on the Docker SDK for Python. I will cover: - How and where to get the SDK - How it works and how to use it in general - Possible use-cases like: Processing Container-Logs, Testing with pytest on different Python Versions, Deploy via Python Script, etc.. For my talk, you should know what Docker is and how to use it. A basic idea of pytest and server administration is nice to have, but not necessarily needed to follow my talk.

uk: вхід без авторизації

name: Docker meets Python - A look on the Docker SDK for Python: "pip install docker"


keywords:
ASYNC / Concurreny
Case Study
Multi-Processing
Multi-Threading
Performance

uk: Комп'ютерні науки

description: You've been given a task. You need to download some files from a server to your local machine. The files are fairly small, and you can list and access these files from the remote server through a REST API. You'd like to download them as fast as possible. The catch? There's a billion of them. Yes, one billion files. How would would you do this? Would you do this synchronously in a single for loop? Would you use a producer/consumer queue with threads? Multiprocessing? Asyncio? In this talk, we'll examine 3 different mechanisms for concurrently downloading files: multithreading, multiprocessing, and asyncio. For each of these mechanisms we'll look at design best practices, how to handle debugging and error handling, and of course the overall performance. By examining three different approaches using the same data set, we gain a better understanding of the tradeoffs of each approach so we can pick the right library for the job.

uk: вхід без авторизації

name: Downloading a Billion Files in Python: A case study of multi-threading, multi-processing, and asyncio


uk: Комп'ютерні науки

description: It's often said that Python comes with batteries included, meaning that the standard library can do basically anything except for maybe conjure bacon for you (though I heard that's coming in 3.8). I don't think we fully appreciate the sheer vastness of it, though, so I went through it module by module looking for hidden gems (sorry, eggs). This is a by no means exhaustive compilation of the useful, the underrated, and the funny. When it comes to the Python standard library, chances are you use it on a daily basis -- or more likely, a more or less stable subset of it. The usual way we add things to the subset is by looking for a solution to a problem and ending up getting pointed to a standard library module. That, however, means that the odds of you finding out that there is a whole module whose sole purpose is to tell you if a string is a Python keyword are very slim. The aim of this talk is to showcase CPython libraries that are interesting in some way: mostly for their usefulness, but in some cases simply for being wonderfully weird in some way. The talk is not aimed at any particular level of Python experience - as a beginner you'll get a taste of just how many batteries Python ships with, and as a person using the language often you might end up growing your own personal subset a bit more.

uk: вхід без авторизації

name: import bacon: The standard library modules you never knew (you needed)


Gamifying the study of algorithms

keywords:
Algorithms
Best Practice
Education
Fun and Humour

uk: Комп'ютерні науки

description: Do you remember when you used to learn algorithms? It was probably either back when you were studying for your degree, or when you were brushing up for a technical interview. If you're like most of the developers I know, solving algorithms probably went from being a fun past-time, to a bothersome necessity, to a thing of the past. Our life has been greatly improved by our tools and there's little need to know all sorting methods out there, or how to search through a tree. Or maybe we're wrong, maybe knowing these things could make a difference in how we write code. I am going to try to dispel some of the myths surrounding the study of algorithms and competitive programming, and argue that sharpening this skill is something that benefits us, as software developers, outside of passing technical tests; that knowing many algorithms makes us better and faster problem solvers. Lastly, this talk is about resources and ways in which to gamify the study of algorithms. Going at it the same way as for exams or interviews makes it very bothersome very quickly. It gets easy to lose sight of the biggest picture and to start thinking of algorithms in abstract terms, outside their applications. All these are factors that prompt the question: why should I carry on with it?

uk: вхід без авторизації


keywords:
Best Practice
Open-Source

uk: Комп'ютерні науки

description: PyPI is a gold mine of great packages but those packages have to be written first. More often than not, projects that millions of people depend on are written and maintained by only one person. If you’re unlucky, that person is you! So how do you square delivering a high quality Python package you can be proud of and having only limited time at your disposal? The answer is not “try harder,” the answer is to do less. This talk will help you get there by talking about how you can make your life easier, remove causes of friction with your contributors, and empower said contributors to take over tasks that you can’t make time for anymore.

uk: вхід без авторизації

name: Maintaining a Python Project When It’s Not Your Job: Tools and approaches to reclaim the weekends.


keywords:
Data Science
Deep Learning
Machine-Learning
Natural Learning Processing

uk: Комп'ютерні науки

description: Getting started with a natural language processing and neural networks is easier nowadays thanks to the numerous talks and tutorials. The goal is to dive deeper for those who already know the basics, or want to expand their knowledge in a machine learning field. The talk will start with the common use cases that can be generalized to the specific problems in a NLP world. Then I will present an overview of possible features that we can use as input to our network, and show that even simple feature engineering can change our results. Furthermore, I will compare different network architectures - starting with the fully connected networks, through convolution neural networks to recursive neural networks. I will not only considering the good parts, but also - what is usually overlooked - pitfalls of every solution. All of these will be done considering number of parameters, which transfers into training and prediction costs and time. I will also share a number of “tricks” that enables getting the best results even out of the simple architectures, as these are usually the fastest and quite often hard to beat, at the same time being the easiest to interpret.

uk: вхід без авторизації

name: Natural language processing with neural networks.: Solve your language processing problem with neural networks without going bankrupt.


keywords:
Development
Python general
Rust
Sensors
System Administration

uk: Комп'ютерні науки

description: Delta Chat, a new approach to decentralized messaging, uses Python in several ways. Delta Chat is a Whatsapp/Telegram-style messenger app which uses the existing e-mail server network instead of central servers. There is no address book upload, and no necessity to tie accounts to mobile numbers. We'll live-demo how ""Chat over E-mail"" works, with random audience members, in real-time. We'll then look into how Python is used for automated testing (with pytest) against the messenger core library which is exposed through CFFI. However, the core library will soon be ported to full Rust. Are there better ways to interface Rust with Python than going through C-interfaces? In the third part we'll introduce first example Chat Bots, written in Python. Do you want to send an machine-generated system allert to a sysadmin group? Or safely archive all media that is posted to a family group? Or have your IoT sensor react to commands or send info? Just do it without registering a bot to some central cite, or by exposing all content information to (e. g. Telegram) servers. A Chat Bot only needs access to a standard IMAP/SMTP account. We'll look at the simple Python API for writing and testing powerful and versatile Chat bots.

uk: вхід без авторизації

name: Delta Chat, CFFI, pytest and all the Rust: The Deltabots are coming


keywords:
APIs
Abstractions
Architecture
Best Practice
Clean Code

uk: Комп'ютерні науки

description: What you do when you start a new project? Usually, we begin with database design, then we prepare a migration system, user registration, and all different stuff that distracts us from doing what is most important - business logic. With the clean architecture, we can learn how to start a project in another way and this will be one of two main topics of my talk. The second one will be about new features in Python. You probably heard about typings, mypy, and dataclasses, but I will show you how they can be used in real life project that can be developed over many years in production lifecycle. There will be no ""hello world"" app, no copy & paste of documentation, only practical knowledge learned through many years of practice.

uk: вхід без авторизації

name: Don't start with a database: Clean architecture in Python 3.7


uk: Комп'ютерні науки

description: According to industry surveys [1], the number one hassle of data scientists is cleaning the data to analyze it. Textbook statistical modeling is sufficient for noisy signals, but errors of a discrete nature break standard tools of machine learning. I will discuss how to easily run machine learning on data tables with two common dirty-data problems: missing values and non-normalized entries. On both problems, I will show how to run standard machine-learning tools such as scikit-learn in the presence of such errors. The talk will be didactic and will discuss simple software solutions. It will build on the latest improvements to scikit-learn for missing values and the DirtyCat package [2] for non normalized entries. I will also summarize theoretical analyses in recent machine learning publications. This talk targets data practitioners. Its goal are to help data scientists to be more efficient analysing data with such errors and understanding their impacts. With missing values, I will use simple arguments and examples to outline how to obtain asymptotically good predictions [3]. Two components are key: imputation and adding an indicator of missingness. I will explain theoretical guidelines for these, and I will show how to implement these ideas in practice, with scikit-learn as a learner, or as a preprocesser. For non-normalized categories, I will show that using their string representations to “vectorize” them, creating vectorial representations gives a simple but powerful solution that can be plugged in standard statistical analysis tools [4]. [1] Kaggle, the state of ML and data science 2017 https://www.kaggle.com/surveys/2017 [2] https://dirty-cat.github.io/stable/ [3] Josse Julie, Prost Nicolas, Scornet Erwan, and Varoquaux Gaël (2019). “On the consistency of supervised learning with missing values”. https://arxiv.org/abs/1902.06931 [4] Cerda Patricio, Varoquaux Gaël, and Kégl Balázs. ""Similarity encoding for learning with dirty categorical variables."" Machine Learning 107.8-10 (2018): 1477 https://arxiv.org/abs/1806.00979

uk: вхід без авторизації

name: Machine learning on non curated data: Dirty data made easy


uk: Комп'ютерні науки

description: In this session, we will report about a forklift hailing application we built using MicroPython and the ESP32-based prototyping hardware M5Stack. In a production facility, machine operators can hail a forklift using an ESP32 device running MicroPython. The device sends a request to a forklift dispatcher software, written in Python. The request is queued and subsequently, the next available forklift is notified and sent to the machine. Each forklift is also fitted with an ESP32 device. In this project, the prototyping hardware M5Stack was used. It features an ESP32 micro controller with Bluetooth, WIFI, GPIO, three buttons, and a display. Attendees will learn how MicroPython and prototyping hardware can be used to scale from an idea on the developers desk to a working system in a rough Industry 4.0 production environment. The talk will recap our journey with MicroPython, the lessons learned, and the pitfalls to avoid. Furthermore, the tooling setup will be introduced, including our M5Stack GUI-simulator to mock the M5Stack display. The central dispatch server is built using Python and deployed in a Docker container. Messages are exchanged using MQTT, a popular IoT message protocol. The talk will conclude with a live demonstration of the forklift hailing system. Attendees should be comfortable with the Python syntax but are not expected to have any MicroPython, MQTT, Docker or domain knowledge.

uk: вхід без авторизації

name: Building Industry 4.0 logistics applications with MicroPython and ESP32 MCUs: Hailing forklifts in production with MicroPython and ESP32-based M5Stack prototyping hardware


EuroPython 2019 - Sprint Orientation

uk: Комп'ютерні науки

description: Sprint Orientation

uk: вхід без авторизації


EuroPython 2019 - Recruiting Session

uk: Комп'ютерні науки

description: Recruiting Session

uk: вхід без авторизації


EuroPython 2019 - Opening Session

uk: Комп'ютерні науки

description: Opening Session [EuroPython 2019 - - 2019-07-10 - MongoDB [PyData track] [Basel, CH] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2019.europython.eu/events/s...</a

uk: вхід без авторизації


Europython 2019 - Morning Announcements

uk: Комп'ютерні науки

description: Morning Announcements

uk: вхід без авторизації


EuroPython 2019 - Lightning talks

uk: Комп'ютерні науки

description: Lightning Talks Walther, Christian Šedivý, Miroslav Tymoshchuck, Anastasiia Preobrazhenskiy, Alexey et al.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Lightning Talks N.N. - Multithreading is easy in functional Python Furuki, Tomoko - Let's explore PEPs with NetworkX! Roth, Robin - Let Monkey annotate your Python N. N. - Cilture Night returns on October 11, 2019 et al.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Lightning Talks Pope, Daniel - What the FROG? Naydenov, Viacheslav et al. - Tour de snake: over the mountains edition...or the hard way to get to the conference Barra, Christian - What you can do in 10 Minuutes Chen, Noah - Why I/You need to go to Europython et al.

uk: вхід без авторизації


EuroPython 2019 - Closing Session

uk: Комп'ютерні науки

description: Closing Session [EuroPython 2019 - - 2019-07-12 - MongoDB] [Basel, CH] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2019.europython.eu/events/s...</a

uk: вхід без авторизації


keywords: JavaScript Web Frameworks (AngularJS/ReactJS/...)

uk: Комп'ютерні науки

description: Images are an ubiquitous form of data in various fields of science and industry. Images often need to be transformed and processed, for example for helping medical diagnosis by extracting regions of interest or measures, or for building training sets for machine learning. In this talk, I will present and discuss several tools for automatic and interactive image processing with Python. I will start by a short introduction to scikit-image, the open-source image processing toolkit of the Pydata ecosystem, which aims at processing images from a large class of modalities (2-D, 3-D, etc.) and strives to have a gentle learning curve with pedagogical example-based documentation. scikit-image provides users with a simple API based on a large number of functions, which can be used to build pipelines of image processing workflows. In a second part, I will explain how to use Dash for building interactive image processing operations. Dash is an open-source Python web application framework developed by Plotly. Written on top of Flask, Plotly.js, and React.js, Dash is meant for building data visualization apps with highly custom user interfaces in pure Python. The dash-canvas component library of Dash is an interactive component for annotating images with several tools (freehand brush, lines, bounding boxes, ...). It also provides utility functions for using user-provided annotations for several image processing tasks such as segmentation, transformation, measures, etc. The latter functions are based on libraries such scikit-image and openCV. A gallery of examples showcases some typical uses of Dash for image processing on https://dash-canvas.plotly.host/. Also, other components of Dash can be leveraged easily to build powerful image processing applications, such as widgets to tune parameters or data tables for inspecting object properties.

uk: вхід без авторизації

name: Image processing with scikit-image and Dash: From algorithms to interactive applications for processing and annotating images


keywords:
Debugging
Jupyter
Python general
Tooling

uk: Комп'ютерні науки

description: Many Python developers like Jupyter Notebooks for their flexibility: they are very useful for interactive prototyping, scientific experiments, visualizations and many other tasks. There are different development tools which make working with Jupyter Notebooks easier and smoother, but all of them lack very important feature: visual debugger. Since Jupyter Kernel is a usual Python process, it looks reasonably to use one of existing Python debuggers with it. But is it really possible? In this talk we’ll try to understand how Python debugger should be changed to work with Jupyter cells and how these changes are already implemented in the PyCharm IDE. After that we’ll look into the whole Jupyter architecture and try to understand which bottlenecks in it prevent creation of universal Jupyter debugger at the moment. This talk requires a basic knowledge of Jupyter Notebooks and understanding of Python functions and objects. It will be interesting for people who want to learn internals of the tools they use every day. Also it might be an inspiration for people who want to implement a visual debugger in their favourite IDE.

uk: вхід без авторизації

name: Visual debugger for Jupyter Notebooks: Myth or Reality?: Understand how Python debuggers work and how to build Visual Debugger for Jupyter Notebooks


uk: Комп'ютерні науки

description: Support for Python on Google Cloud has never been better. Join us for a tour of Python runtimes, services and client libraries, including App Engine, Cloud Functions, Cloud Run, and more. We'll also discuss tools for monitoring and debugging your Python application, and best practices for using Python on Google Cloud.

uk: вхід без авторизації

name: Google Cloud for Pythonistas: This is a sponsored talk from Google Cloud.


uk: Комп'ютерні науки

description: Your data science or machine learning project probably won't just produce a written report. Instead, projects are increasingly expected to produce interactive tools to allow end-users to explore data and results with rich, interactive visualizations. Inevitably, this will be done in a web browser, meaning you'll need to add a quantitatively trained web developer to your team, or have your data scientists spend time learning HTML, Javascript and CSS. Dash, a project by the team that makes Plotly, solves some of these problems by allowing data scientists to build rich and interactive websites in pure python, with minimal knowledge of HTML and absolutely no Javascript. At decisionLab, a London-based data science consultancy producing decision tools, we've embraced Dash to produce proof-of-concept models for our projects in alpha. Although we're not officially connected to the plotly/Dash project, by using the library daily across many projects, we've learned many lessons and what we feel are best practises we'd like to share, and hear feedback on! This talk will give an overview of Dash, how it works and what it can be used for, before outlining some of the common problems that emerge when data scientists are let loose to produce web applications, and web developers have to work with the pydata ecosystem. The talk also covers effective working practises to start producing cool interactive statistical web applications, fast. We'll also identify some of the pitfalls of Dash, and how and when to make the decision to stop using Dash and start building a proper web application.

uk: вхід без авторизації

name: Dash: Interactive Data Visualization Web Apps with no Javascript: What you can, can't, should and probably shouldn't do with plotly/Dash


Understanding and Applying CQRS

uk: Комп'ютерні науки

description: Creating scalable applications has a number of complex variables and one of them is to work with scalability and performance in the database layer. Command Query Responsibility Segregation (CQRS) is a design pattern that helps produce more performance and resilience in applications where data access is intense. In this talk, we will understand when to use and the problems that CQRS solves. We will also apply CQRS in a Python application using the Nameko framework. The outline talk is: ○ (4 minutes) - Present a real problem of a web application, when creating new instances is not a solution, because the database receives an overwrite of writing and unfeasible to read the data, collapsing the application. ○ (6 minutes) - Present the CQRS pattern conceptually and how this design pattern solves this type of problem using the structure of Command Stack and Query Stack ○ (3 minutes) - Show Nameko as an interesting tool to apply the CQRS. It will demonstrate the use of HTTP, RPC and the possibility of applying pub/sub. ○ (6 minutes) - Create (live code) the Command Stack layer using Nameko on a Postgresql database. ○ (5 minutes) - Create (live code) the Query Stack layer using Nameko over a MongoDB database. ○ (3 minutes) - Explain common myths and mistakes about CQRS (3 minutes) - Q & A Session

uk: вхід без авторизації


Winning card games with 1000+ CPUs

uk: Комп'ютерні науки

description: Vincent was playing a card game against his girlfriend and he kept loosing. So he wanted to train a bot to play on his behalf. This is our story. We’re using AWS Lambda to get better at a card game named SushiGO. We make a small genetic algorithm in Python that uses AWS Lambda as a backend. The talk consists of these parts: Quick Explanation of the rules of the SushiGo Card Game Translation of real life to an algorithm Explain why this problem needs a lot of CPU Explain why AWS Lambda fits the simulation use-case How to quickly hack Concurrency in Python How to deploy lambda very quickly with chalice Experimentation Results This talk will discuss an algorithm that we’ve tried to improve in three ways: Applying simple maths to make the search algorithm better Throwing lots (lots!) of CPU’s against the problem by leveraging AWS Lambda and python concurrency We will conclude by discussing whether or not AWS Lambda is suitable for a gridsearch/grid simulation (hint, it’s not meant for this task, but it actually kind of works very well).

uk: вхід без авторизації


Python 3: ten years later

uk: Комп'ютерні науки

description: Draft of the talk: Growing populary of the Python programming language Defacto language in the scientific world, replacing other closed source and more specialized but limited language Favorite programming language used as the first language to learn programming Port Python 2 code to Python 3 Port Python 2 code to Python 3 No: "Add support for Python 3", don't loose Python 2 support Port Python 3 code to Python 2 Python changes to make the transition smoother: PEP 414: u"syntax" reintroduced in Python 3.3 PEP 461: bytes % args, Python 3.5 More "Py3k" warnings added to Python 2.7.x Linters like flake8 detect some issues six, futures, modernize, 2to6, etc. Analysis of the transition Good: At Pycon US 2014, Guido van Rossum announced that the Python 2.7 support was extended from 2015 to 2020 to give more time to companies to port their applications to Python 3. Bad: 2to3: "drop Python2 support at once", don't work when you have dependencies. If done again, would it be different? Yes, obviously. Python 4 will be different than Python 3: no more "break the world" release, but a "regular deprecation period" release, as any other release. Break things, one by one :-) Bugs that won't be fixed in Python 2 anymore Some bugs cannot be fixed without breaking the backward compatibility Unicode Support Python 2 I/O stack bugs: rely on libc stdio.h Security: hash DoS, enabled by default in Python 3.3, Python 3.4 now uses SipHash subprocess is not thread-safe in Python 2. Python 2 subprocess has many race conditions: fixed in Python 3 with a C implementation which has less or no race condition. Handling signals while forking in complex. threading.RLock is not "signal safe" in Python 2 Python 2 requires polling to wait for a lock or for I/O. Python 3 uses native threading API with timeout and has asyncio. Python 3 uses a monotonic clock to not crash on system clock update (ex: DST change). Python 3 has a better GIL. Python 2 inherits file descriptors on fork+exec by default. Python 3 don't: PEP 446. Functions can fail with OSError(EINTR) when interrupted by a signal, need to be very careful everywhere. SIGCHLD when a child process completes, SIGWINCH when using ncurses. Python 3.5 restarts the interrupted system call for you. Performance Python 3.6 is now faster than Python 2.7 https://speed.python.org/ Evolutions of the Python language Python 3.5 PEP 492: async/await "keywords" for asyncio. (Really keywords in Python 3.7.) PEP 461: bytes % args and bytearray % args PEP 465, a new matrix multiplication operator: a @ b. PEP 448: Generalized unpacking: head, *tail = list mylist = [1, 2, **other_list] mydict = {"key": "value", **other_dict} Python 3.6 PEP 515: million = 1_000_000 name = "World"; print(f"Hello {name}!") PEP 526, syntax for variable annotations. PEP 525, asynchronous generators. PEP 530: asynchronous comprehensions. Bury Python 2? "Python 3 only" https://pythonclock.org/ http://www.python3statement.org/ Fedora 23, Ubuntu 17.10: no python2 (/usr/bin/python) in the base system 2017, April: IPython 6.0 2017, December: Django 2

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Sentiment analysis aims at extracting opinions from texts written in natural language, typically reviews or comments on social sites and forums. SpaCy already provides mechanisms for dealing with natural languages in general but does not offer means for sentiment analysis. This talk gives a short introduction to sentiment analysis in general and shows how to extract topics and ratings by utilizing spaCy's basic tools and extending them with a lexicon based approach and simple Python code to consolidate sentiments spread over multiple words. Topic covered are: What is sentiment analysis? Levels of sentiment detection Representing opinions Splitting texts in sentences and words. Finding the base word (lemma) Extending spaCy's pipeline and tokens Matching words to topics and ratings Combining multiple words to a rating Code examples are introduced and explained using a Jupyter notebook that can be used as basis for your own analysis. As additional twist the analyzed texts are not in English but German to show that this approach can be used for multiple languages. No knowledge of German is required though because translations of the short examples sentences are provided.

uk: вхід без авторизації

name: Introduction to sentiment analysis: with spaCy


Rust and Python: Oxidize Your Snake

uk: Комп'ютерні науки

description: Rust is a safe and modern systems programming language that is easily able to call and be called from Python. As such, it is a prime candidate for replacing C for writing Python modules that have to be fast or that have to interact with other native code. Rust is extremely fast and makes it very hard to get concurrency wrong. Many ways of making Python call into lower level have appeared over the years such as CFFI, ctypes, boost.python, cython, SWIG. All of them are cumbersome in their own ways. PyO3 is a Rust library that makes it easy and simple to write native Python modules with minimal glue code and no crazy tooling required. It even works cross-platform without problems. The talk shows some sample code of PyO3-based modules and compares it with the code of the alternatives as well as the alternative's cross-platform support and tooling. The goal is for the audience to be informed about a new safe and modern way of writing native Python modules. The audience doesn't need any prerequisites except for a healthy interest in native code and Python modules. C knowledge is optional.

uk: вхід без авторизації


Python on Windows is Okay, Actually

uk: Комп'ютерні науки

description: Packages that won't install, encodings that don't work, installers that ask too many questions, and having to own a PC are all great reasons to just ignore Windows. Or they would be, if they were true. Despite community perception, more than half of Python usage still happens on Windows, including web development, system administration, and data science, just like on Linux and Mac. And for the most part, Python works the same regardless of what operating system you happen to be using. Still, many library developers will unnecessarily exclude half of their potential audience by not even attempting to be compatible. This session will walk through the things to be aware of when creating cross-platform libraries. From simple things like using pathlib rather than bytestrings, through to all the ways you can get builds and tests running on Windows for free, by the end of this session you will have a checklist of easy tasks for your project that will really enable the whole Python world to benefit from your work.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: One of the core concepts of Application Development, (not just in python), is the separation between the Business Logic and the User Interface. However there is a strong temptation to start with the user interface and add the business logic to it some methodologies emphasize this with the process of prototyping the (G)UI first. The danger is that your business logic code can get too entangled with the UI and a change of platform or framework becomes almost impossible. This presentation will show how to maintain a clear separation between the Business Logic and the User Interface by starting with a command line interface using argparse and growing a GUI on top. We will cover: - Why maintain the seperation - Using argparse - Adding a GUI layer with wxPython - Automating the GUI generation - Adding a web interface - Testing advantages of this approach - Scripting advantages - Some packaging models.

uk: вхід без авторизації

name: Why develop a CLI (Command Line Interface) first?


What's new in Python 3.7

uk: Комп'ютерні науки

description: Scheduled for release in mid-June before the conference, Python 3.7 is shaping up to be a feature-packed release! This talk will cover all the new features of Python 3.7, including the Data Classes and the Context Variables for the asynchronous programming with asyncio.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: You've heard about type annotations, you know they help reduce bugs and improve documentation especially for large codebases, and you've attended an introductory talk or read a tutorial about using them. But how do you get started using them with your big, existing codebase? How do you make sure your colleagues will be annotating new code they write - or existing code they're changing? And how do you get around some of the issues you might run into when using the still-beta type checker mypy on your codebase? This talk will start where the typical introductory Python type annotation talks end and discuss the real-world challenges when starting to annotate types with an existing codebase of tens or hundreds of thousands of lines of code. I'll walk you through best practices learned from doing just that at Yelp, telling you about some of the roadblocks we hit (and how we got past them). We'll also take a look at: - how you can get the most out of type annotations even with non-annotated third-party libraries - how to deal with code patterns that currently don't always work well with annotations - when the only way to get proper type checking is through refactoring your code.

uk: вхід без авторизації

name: Migrating existing codesbases to using type annotations


Cython to speed up your Python code

uk: Комп'ютерні науки

description: Cython is not only a very fast and comfortable way to talk to native code and libraries, it is also a widely used tool for speeding up Python code. The Cython compiler translates Python code to C or C++ code, and applies many static optimisations that make Python code run visibly faster than in the interpreter. But even better, it supports static type annotations that allow direct use of C/C++ data types and functions, which the compiler uses to convert and optimise the code into fast, native C. The tight integration of all three languages, Python, C and C++, makes it possible to freely mix Python features like generators and comprehensions with C/C++ features like native data types, pointer arithmetic or manually tuned memory management in the same code. This talk by a core developer introduces the Cython compiler by interactive code examples, and shows how you can use it to speed up your Python code. You will learn how you can profile a Python module and use Cython to compile and optimise it into a fast binary extension module. All of that, without losing the ability to run it through common development tools like static analysers or coverage test tools.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: We will have a quick tour of the many ways Python gives us to handle DOCX, XLSX, PPTX, and PDF and automate some boring office tasks. Many things are more interesting than office file formats like DOCX, XLSX, PPTX, and PDF. Still, while working with office formats does not seem to be the most fun, it is useful. But we can do better than just useful. With the Python and some great libraries, it is possible to have Python do much of the work you would have to do otherwise: Create and modify PDF files. Create Powerpoints presentations from scripts. Create Excel files, from simple tables to charts and reports. Combine information in Word documents. In this talk, we will have a look at a usual working day for Bob and Ann, two fictional office works. Both Bob and Ann work office jobs, but while Bob does all of his work by hand, but Ann knows Python. We will look at different tasks that Bob wants to do, such as preparing an Excel report, building a Powerpoint presentation, or rearranging a PDF. Then, we will look how Ann use Python and some exciting libraries to automate these task. During the talk, we will use Bob and Ann to consider different task related to office file formats. We will then look at the Python libraries that are available. Then, using this library, we will see how an otherwise boring task can be automated. The goal of the task is to showcase the libraries to Python offers to work with standard office formats and provide you with a starting point for your own office automation. After this talk, you will know how to automate at least some of your daily office tasks. You may also be bored because Python is doing so much of your work for you. If you know basic Python programming, you will be right at home. There will be some use of Pandas, but it is not required.

uk: вхід без авторизації

name: The Boring Python Office Talk: Automate Powerpoint, Excel, and PDF with Python


uk: Комп'ютерні науки

description: Data Science is gonna save the world, right? Or is it? Machine Learning epic fails are being largely commented. It's easy to convince ourselves that they are due to the inconsiderate misuse of Data Science. But is it really so? Is it possible that innocuous choices lead an honnest team to a disaster? During the course of this talk, we will build together an (imaginary) application: a disruptive AI-based smart virtual assistant, pledging to help high-schoolers with their university choice. We will see how unintended biaises may creep in at every step, even with the best of intentions. We will explore different topics, such as algorithmic fairness, model interpretability and the handling of minority classes. Through this practical example, this talk will present a review of major ethical pitfalls identified in the Machine Learning community along with suggestions on how to avoid them. This talk is intended for beginner to intermediate Data Scientists, and people working with Data Scientists, even without specific technical knowledge.

uk: вхід без авторизації

name: Trust me, I'm a Data Scientist: Ethics for builders of data-based applications


uk: Комп'ютерні науки

description: We all know the internet can be a scary place. In this talk I’ll focus on two ways I’ve found it positively terrifying. First, digging into tracking technologies, I have learned about the breadth and depth of ways our online activity is monitored, stored, and repackaged. Second, when starting out to learn a new skill, the tidal wave of information available online can be overwhelming. Using the PyData stack to explore and visualize different data sources, including a new dataset from Mozilla, we’ll examine some of the many types of online tracking. My goal is to leave the audience with: 1) A sense of the breadth of tools in the PyData toolbox that can be applied to a real-world analysis 2) An understanding of a few methods of online tracking so they can be more informed internet citizens In particular, now that the EU’s General Data Protection Regulation (GDPR) has come into force, we can explore the data in light of EU citizens’ new rights, and the new responsibilities of companies worldwide. Along the way, I’ll also talk about becoming a software engineer, then a builder of data science tools, and my new journey into data science. Being self-taught can be, lonely, scary, and full of embarrassing pitfalls. I’ll share some stories about my learning journey, and the people and resources that have supported me.

uk: вхід без авторизації

name: The Web is Terrifying!: Using the PyData stack to spy on the spies


uk: Комп'ютерні науки

description: PyPy is a fast and compliant implementation of Python. In other words, it's an interpreter for the Python language that can act as a full replacement for the reference interpreter, CPython. It's optimised to enable efficient just-in-time compilation of Python code to machine code, and has releases matching versions 2.7, 3.5 and soon(ish) 3.6. The PyPy project also developed cffi as a clean and efficient way of interfacing with C code. However, many libraries in the Python ecosystem are implemented as C extensions, which target CPython's C API. Many others use Cython, which builds C extensions under the hood. Therefore, PyPy needs an emulation layer for the C API. This emulation needs to bridge the differences between the implementation languages and the object models of CPython and PyPy. The solution is called cpyext. It's implemented in a mixture of RPython and C, with most of the API functions and macros implemented in RPython. cpyext exposes PyObjects to the extension code that appear similar to CPython objects (as long as extension writers stay within the fuzzily defined boundaries of the public API) but are merely 'shadows' of the real PyPy objects. After a brief presentation of PyPy, its goals, and its current statuts and roadmap, this talk will dive into the vexed topic of its handling of C extensions. By the end of it, the audience should understand the operating principles of cpyext and have a clearer understanding of what happens when you install and run numpy, for instance, on top of PyPy. Some basic familiarity with CPython internals and how C extensions are made will be assumed.

uk: вхід без авторизації

name: Adventures in compatibility: emulating CPython's C API in PyPy


uk: Комп'ютерні науки

description: Zero-to-one hands-on introduction to building a business dashboard using Bonobo ETL, Airflow, and a bit of Grafana (because graphs are cool). There is no need of prior knowledge about any of those tools. After a short introduction about the tools, we’ll go through the following topics, using the real data of a small SaaS software: Plan (What data do we need to see?) Implement (How do we quickly get those graphs up?) Monitor (Are you sure your data’s still there?) Iterate (How do we move on from there?) One can expect to be able to build a similar system at the end of the talk in a few days (of course, the implementation is only a small part of this process, data is what really matters). «Metrics you watch tend to improve over time»

uk: вхід без авторизації

name: Business Dashboards: using Bonobo, Airflow and Grafana


uk: Комп'ютерні науки

description: Intro Italy is introducing a new API Ecosystem because the complexity of the old SOAP-based protocol was now a barrier for the creation of newer services. This talk presents the Digital Transformation Team ongoing work on an interoperability framework based on (REST) API, including: the scheme standardization based on EU standards, ontologies and RFC an availability strategy based on a distributed circuit-breaker and throttling patterns a contract-first (API-first) approach to REST services via OpenApi Challenges when you can replace SOAP Headers with the HTTP semantics introduced in RFC 7230-7238 strategies for a non-repudiation system based on HTTP (eg. DOSETA, JWS, ..) the path towards an European interoperable API Ecosystem Prerequisites basic knowledge of SOAP, REST and the HTTP protocol general web service issues, DDOS, availability and metrics

uk: вхід без авторизації

name: Interoperability Rules for an European API Ecosystem: do we still need SOAP?


uk: Комп'ютерні науки

description: Domain-Driven Design (DDD) is an approach to software development that emphasises high-fidelity modelling of the problem domain, and which uses a software implementation of the domain model as a foundation for system design. This approach helps organize and minimize the essential complexity of your software. DDD has been used with success within the traditional enterprise programming ecosystems of Java and .NET, but has seen only limited adoption in the Python community. In this talk we introduce Python programmers to the core tactical patterns of DDD and show how they can be realised in idiomatic Python, freeing the most valuable parts of your system – the domain model – from onerous dependencies on particular databases or application frameworks. In this talk we share what we've learned from applying DDD in Python to large projects.

uk: вхід без авторизації

name: DDD Patterns in Python: Deliver Domain-Driven Designs Dynamically


Creating Solid APIs

uk: Комп'ютерні науки

description: Increasingly, our apps are used not by humans but by other apps - via their APIs. Thus it is increasingly important that your APIs are well-designed and easy to consume for other developers. Adding a few API endpoints to your application for internal consumption is easy. Creating APIs that other developers will love to use is a much harder problem. You'll need to think about solving variety of topics such as versioning, authentication, response structure, documentation and more. There are existing good practices for each of them, but often developers who haven't done a lot of API work aren't familiar with them. My talk will show how to find reasonable solutions for those problems. I will talk about importance and intricacies of good documentation and why auto-generating it from your code is useful. I'll show how to make use of familiarity by using standards such as JSON API and show benefits brought by its standardized response structure that makes lives of 3rd-party developers easier. Authentication will be discussed, including introduction to OAuth2. I'll talk about when OAuth2 is a good choice and when not, as well as dig into some trickier parts of it. We'll then move on to versioning and how you can change your API without breaking all existing apps. Finally we'll wrap it all up by looking at some major APIs that are using the same principles.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: In this talk, I will give an insight into what it means to maintain a popular project for me personally, what it involves and what we as a community can do to help out and finally why I think it's an important discussion to have. Cookiecutter is a command-line utility that creates projects from templates. It is free and open-source software distributed under the terms of a permissive BSD-3 license. With around 180 individual contributors, more than 1000 public templates on GitHub alone, and multiple talks at conferences, it is fair to say that there is a small community around it. But who are the people behind the project and what is it that they are doing? It's been three years since I was granted the commit bit by the core team. I have learned a lot about FOSS communities and also about myself. At times I struggle with balancing my day job as a full-time Software Engineer and maintaining Cookiecutter and other FOSS projects in my spare time. By now I'm OK with not responding to issues immediately and closing pull requests. However it took me quite a while to get to this point. Maintaining FOSS projects can be incredibly rewarding and fun, but it can also be quite frustrating. It involves so much more than writing code or merging PRs, and yet sometimes it feels like that's what most people think. The goal of this talk is to start a conversation around this topic and hear what other EuroPython attendees think about it and their challenges as contributors or maintainers.

uk: вхід без авторизації

name: The Challenges of Maintaining a Popular Open Source Project


A Jupyter Enhancement Proposal Story

uk: Комп'ютерні науки

description: A Jupyter Enhancement Proposal Story [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Raniere Silva, Tania Sanchez Monroy Python users should be familiar with the concept of Python Enhancement Proposals (PEPs), the way that the Python language evolves over time. In a similar fashion, the Jupyter project has Jupyter Enhancement Proposals (JEPs). This talk with cover the proposer first-hand experience when submiting JEP 23 - Add Template as Metatada enhancement proposal from it's beginning, during EuroPython 2017, up to its current status. We will, in addition, present efforts made as part of the OpenDreamKit project to perform Jupyter notebooks conversions using custom metadata, templates, and exporters, in a programmatic way. Outline 0:00 - 0:05 Who are we? We are impostors! 0:05 - 0:10 Our previous experience with Jupyter Notebook. We will talk about the time that Software Carpentry used Jupyter Notebook for their lesson creation and OpenDreamKit Jupyter notebook programmatic notebooks conversion. 0:10 - 0:15 You are not alone. We will talk how the idea for the Jupyter Enhancement Proposals (JEPs) borned at EuroPython 2017 Help Desk 0:15 - 0:20 Writing our first Jupyter Enhancement Proposals. We will cover our steps to create the pull request required by the Jupyter Project. 0:20 - 0:25 What is the current status of the Jupyter Enhancement Proposals? We will cover any progress from the time of this talk proposal submission and the date of it presentation. 0:25 - 0:30 Time for questions License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Why Django is great. But as we add new features, as our dev team grows & the software needs to be stable on production, things can get quite messy. We are going to look at some common patterns, derived from experience, on how to structure your Django project for scale and longevity. What Main topics are: Django service layer or where should business logic live? Using Django Rest Framework in a clean & repeatable way & combining it with the service layer. Testing everything that matters, without repeating ourselves in different tests. We are going to talk about when to rely on existing abstraction so it's actually helpful & when to avoid existing abstraction, and code things ourselves. The examples showed in this talk are derived from working with Django in the last 5 years on projects with: Daily production usage & production deploys. Dozens of apps. Hundreds of models & APIs. Tens of integrations working simultaneously. Teams of 5 to 10 people. Who Key takeaways from the talk: Increased productivity when developing with Django. Deeper understanding of the software development process with Django. Demo project with everything mentioned in it. The talk is great for all levels of Django knowledge - from beginners to advanced users & teams. How The main way of getting the point across is going to be by showing regular code, talking how it can get messy & then following up with examples of improving that code. Hopefully this talk will start a lot of discussion afterwards. Breakdown of the talk: Django service layer Fat models or fat views? Where do I put my business logic? What is a service & what goes into a service? What is a selector & what goes into a selector? General Django structure How many apps should I have? Structuring your code so youр team can be more productive and have less conflicts. Common modules & utilities. Doing APIs with Django Rest Framework Splitting APIs in 2 groups - "giving data" and "taking data" Using a lot of generics for "give data" When do to selectors? Using no generics for "take data" (APIView + Services) Handling errors from services Inlining serializers & avoiding serializers reuse A neat inline_serializer util Introducing general error formatting for your API Testing all of that - what should be & not be tested?

uk: вхід без авторизації

name: Django structure for scale and longevity


Good features beat algorithms

uk: Комп'ютерні науки

description: In Machine Learning and Data Science in general, understanding the data is paramount. This understanding can come from many different sources and techniques: domain expertise, exploratory analysis, SMEs, some specific Machine Learning techniques, and feature engineering. As a matter of fact, most Machine Learning and Statistical analysis strongly depends on how the data is prepared, thus making feature engineering very important for any serious Machine Learning enterprise. "Feature engineering is the process of transforming raw data into features that better represent the underlying problem to the predictive models, resulting in improved model accuracy on unseen data." In this talk we will discuss what feature engineering and feature selection are; how to select important features in a real-world dataset and how to develop a simple, but powerful ensemble to measure feature importance and perform feature selection. Familiarity with intermediate concepts of the Python programming language is required to follow the implementation steps. General knowledge of the basic concepts of Machine Learning and data cleaning will be useful, but not strictly necessary, to follow the discussion on feature selection and feature engineering.

uk: вхід без авторизації


Quart; an ASGI alternative to Flask

uk: Комп'ютерні науки

description: Flask is a great web mirco-framework, that is best utilised with event-loop concurrency. Sadly with Flask the event-loop framework can't be asyncio, although some extensions (Flask-Aiohttp) have tried. Quart is the solution as it shares the Flask API and is based on asyncio. In addition Quart goes beyond Flask adding HTTP/2 and websockets. This talk will outline why event-loop concurrency is a good choice for web servers, why asyncio is a good choice and then give an overview of Quart, demonstrating features that go beyond the Flask framework.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: So, you wrote some Python code. What needs to happen before it starts running? And once it's running, how does Python keep track of what it's doing? I'll talk about CPython's tokenization, parsing, bytecode and its serialization and cache, the stack-based virtual machine, line number tables, and code, frame and function objects. Don't worry if you've never heard of these concepts. While even experts should learn something new, the talk is aimed at anyone who's worked on a Python project or two.

uk: вхід без авторизації

name: Bytecodes and stacks: A look at CPython’s compiler and its execution model


uk: Комп'ютерні науки

description: Apache Parquet Data Format Apache Parquet is a binary, efficient columnar data format. It uses various techniques to store data in a CPU and I/O efficient way like row groups, compression for pages in column chunks or dictionary encoding for columns. Index hints and statistics to quickly skip over chunks of irrelevant data enable efficient queries on large amount of data. Apache Parquet with Pandas & Dask Apache Parquet files can be read into Pandas DataFrames with the two libraries fastparquet and Apache Arrow. While Pandas is mostly used to work with data that fits into memory, Apache Dask allows us to work with data larger then memory and even larger than local disk space. Data can be split up into partitions and stored in cloud object storage systems like Amazon S3 or Azure Storage. Using Metadata from the partiton filenames, parquet column statistics and dictonary filtering allows faster performance for selective queries without reading all data. This talk will show how use partitioning, row group skipping and general data layout to speed up queries on large amount of data.

uk: вхід без авторизації

name: Using Pandas and Dask to work with large columnar datasets in Apache Parquet


Python, Docker, Kubernetes, and beyond?

uk: Комп'ютерні науки

description: Have you ever tried to manage deployment of multiple python applications through various linux distributions ? If so, you must have heard of Docker and maybe also Kubernetes. Distributing python applications using docker is simple and allows to create static packages containing everything required for them to run. Also it allows to freeze everything, packages, available libraries, files on filesystem. In my speech I would like to tell you about our brief journey, of moving our trading platform from standalone application directly on host system, through deploying it in docker and latter moving it to kubernetes. I will explain our struggles with implementing stable and fast CI using Gitlab CI and Docker, image (package) storage and cleanup of old images and finally I will tell you how we are deploying our platform to kubernetes, with nothing more than yaml-s and templating.

uk: вхід без авторизації


How async and await ended up in Python

uk: Комп'ютерні науки

description: We're going to talk about regular functions, iterables, iterators, function execution and yield - generator functions. We will send values and play with generators a bit. A quick look at asyncio will be followed by async and await, what a coroutine is and how to write async code with Python.

uk: вхід без авторизації


Was ist eine Wirbelstrasse?

@language: de

uk: вхід без авторизації

name: Moderation Skorupka, Sascha (Leitung, Regie, Redaktion)

Leibniz Universität Hannover (LUH)

addressCountry: DE

addressLocality: Hanover

addressRegion: Lower Saxony


Writing good error messages

uk: Комп'ютерні науки

description: Anyone who has ever conducted an elementary programming course, or even answered a question on StackOverflow, will know that reading error messages is a skill that beginners have to learn. It is less widely appreciated that writing good error messages is also a skill that must be learnt. This talk is in two parts. The first covers the commonest error message gaffes: • Insufficiently explicit messages. • Issuing the same message for two different conditions. • Suppressing the stack trace. • Polluting the stack trace. The second part describes a way to ensure usable, actionable error messages, even when the writer of the message is not a professional coder. This was developed for an environment where superusers code up most of the dozens of data validation rules and the accompanying messages, and the application in which Python is embedded suppresses the stack trace.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Artificial Intelligence, and machine learning in particular, is one of the hottest topics in tech/business. I will explain the core of machine learning, and the main goal of this talk will be to help you judge the success whenever someone yells "I know! let's solve this using machine learning!". I will also provide tips and tricks on how to increase the success of such projects. The second part of the talk will be about 2 open-source python projects I've created, as well as a project I'm working on regarding the trading of cryptocurrency... and their relation to machine learning. Specifically, the challenges and findings in making these cases work will be explored.

uk: вхід без авторизації

name: When to use Machine Learning: Tips, Tricks and Warnings


Leadership of Technical Teams

uk: Комп'ютерні науки

description: Leadership of Technical Teams [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Owen Campbell Over the years, I've led, and been a member of, numerous technical teams on a wide variety of projects. Based on that experience, this talk will describe my personal observations on the role of the leader in that sort of team. The talk will be in 5 sections: Introduction - A bit about my background so you can judge whether to bother staying for the rest. Authority - Where it comes from and the challenges you might face depending on the answer. Priorities - What should you be focussing upon? Style - There are many leadership styles, but what's yours and what's appropriate for technical teams? Process - What's your role in defining and managing process? There is no prior knowledge or experience required whatsoever. The talk is aimed equally at anyone considering a leadership role for the first time or who has been doing so for many years. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/

uk: вхід без авторизації


From linear algebra to machine learning

uk: Комп'ютерні науки

description: Math is a crucial skill for people who are interested in Data Science and Machine Learning. Until now, most of the people who are doing Data Science have a strong background in math, usually, people with master or Ph.D. degrees. However, this fact seems to change in the next years, after the hype of Machine Learning we are facing a process of democratization. Now the door of Data Science is open for everyone. To truly madly deeply understand how the machine learning algorithms work we need to understand some mathematical concepts. In this tutorial, I would like to share my experience in the process of learning some of those concepts. What I want to do is build a bridge between those concepts and Python, more specifically, SciPy and NumPy and TensorFlow. Basically is just another tutorial about vectorization, in this case, oriented to understand and implement machine learning algorithms and the mathematical foundation that supports it. Outline Review of linear algebra: A brief review of essential linear algebra, concepts and the explanation with NumPy: scalars, vectors, matrices, tensors, multiplication of vectors, inner products, vector spaces, etc. Review of machine learning: A brief review of essential machine learning, concepts that are related to mathematical concepts: dimensionality reduction, principal component analysis, etc. Optimization: Analytical vs. numerical solutions. This part has too many formulas, well, not too many. Vectorization: Numpy and TensorFlow. Small practical cases: I want to show how we can solve the XOR problem with only one neuron Explain the math behind recurrent neural networks.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Machine learning algorithms used in the classification of text are Support Vector Machines, k Nearest Neighbors but the most popular algorithm to implement is Naive Bayes because of its simplicity based on Bayes Theorem. The Naive Bayes classifier is able to memorise the relationships between the training attributes and the outcome and predicts by multiplying the conditional probabilities of the attributes with the assumption that they are independent of the outcome. It is popularly used in classifying data sets that have a large number of features that are sparse or nearly independent such as text documents. In this talk, I will describe how to build a model using the Naive Bayes algorithm with the scikit-learn library using the spam/ham youtube comment dataset from the UCI repository. Preprocessing techniques such as Text normalisation and Feature extraction will be also be discussed.

uk: вхід без авторизації

name: Building a Naive Bayes Text Classifier with scikit-learn


Let’s Build a Python Profiler in 25 LOC

uk: Комп'ютерні науки

description: A profile is a set of statistics that describes how often and for how long various parts of the program executed. Most profilers run inside your Python process. If you’re inside a Python program you generally have pretty easy access to its stack, hence we can gather information about time spent in each level. In this talk we'll build a Python profiler from scratch and so learn about the dynamic nature of Python and how do well-known profilers such as cProfile. We'll also learn the difference between a tracing and a sampling profiler and which one to use in what circumstance.

uk: вхід без авторизації


Code Review Skills for Pythonistas

uk: Комп'ютерні науки

description: As teams and projects grow, code review becomes increasingly important to support the maintainability of complex codebases. In this talk, I'll cover guidelines for writing consistent python code beyond pep8, how to look out for common python gotchas, and what python tools are available to automate various parts of the review process. Most importantly, I'll cover the human aspect of code reviews - how we can be better at approaching reviews with empathy and understanding from the perspective of both a reviewer and a submitter. Following these successful code review practices will lead to happier teams and healthier code bases. This talk is useful for python developers with any amount of experience. No prerequisite knowledge is necessary. - For those who are just starting out, it will be a great general overview. - Intermediate developers may not know about the wide variety of tooling that's available. - Advanced developers will learn techniques for performing code reviews with empathy. This talk will enable you to have better code reviews on your teams at work, and a better approach to code reviews in open source projects. You'll leave with 3 main takeaways: 1. Code Reviews are most effective when conducted with empathy. If you do reviews with growth and learning in mind, they become tools for sharing knowledge instead of an opportunity to bruise egos or show off esoteric knowledge. 2. Python has powerful tooling available for code reviews such as pep8 as a style guide, pylint as a linter, coverage.py to identify test coverage, and vulture to identify dead code. 3. That python style guides beyond pep8 have clear benefits in terms of producing more consistent code that's easier to review and easier to maintain.

uk: вхід без авторизації


PyPI: Past, Present and Future

uk: Комп'ютерні науки

description: The Python Package Index (PyPI) is the principal repository of software packages for the Python programming language. In May 2018, PyPI served 12.3 billion HTTP requests, with 1.4 million people visiting pypi.org via their web browser. The Python community depends on PyPI for the ongoing functioning of the entire Python ecosystem.

uk: вхід без авторизації


My Story with Python and Open Source

uk: Комп'ютерні науки

description: This is the story of how I (and with me, my company) went from lonely, introvert, C# developer to open-source Python author and maintainer, speaker, trainer, consultant, and all-around community junkie. With some luck, in the process, you will also hear a few hints on how to become a good open source contributor and have a chance to ponder on the pros and cons (yes there are cons too) of going full monty with open source. We will also look at what changed in my company as we slowly switched from closed, in-house eco-systems to the open source field.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: This talk will aim to demystify quantum computing and will assume no prior knowledge. The speaker, while having studied Quantum Field Theory many years ago, has only relatively recently started learning properly about Quantum Computing, and is going to try to take advantage of the fact that the ideas are relatively new to him to explain the key concepts simply, to an audience (probably) consisting mostly of non-experts in quantum computing. Key questions I will try to cover are likely to include * What is quantum mechanics anyway? * What are quantum computers? Are they real? And are they really faster/more powerful than classical computers? * What is a qubit (the quantum computing analogue of a bit) * What problems are likely to be solved well by quantum computers? * How do you program a quantum computer? * How do you get results out of a quantum computer? What kind of results are they anyway? Do you have to visit other universes to get them? * Can you get access to quantum computers online and use Python to program them (kind-of!) * Will quantum computers break all encryption? * What are Shor's and Grover's algorithms and (just possibly) how do they work? * What are the challenges with building practical quantum computers? * What is the Python story with Quantum Computing?

uk: вхід без авторизації

name: Quantum Computing: a Very Gentle Glimpse into a Possible Future


uk: Комп'ютерні науки

description: The composability of fixtures in pytest is an improvement over traditional xUnit setup/teardown, reducing the incentive to commit testing crimes such as multi-stage and stepwise tests. This is great out of the box for unit tests, but I'm going to show how to combine the power of pytest fixtures with Docker to build high-level integration tests for microservices or other complex systems with multiple components. I'll then build on that to show how to embed mock web services written with Flask right into the test code. With a sample Java application that makes use of some external resources to offer a data processing service I'll first quick an overview of Pytest, Docker, and Flask. Then I'll mix some pre-built code with live test coding to demonstrate how to build high-level system tests which spin up the application and its dependencies in Docker. I'll then mock one of the external dependencies using Flask, allowing the test to control and verify interaction between the system components. Finally I'll show how to wrap the Flask application in a WSGI middleware that lets the test inspect interaction with the mocked service. From a learning and development point of view, building your own is better than re-using someone else's code so I'll show how the support code for these features is relatively simple and how the audience can build it themselves to exactly meet their own needs. And I'll do it all with a sense of fun, a joke or two and maybe a little storytelling.

uk: вхід без авторизації

name: System testing with Pytest, Docker, and Flask


Python Software Foundation Session

uk: Комп'ютерні науки

description: The Python Software Foundation (PSF) is the organization behind Python itself. It holds the IP rights, runs PyCon US and tries to help the Python community world-wide to run events, user groups, workshops or Python related programming projects by giving out grants. This year, we’re again having a PSF Members meeting at EuroPython, where the PSF reports on its activities, new plans and organizational changes. The meeting is open to everyone, so if you want to learn more about the PSF activities, please join in.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Using for loops and list comprehensions in Python is basic and quite common, right? But how does iteration in Python actually work "under the hood"? The words "iterator" and "iterable" each occur over 500 times in the Python documentation, but what does an iterator actually do, as opposed to an iterable? And how do they do it? Learn the details as we turn the iteration protocol inside out, with live coded demonstrations along the way. This talk will start from the way Python iterates of over a sequence, in comparison with iterating by index, like C. The key point of iterating over a sequence is that something needs to track which item in the sequence is next, which is something that Python's iteration protocol manages. The iterable section will demonstrate creating a simple object that returns items by index (e.g., a fibonacci series), showing that getitem is really all you need for an iterable, since an iterator is created for such objects when iterated upon. BUT, this doesn't answer the question of how Python keeps track of which item is next. The iterator section answers that question by converting the iterable just created to an iterator - adding iter and next methods and showing how the iterator saves state and essentially drives the iteration protocol. Having an accurate understanding of iteration protocol will help developing Pythonistas reason better about both iterating over existing objects and creating their own iterables and iterators.

uk: вхід без авторизації

name: Iteration Inside Out: Inside Python's Iteration Protocol


Marge-bot: better Git'ing with python

uk: Комп'ютерні науки

description: Over the past decade, development workflows across industries have converged towards Continuous Integration (CI) with pull requests (PR). Automated testing and artifact generation is useful, but the logic is often flawed: test are run against the source branch, and side effects from successful merges are not accounted for. Marge-bot improves this workflow by allowing to test the PR against the target branch while providing a host of other conveniences.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Python in scientific computing: what works and what doesn't [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Michele Simionato There is no want of technologies for doing scientific calculations in Python. In this talk I will share some hard-learned knowledge about what works and what doesn't with the libraries we are using at GEM (the Global Earthquake Model foundation). I will show how the following libraries fare with respect to our main concerns of performance, simplicity, reliability and portability and I will talk about several library bugs we found and had to work around. I will also talk about some libraries that we do not use (such as cython, numba, dask, pytables, ...) and the reason why we do not use them. Hopefully this will be useful to people using or planning to use a similar software stack. My slides are here: https://gitpitch.com/micheles/papers/europython2018 License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/

uk: вхід без авторизації


uk: Комп'ютерні науки

description: Commercial machine learning projects are currently like start-ups: many projects fail, but some are extremely successful, justifying the total investment. While some people will tell you to "embrace failure", I say failure sucks --- so what can we do to fight it? In this talk, I will discuss how to address some of the most likely causes of failure for new Natural Language Processing (NLP) projects. My main recommendation is to take an iterative approach: don't assume you know what your pipeline should look like, let alone your annotation schemes or model architectures. I will also discuss a few tips for figuring out what's likely to work, along with a few common mistakes. To keep the advice well-grounded, I will refer specifically to our open-source library spaCy, and our commercial annotation tool Prodigy.

uk: вхід без авторизації

name: Building new NLP solutions with spaCy and Prodigy


uk: Комп'ютерні науки

description: Plotly Dash is a Python framework for building interactive dashboards and web data applications, based on Flask, React.js, and Plotly. It allows a python-only approach to something that previously required knowledge of Javascript, heavily reducing the overhead required to create a web application. I'll show how easy it is to set up a small interactive web app using data from the Twitch API and to expand it at will, using only Python.

uk: вхід без авторизації

name: Easy interactive data applications with Dash


uk: Комп'ютерні науки

description: The need for processing small-scale to large-scale spatial data is huge. In this talk, it is shown how to analyze, manipulate and visualize geospatial data by using Python and various open source modules. The following modules will be covered: Shapely: Manipulation and analysis of geometric objects Fiona - The pythonic way to handle vector data rasterio - The pythonic way to handle raster data pyproj - transforming spatial reference systems Vector File Formats (Shapefiles, GeoJSON, KML, GeoPackage) Geospatial analysis with GeoPandas Creating maps using Folium

uk: вхід без авторизації

name: Processing Geodata using Python and Open Source Modules


Proper Django Testing

uk: Комп'ютерні науки

description: I'm currently working in a Django project, We have a lot of tests (~ 2000) and a fair amount of code coverage currently. The system and the requirements of the client grows everyday (like in every other project these days). I've convinced that the effort we put in making each of these tests pays off daily. Speaking with other Django and Python developers I've noticed that people often "overengineer" their unit tests and they usually tend to break their principles. In this presentation I will talk mainly about unit tests. - what packages we use and how and when to use them (properly). We will take a look on how we structure our projects and how this structure actually helps us write proper unit tests. I will start with the very basic tests and continue with the mocking technique. In the end I'm going to refer to other testing methods (integration, E2E, validation testing, visual regression, etc.). The goal of this talk is to make people better in testing and to show them how these skills will fasten the development process and help them maintain their project and it's quality.

uk: вхід без авторизації


uk: Комп'ютерні науки

description: What exactly are functions? Let's talk about functions, methods, callables and closures - what they are, what you can give them, what they can give you, what you can do with them ... and what's inside. You probably think you already know everything about functions, but you probably don't! Input & Output: How do you get things in and out of functions? I'll cover parameters and the myriad of ways they can be specified, provided and accessed - including helpful hints to avoid common mistakes! I'll cover return values, briefly, along with variable scopes and exceptions. Closures: What are they, how do they work and how they can affect memory usage. Methods: How does a method differ from a function, when are they made, how do they work and how to access the function inside every method. __magic__:Make your own callables from any object! Introspection: Using modern Python techniques, what can you find out about a function, and what can you do with that information? Bytecode: What happens if you open up a function and look at its insides? Can you change it and put it back together again? (Spoiler: Yes, you can.) By the end of this talk, I guarantee* you'll know more about callables than when you walked in, along with techniques both practical and so extreme your colleagues will never let you merge them to master. (*This guarantee is legally non-binding and cannot be redeemed in any way.)

uk: вхід без авторизації

name: More Than You Ever Wanted To Know About Python Functions


uk: Комп'ютерні науки

description: "Taint tracking" is a technique used in code analysis to find security vulnerabilities and other problems. Any data that comes from an untrusted source, for example a HTTP request, is treated as "tainted". If that "tainted" data is able to reach a vulnerable part of your code, then you have a problem. Sophisticated code analysis tools can track this data, and reveal potential security problems. Examples of the sort of problem that can be found include cross-site scripting (XSS), code injection, SQL injection and others. In this talk I will show how taint tracking analysis works in practice, introducing the concepts of source, sink and sanitizer. I will then demonstrate using taint tracking to find a XSS vulnerability in a django app. (We will chose a project that is designed to teach django security, where the vulnerability is deliberate.) I will also explain how thinking in terms of "taint" can help you write safer code, even without access to code analysis. During this talk I will use the code analysis tools on lgtm.com to demonstrate the analysis. lgtm.com is free to use for open-source projects. A paid version is available.

uk: вхід без авторизації

name: Is your code tainted?: Finding security vulnerabilities using taint-tracking


uk: Комп'ютерні науки

description: Ever wonder what mocks, fakes, dummies stubs or spies are? Or what the differences are between them and when one should be used instead of another? We will take a deep look into these concepts, what they mean and examples on how to use/create them in Python. In this talk, we will quickly explore the reasons for using mock and how it works, quickly jumping into the different concepts of testing doubles and how they can be used in Python. The talk will include as part of the examples from some features in mock coming in Python 3.7 that might change how usual mocking is performed. The talk builds on the writings of Gerard Meszaros and Martin Fowler about testing doubles, focusing on how to apply them to Python. This session, which will review test isolation concepts and the unittest.mock module, is structured in a way that both beginners and intermediate developers will learn from it. A basic knowledge of testing is recommended. Intermediate developers will leave the room with a clear understanding of the tools - further than just using simple mocks - to successfully fake dependencies. Multiple “not so well known” features of unittest.mock will be presented so we can shape those objects to behave functionally different. Unittest.mock is an extremely useful library which is commonly underused, this talk aims to bring clarity into stubbing in general and into medium/advanced mock features to ease and remove pain when users work with it. Outline: • Intro (1’) • Why doubles are important (1’) • Main qualities of a double (2’) • Overview of unittest.mock (5') • Testing doubles (15’) o Doubles (1’) o Stubs (2’) o Spies (3’) o Mocks (5’) o Fakes (2’) • Wrap up, conclusion and pointers (2') • Q&A (Expected 5’)

uk: вхід без авторизації

name: Mocks, fakes, dummies, stubs and spies: Successfully isolating the snake