List of videos

Alexander Steffen - Testing microcontroller firmware with Python
"Testing microcontroller firmware with Python [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] Last year's talk (https://ep2016.europython.eu/conference/talks/writing-unit-tests-for-c-code-in-python) showed you how to use CFFI (https://cffi.readthedocs.io/) to write unit tests for C code in Python. This year we will take the concept one step further and create integration tests covering (almost) the whole firmware of a microcontroller, again leveraging the power of CFFI. But instead of running the firmware on the controller, it will be executed on the development machine (that is, a standard x86 architecture), allowing for much faster test execution, without requiring the target hardware. For this to work, all the hardware-dependent parts of the firmware code need to be replaced by Python code simulating the hardware functionality, so that all the firmware above this hardware abstraction layer can be executed unmodified. In addition, this allows to use advanced security testing tools like AddressSanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizer) and american fuzzy lop (http://lcamtuf.coredump.cx/afl/) that would not be able to run directly on the microcontroller. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Kristian Rother - Best Practices for Debugging
"Best Practices for Debugging [EuroPython 2017 - Training session - 2017-07-10 - Sala del Tempio 2] [Rimini, Italy] Debugging is a daily activity of any programmer. Frequently, it is assumed that programmers can debug. However, programmers often have to deal with existing code that simply does not work. This tutorial attempts to change that by introducing concepts for debugging and corresponding programming techniques. In this tutorial, participants will learn strategies for systematically debugging Python programs. We will work through a series of examples, each with a different kind of bug and with increasing difficulty. The training will be interactive, combining one-person and group activities, to improve your debugging skills in an entertaining way. Contents: Syntax Error against Runtime exceptions Get file and directory names right Debugging with the scientific method Inspection of variables with print and introspection functions Using an interactive debugger Pros and cons of try.. except Delta debugging 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Rafał Nowicki - Python REST frameworks review
"Python REST frameworks review [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] Number of libraries for building RESTful web applications is growing up. Selecting best framework becomes hard decision for web developers. During the presentation I will go through best libraries I can recommend for building RESTful web applications. Selection of libraries will be subjective, based on my experience with building microservices in Python. I will share code examples, weaknesses and strengths for each library. I hope everyone will find something that best suits his needs. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Alessandro Molina - Protocols and Practices enforcing in Python through bytecode and inspection
"Protocols and Practices enforcing in Python through bytecode and inspection [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] Python is an interpreted development language with powerful introspection features, up to allow accesso to the byte code itself to see what the virtual machine is going to do. Reaching down to byte code or low level inspection is usually a very uncommon need and it's usually only involved in debugging or understanding the interpreter internals, but it can be a powerful tool to check that third parties code that (or the code we will write ourselves in the future) sticks to some protocols or best practices that are supposed to be in place. Most of the needs for this checks are usually performed at execution time or through techniques like metaclasses and monkeypatching of third parties code, but in some cases it would be possible to inadvertently skip those checks or work them around, while verifying the resulting byte code allows us to check what's really going to be executed and enforce the required constraints. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Benno Luthiger - Bitcoin and Blockchain for Pythoneers
"Bitcoin and Blockchain for Pythoneers [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] Why should a Python programmer be interested in Bitcoin and the Blockchain technology? Blockchain technology is one of the fastest moving part in the Fintech area. However, the Blockchain is not only the basis of crypto currencies. First of all it’s a decentralized registry that cannot be modified. This means that using a Blockchain, users can trust in the validity of a dataset without the need to establish a central authority. Thus, the Blockchain can be used to store records e.g. of land ownership or and other property rights in countries with weak or corrupt or otherwise incompetent authorities. Therefore, Python programmers with an understanding of this technology are especially well prepared to contribute in this area, because the agility inherent to Python makes it easy to program in a fast moving environment. The fact that various applications in the Bitcoin and Blockchain area are implemented in Python prove this notion. However, the reverse is also true: An understanding of the distributed ledger technology possibly enables you to solve problems in projects you encounter in the near future. In this talk, I will present the following topics: • The Blockchain architecture: nodes, transactions, headers. • The Bitcoin protocol and its proof of work (POW) • Smart contracts • Bitcoin alternatives: Proof-of-work (PoW) compared to Proof-of-stake (PoS) 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Dougal Matthews - Async Web Apps with Sanic
Async Web Apps with Sanic [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] This talk will introduce you to Sanic, the Python 3 web framework that supports async request handlers with a simple, Flask-like, API. We will start with a Sanic overview and compare it with other similar options before looking at the API and working through a basic app. Our goal here will be to get a feel for the Sanic API and demonstrate how it fits together. After this we will cover some of the more unique and interesting possibilities with Sanic, such as support for websockets and HTTP2. A web framework is often only as powerful as its ecosystem, so we will take a look at some of the popular Sanic extensions for databases, templating and testing. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Marco Montanari - Django, Django Rest Framework and Angular2: RAD on SaaS platforms
"Django, Django Rest Framework and Angular2: RAD on SaaS platforms [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] Rapid Application Development has been a major topic for the desktop development world. Yet, desktop development has proven to be at the end of its timeline and the latest major environment is now the web in its many forms (from browser to Electron and similars). Django offers an amazing infrastructure and Django Rest Framework an amazing middleware to solve most of the problems. The RAD development on Angular2 is then enabled by a set of libraries developed at Modal Nodes for both front and backend that ease the development of the front end tools and front end interactions with both unauthenticated and authenticated systems via JWT and Djoser. Specifically, we will see the changes in the metadata that will enable better interactions and the usage of both the backend elements and the front-end ones in order to ease development. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Shailen Sobhee - Python Profiling with Intel® VTune™ Amplifier
"Python Profiling with Intel® VTune™ Amplifier [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] Python has grown in both significance and popularity in the last years, especially in the field of high performance computing and machine learning. When it comes to performance, there are numerous ways of profiling and measuring code performance—with each analysis tool having its own strengths and weaknesses. In this talk, we will introduce a rich GUI application (Intel® VTune™ Amplifier) which can be used to analyze the runtime performance of one’s Python application, and fully understand where the performance bottlenecks are in one’s code. With this application, one may also analyze the call-stacks and get quick visual clues where one’s Python application is spending time or wasting CPU cycles. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch
Miguel Grinberg - Python Microservices
"Python Microservices [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] This talk is for Python web developers interested in learning what are the core ideas behind microservices, what problems they try to solve, and what are the viable options to implement them in Python, both from technical and teamwork point of views. Some of the topics that will be discussed include the role of APIs, the improvements microservices bring to application scalability, upgrades, and maintenance, and the challenges in breaking up a monolithic application. Attendees will leave the talk with a good idea of what microservices are, and how they help build better applications. As usual with my presentations, there will be actual code examples presented during the talk that I will also host on GitHub, for those interested in investigating further on their own. 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://ep2017.europython.eu/en/speaker-release-agreement/
Watch