EuroPython 2017

2017

List of videos

Roberto Polli, Danilo Abbasciano - TCP / IP Animated

"TCP / IP Animated [EuroPython 2017 - Interactive session - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] This interactive game teaches is the follow-up of the Router Game by Roberto Polli, and teaches various TCP / IP protocols using paper and pen. Participants are divided in teams, simulating exchanges through various protocols (DNS, TCP, IP) Every player has an L3 role: a PC or mobile phone, a Router, a Load Balancer ... and must communicate with the others following the associate specification (eg. a TCP client may buffer frames, a Load Balancer re-encapsulates IP datagram, ... ) The team which is faster in exhanging messages wins. 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
Opening Session - 2017-07-10

Welcome, benvenuto! [EuroPython 2017 - - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] 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
Armin Ronacher - A Python for Future Generations

"A Python for Future Generations [EuroPython 2017 - Keynote - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] A journey through the current Python interpreter, some of the effects of its leaky abstraction on the language design and how we could evolve the language to future proof it. Covers some practical and not so practical ideas based on experience in the JavaScript and Rust ecosystem. 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
Yigit Guler - Understanding Celery & CeleryBeat

"Understanding Celery & CeleryBeat [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] Celery is a distributed task queue for Python. Although it is most popular in the web development ecosystem, it has a wide area of usage from system management to IoT devices. With Celery, transforming a function into a task is quite easy and can add great performance & usability to the applications that we build. This talk aims to give attendants a general overview on Celery and its uses. We will walk through the core Celery architecture by introducing key components with the help of various real-world examples. This will also lead to an understanding of the task queue systems in general. Attendants will also gain knowledge about Celerybeat; a tool that focuses on scheduling tasks. We will be looking for the answers to the following questions: What is a distributed task queue? What are the main elements of Celery? When should we use Celery tasks? How do we use Celery Beat? Attendants should have a basic knowledge of Python, and a minor development experience. 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
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
Mario Corchero - Effortless Logging - Let the loggers work for you

"Effortless Logging - Let the loggers work for you [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] Logs are your best friends on those late nights when you try to troubleshoot that problem in production that was written by a friend of you who is on holidays at the moment. Logs are the main way to know what is happening at runtime with an running application but as we don’t realize how important they are until we actually need them it is usually an under appreciated part of our development process. This talks overviews the logging module of the standard library and demonstrates some basic best practices and techniques make the most out of our logging when we need it. After this talk you will be fully familiar not only on how to use the logging library but also how it is actually designed, how it works, how to extended further than the basic usage and some sample recipes and configurations for complex applications. 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
Alan Christie - Building a real-time embedded audio sampling application with MicroPython

"Building a real-time embedded audio sampling application with MicroPython [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] While demonstrating the pyboard to a group of colleagues, a challenge was set to produce a practical demonstration of the device that would provide automatic and continuous voice recording and playback of short spoken phrases similar to that found in a number of talking toys. This talk covers the process of designing and testing the embedded real-time Python solution and includes the architecture, test methodologies and recordings as the stages progressed to the final source code. The talk concludes with a live demonstration of the final application. The solution uses MicroPython (an embedded implementation of Python 3), the pyboard and its AMP Audio skin. MicroPython is a lean implementation of Python 3 that is optimised to run in a very small footprint on micro-controllers and in constrained environments. It was created by the Australian programmer and physicist Damien George, after a successful Kickstarter backed campaign in 2013. The pyboard is the original reference hardware created to host MicroPython. It is a compact low-power board based on an ARM processor with a heap of approximately 100kBytes that can run at 168MHz. It has sufficient hardware services and real-time capabilities to control all kinds of electronic projects. The AMP Audio skin is a small additional module that attaches to the pyboard that adds a small power amplifier, speaker and a microphone with a pre-amp. 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
Jussi Pakkanen - Meson: compiling the world with Python

"Meson: compiling the world with Python [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] Compiling source code into libraries and executables has always been problematic, especially for cross platform projects. Typical problems in existing build systems include slow build times, undecipherable syntax, lack of support for cross compilation and so on. Some people choose to not use a build system at all but instead just write a one-off Makefile, which will usually work fine on their machine and nowhere else. All this makes software development slower than it needs to be. The Meson build system (http://mesonbuild.com) is a new build system designed from the ground up to provide a solution for these (and other) problems. It is implemented in Python 3 and provides a simple, non-Turing complete DSL for describing the build. The project provides built-in support for common tasks such as documentation generation, building Qt apps and Python extension modules. Meson is currently seeing a lot of uptake in the Free software world with big projects such as GStreamer, parts of GNOME, Wayland and even the X server either transitioning, or very strongly considering the transition to Meson. In this talk we go over the design of Meson, how to use it for new and existing projects and the benefits this brings, including faster compiles, less time wasted debugging the build system environment and easy access to modern software development tools and practices. 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
Maciej Polańczyk - Mock it right! A beginner’s guide to world of tests and mocks.

"Mock it right! A beginner’s guide to world of tests and mocks. [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] The main goal of this presentation is to make beginner audience familiar with mocks and patches but there is a chance that more experienced ones will also find something new for themselves. Presentation shows the common use cases when developing unit tests. I will say what are the best practices when working with mocks and patches and what kind of mistakes, done by many developers, may be avoided so the dragons will not come. During this presentation I will prepare mock-it-o drink as a prize. First, I will briefly introduce an audience with the topic of unit testing. Then I will show a simple code which will be tested during the presentation. It covers all common use cases of writing unit tests which are usage of mocks, patches and their side effects. In the end I will show a template of unit test which will be extended according to our needs. Next, I will say what is a mock, and what are the benefits of using it. Why it is better than any Dummy class implemented for purpose of unit tests and, what is the most important and sometimes forgotten by experienced developers, how to create the best mock, which involves using spec_set and spec to protect us from dragons when interface of mocked class changes. Last but not least part of my presentation will be dedicated to patches. I will explain when and how patches should be used (how to use side_effect, patch properties and environment variables). Finally, I will say how to avoid common mistakes when working with patches. 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
Tim Babych - Front-end testing with Python

"Front-end testing with Python [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] Web-developers use Python to develop web-applications, serving HTML or JSON content to user's browsers which render it. We test our applications to check that they serve content right and that they respond to HTTP requests in an expected way. However, this is not all that happens in a modern web application. There are lots of moving parts which are executed not on the server, but directly in user's browser, and they need to be tested too. The best way to check that our app works well in a browser is to test it in a browser, and Python gives you tools to do that conveniently. With a Selenium tool and Python package, you can control the browsers, making them open web pages and interacting with them. I will show how to install Selenium and needed drivers, and tell about best practices for writing Selenium tests, such as Page Object pattern Put browser interactions in the page object, not the test Put assertions in the test, not the page object Never use time.sleep() Always make pages wait for actions to complete Wait for JavaScript to load To test the visual look of your application there is a Needle tool, which lets you compare screenshots with baseline set, and highlight the differences. I will talk about how to incorporate that functionality into your tests. As browser testing can get quite slow, I will also show how to set up running them concurrently. 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
Lasse Schuirmann - From Fun to Business - How Open Source Changed my Life

"From Fun to Business - How Open Source Changed my Life [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] Coala (https://coala.io/) began as a fun project. We never believed there would be anything useful growing out of it - and yet it did. Contributors all over the world came to us and helped creating the community as it is. But how did all of this happen? What does this mean for the main contributors? How can we make a living of an open source project? This talk tells our story. What we did - good and bad things - so we can learn from it. From my personal open source contributions over founding an open source project to building a freelance agency and founding a startup. Participants will learn how they can grow an open source project, automate newcomer processes and gain insights into how they can start making a living of it, possibly founding a company eventually. There is no single recipe for this but we can - and should - exchange the tips and tricks we’ve gained with our ventures. This talk is for entrepreneurs, wanna-be-freelancers and future or past open source project founders. This talk is completely new and has not been presented at any conference yet although it overlaps with previous talks of mine which have received much positive feedback at previous regional PyCons. It will be tested at a local meetup to ensure proper timing. 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
Alejandro Castillo - Django Rest Framework, one year after: tips, tools, tricks and pitfalls.

"Django Rest Framework, one year after: tips, tools, tricks and pitfalls. [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] One year ago we started OnTruck. Our CTO had previously had some success with DRF so after discussing it, we decided to give it a try. After a year building a quickly iterating startup on top of Django Rest Framework, we have reflected a lot on it. Even now, with a full year of development on top of it, we still periodically discuss going forward or dropping it. For the time being it still wins. So we think we have learned a lot about it. This talk is a walkthrough of the discoveries & learnings we have made at OnTruck during that year. We will cover different aspects of the framework, what advantages it has given us and also what tradeoffs it has forced. We will discuss both how it relates to Django on the inside and how it relates with other systems outside. We will approach it both from a purely user perspective and also discuss some of its internals and the way we tweaked them to make it work for us. We will cover the pitfalls we have both avoided and fallen into. The tricks that have helped us keep our speed and sanity. The tools we have both used and discarded on the way. And finally the tips we would give ourselves if we were starting all over again after this year. 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
Radomir Dopieralski - MicroPython Workshop

"MicroPython Workshop [EuroPython 2017 - Interactive session - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] We will program some ESP8266-based development boards, make them blink LEDs, move servos, display pictures, read sensors, react to buttons, and, more importantly, talk over HTTP and MQTT with servers. This is an excellent occasion to try your skills in building and programming small electronic devices. No experience with electronics is required, everything you need to know will be covered during the workshop. You will need to bring a laptop with a USB port. If it runs Windows, make sure to have some terminal emulator installed, such as PuTTy, CoolTerm or even HyperTerm. On Linux and OSX we will use Screen, so you don't need anything special. I only have about 20 kits for this, so the number of people that can take part is limited. 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
Roberto De Ioris - AAA Games with Unreal Engine 4 and Python

"AAA Games with Unreal Engine 4 and Python [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 2] [Rimini, Italy] Unreal Engine is the game industry leading platform for developing AAA Videogames. Now you can script your gameplay logic, automate your development pipelines or test your productions with Python too. The UnrealEnginePython plugin aims at covering the whole feature set of Unreal Engine 4 and extending it with the huge modules library available in the Python world. The talk will briefly introduce the Unreal Engine platform and its capabilities as well as how it can be programmed without the python plugin (Blueprints and C++). The biggest part of the talk will focus on how the Unreal Engine 4 patterns are mapped to the python plugin, what is already working and what you can expect from future developments. No prior knowledge of game/graphics programming is required, and if you are in the movie or cartoon industry you can get interesting infos too 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
Nicola Iarocci - Python on Windows, Like a Boss

"Python on Windows, Like a Boss [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] Historically, Python coding on Windows has been kind of troublesome, but not anymore. Since a couple of years ago it is possible write awesome quality Python code with Visual Studio. This is good news for Python developers of all levels, because Visual Studio offers and incredible set of tools to enhance all the stages of product development: from managing virtual environments and handling package management, to writing and refactoring code, up to testing & debugging - all of that for free. In this talk I will demo how you can use Visual Studio to boost your Python development on Windows. 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
Frankie Dintino - 2 + 2 = 5: Monkey-patching CPython with ctypes to conform to Party doctrine

"2 + 2 = 5: Monkey-patching CPython with ctypes to conform to Party doctrine [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] A few weeks into your tenure as a software engineer at the Ministry of Truth you are assigned your first real feature request: write a context manager that can make “2 + 2” equal 5 at runtime. Your solution should be written only in Python (for maximum portability). Absurd? Perhaps, but you know better than to ask questions. You are no thought-criminal. In this talk I walk through the steps I took to modify the value of two plus two in CPython at runtime—using only Python and the ctypes module. What began for me as a silly and frivolous side project became an education in how the python data model works behind the scenes and how CPython compiles, optimizes, and executes python code. The goal of this talk is to provide an introduction to CPython internals while walking through the steps needed to monkeypatch integer addition to make “2 + 2” equal 5. The audience should come away with a better understanding of how python objects and types are represented in memory, how references are counted, and how python scripts are transformed into abstract syntax trees, compiled into code objects, and then executed by the CPython virtual stack machine. And because I’ve limited myself to using ctypes, these topics can be explored without familiarity with C as a prerequisite. 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
Leblond Emmanuel - Bringing Python to Godot game engine

"Bringing Python to Godot game engine [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] https://godotengine.org/ Godot is an advanced, feature-packed, multi-platform 2D and 3D open source game engine. The project has joined the Software Freedom Conservancy project and it growing community makes it hopes to become a real alternative to Unity&GameMaker. This talk cover a year long journey of the port of Python as a scripting language for the engine, starting from a rant against Godot's Python-like proprietary language. We will have a look at Godot's internal architecture as is it itself a real interpreter with it garbage collector, dynamic typing, introspection and even builtin custom scripting language. All of this having to work next to our Python interpreter and communicate back and forth with it. Finally we will see the different approaches that have been tried to bind Python to Godot each with there own pros&cons: Using Micropython interpreter instead of CPython Using PyBind11 to statically bind to Godot C++ API Using CFFI and rely on a 3rd party C API The audience should have some basic knowledge of C level computing (static vs dynamic language, compilation & linking). 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
Alex Martelli - Testing in Layers

"Testing in Layers [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] The role of automated testing at the heart of modern development and operations is a given. However, the traditional approach to testing, separating too-developer-focused unit testing and (often only semi-automated) end-to-end integration testing—is not optimal in the modern, fluid world of DevOps. Nothing short of full automation is suitable for continuous integration; any “testing” requiring humans has a drastically different place in the continuum of development and deployment and should best be called by a completely different name like quality assurance. Within the realm of fully automated testing, the best approach, just as for other kinds of software, is modular and layered. This talk highlights the proper design of components for testing purposes and explains how such a design lets you compose multiple, layered testing suites that span the gamut from fast, light-weight unit tests meant to run all the time during development, to full-fledged end-to-end tests of whole systems—and, crucially, the often-neglected intermediate layers, bridging the thoroughness of end-to-end tests with unit tests’ speed and ability to pinpoint the location of any problems that emerge, enabling rapid fixes of most such problems. The talk also discusses the use of modular, layered testing components to validate software refactoring, and (when deployed in a load-testing arrangement) identify and validate software (and architectural) optimizations. 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
Adam Dangoor - But how do you know your mock is valid? Verified fakes of web services

"But how do you know your mock is valid? Verified fakes of web services [EuroPython 2017 - Talk - 2017-07-10 - Arengo] [Rimini, Italy] If your code calls a third party service then you may want to test that your code works but you don't want to call the service in your tests. It may be expensive, slow or impossible to call that service. For example, if you are making a Slack bot, you want to create tests which don't make calls across the network to Slack. One approach is to create a mock of that service. Our tests can now run quickly, cheaply and reliably. But if we copy the service incorrectly, or if the service changes, our tests will pass while our code does not work. Verified fakes solve this problem. You can write tests which confirm that your mock is an accurate representation of the service being mocked. Those tests can be a small subset of your test suite and they can be run periodically, to verify the validity of the many tests which use the mock. This talk will follow the example of VWS-Python, a verified fake for a proprietary web service. It will discuss the practicalities of creating such a fake and it will focus on the trade-offs, tooling and approaches involved. By the end of this talk the audience will understand how to tie together pytest, Travis CI, requests and Responses to create a verified fake. The talk is aimed at people who have an interest in writing correct software. It is assumed that the audience is familiar with basic testing techniques. 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
Jakub Wasielak - Python Packaging - current state and overview

"Python Packaging - current state and overview [EuroPython 2017 - Talk - 2017-07-10 - PythonAnywhere Room] [Rimini, Italy] Historically, Python packaging has been a source of significant pain for even the most devoted Python enthusiasts. I've found myself in the situation, where I did know the basic concepts behind the tools, but despite that only thing I could do was following tutorials. That was the time to change it and that's the reason this presentation was written. In this talk, I'll provide a quick overview of the current state of Python packaging tools. I'll mostly focus on setuptools, pip and wheels, putting an emphasis on their superiority over their precursors. I'll also list down the honorable mentions of tools worth knowing. Then I'll share examples of how you can use the features of the Setuptools library - those well known and those we use when pip-installing packages, but most of us can't name them. The point of this presentation is to explain how to use tools which are all there, just waiting to make developing, testing, and distributing our Python packages easier. Doesn't matter if you're a Python expert or a beginner - the knowledge covered by this presentation will be useful despite your level. 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 - Kajiki, the fast and validated template engine you were looking for

"Kajiki, the fast and validated template engine you were looking for [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] Being dissatisfied with some of the constraints and complex usage of Genshi, the TurboGears2 team started working on an alternative that could solve Genshi speed issues, complex inheritance system and be backward compatible with genshi templates. This is a talk about what lead to the creation of the Kajiki template engine and what's particular about it. The talk will cover: - Comparison on the major template engines available in python to showcase what's special in Kajiki (validated, xml based) what was special in Genshi (also lazy evaluated) - What's a validated template engine and why it's good to have one. - How Kajiki works, showcase kajiki syntax, it's performances and how to use it in any python project. - Why Kajiki is fast, code generation applied and how to write a code generation template engine like Kajiki and Jinja2 (showcase a simple 50 lines of code template engine that uses code generation). 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
Ki-Hwan Kim - GPU Acceleration of a Global Atmospheric Model using Python based Multi-platform

"GPU Acceleration of a Global Atmospheric Model using Python based Multi-platform [EuroPython 2017 - Talk - 2017-07-10 - PyCharm Room] [Rimini, Italy] A global atmospheric model play an important role in short-term weather forecasting and long-term climate prediction. The model requires enormous computing resources because the all atmospheric states must be calculated every time step (usually a tens of seconds to several minutes). However, since the most atmospheric models run only on CPU machines, they are not able to use the modern microprocessors with high performance and low power such as NVIDIA GPU and Intel MIC. It often costs a lot to convert codes from one machine to the other machine. Although it can be accelerated on GPU and MIC using OpenMP and OpenACC directives, it is not easy to achieve peak performance. I developed a new Python module named PyMIP (Python based Machine Independent Platform) to integrate C, Fortran, CUDA and OpenCL codes with a simple user interface. The main code includes configuration, flow control, IO and MPI parallel is written by Python. Only hotspots include huge number crunching code are written by compile language as C, Fortran, CUDA and OpenCL. The hotspot codes are compiled and imported using PyMIP in runtime. PyMIP enables that a user can switch machines with simple flag. I am developing a new global atmospheric model based on PyMIP to make it easy to utilize various modern microprocessors. In this presentation, I will introduce PyMIP and show the computational performance result in NVIDIA GPU of the dynamical core of the model developed based on PyMIP. 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
Will Foster - Skynet your Infrastructure with QUADS

"Skynet your Infrastructure with QUADS [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] The very small 2-person DevOps team within Red Hat Performance/Scale Engineering has developed a set of Open Source Python-based systems and network automation provisioning tools designed to end-to-end automate the provisioning of large-scale systems and network switches using tools like Foreman, Ansible, and other Open Source bits. QUADS – or “quick and dirty scheduler” allows a normally overburdened DevOps warrior to fully automate large swaths of systems and network devices based on a schedule, even set systems provisioning to fire off in the future so they can focus on important things like Netflix and popcorn or not reading your emails while your datacenter burns in an inferno of rapid, automated skynet provisioning. QUADS will also auto-generate up-to-date infrastructure documentation, track scheduling, systems assignments and more. In this talk we’ll show you how we’re using QUADS (backed by Foreman) to empower rapid, meaningful performance and scale testing of Red Hat products and technologies. While QUADS is a new project and under constant development, the design approach to handling large-scale systems provisioning as well as the current codebase is consumable for others interested in improving the efficiency and level of automation within their infrastructure. 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
Alexys Jacob - Leveraging consistent hashing in your python applications

"Leveraging consistent hashing in your python applications [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] While consistent hashing is largely known and adopted in the NoSQL database clusters to solve data distribution and data access reliability, it is less known and used by the typical developers. This talk will introduce you to consistent hashing and the problems it solves while going through a practical use case in a python application. We will start from its standalone design and scale it out to an optimized clustered version thanks to consistent hashing. 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
Lynn Root - Tracing, Fast and Slow: Digging into & improving your web service’s performance

"Tracing, Fast and Slow: Digging into & improving your web service’s performance [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] Do you maintain a Rube Goldberg like service? https://s-media-cache-ak0.pinimg.com/564x/92/27/a6/9227a66f6028bd19d418c4fb3a55b379.jpg Perhaps it’s highly distributed? Or you recently walked onto a team with an unfamiliar codebase? Have you noticed your service responds slower than molasses? This talk will walk you through how to pinpoint bottlenecks, approaches and tools to make improvements, and make you seem like the hero! All in a day’s work. The talk will describe various types of tracing a web service, including black & white box tracing, tracing distributed systems, as well as various tools and external services available to measure performance. I’ll also present a few different rabbit holes to dive into when trying to improve your service’s performance. 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
Nikola Đipanov - How Facebook uses Python to build (and operate) datacenters at scale

"How Facebook uses Python to build (and operate) datacenters at scale [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] With 4 datacenters on-line and more coming fast, building and operating datacenter buildings becomes a problem we need to solve at scale. At Facebook, Several teams of Production Engineers write the software that helps us do this efficiently, and we use Python... a lot. In this talk, I will go into some detail about only some of problems we try to solve to make sure our datacenters come online on time so that we can make sure you can connect with all your friends on Facebook, and keep them humming, as efficiently as possible. We'll go into some detail about the awesome Python infrastructure (some of it open source), that we use to build this software, and some of the engineering practices. This is a talk for you if you were wondering how to track each and every strand of fiber cabling within a datacenter, or make sure we find out that the cooling system isn't really doing it's thing before actual servers catch fire from serving you live videos. 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
Leonardo Giordani - Abstract Base Classes: a smart use of metaclasses

"Abstract Base Classes: a smart use of metaclasses [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] This talk shows what Python Abstract Base Classes (ABCs) are and how they can be used to categorise objects and implement a virtual inheritance tree. The goal of the talk is to introduce programmers to the concept of ABCs, and to show that metaclasses are not a terribly complex topic, but something that can be used by normal programmers. The talk is divided in three different “levels of difficulty”, each of one going deeper in the technical aspects of the subject. Level 1: Polymorphism - Behaviours and delegation - Collections The first level is meant to give a quick overview of the collections package and some useful code snippets. Even beginners can benefit of the information given here. To complete this level you only need to know what a try/except block is. Level 2: Registering - Abstract Base Classes - Categories The second level shows what real and virtual inheritance are, explains what is the meaning of registering and defines Abstract Base Classes. To complete this level you need to know what class inheritance is (i.e. what class MyList(list) means). Level 3: Build your ABCs - Metaclasses - ABSs as interfaces The third level shows how to create your own ABCs, why metaclasses are involved and why they are not a difficult concept. I will then quickly review a possible use of metaclasses as interfaces. To complete this level you need to know how to instantiate a class, and the difference between class and instance. 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
Kyle Knapp - Serverless Applications with Chalice

"Serverless Applications with Chalice [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] Serverless computing: it is the practice of building and running services and applications without having to worry about provisioning and managing servers. Serverless computing has been a popular topic the past couple years, and with respect to Python, there have been various different frameworks and tools released for developing and managing your Python serverless applications. This talk will focus on developing and managing your serverless applications with chalice (https://github.com/awslabs/chalice), a python serverless microframework for AWS. Discussion points for this talk will include, but not be limited to: • Overview of serverless applications • Best practices in writing a serverless application • Basic usage and core features of chalice • Writing complete, production-level applications using chalice • Managing and maintaining serverless applications using chalice tooling By the end of the talk, audience members should have a better understanding of serverless computing and how to use chalice to develop and maintain serverless applications. 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
Stephane Wirtel - Django: From a nightmare to a dream with Best Practices.

"Django: From a nightmare to a dream with Best Practices. [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] With the adventure in the source code of the site of EuroPython, we have detected that the code was difficult to maintain. With the members of the Web team, we have started to refactor the code with the best practices and good concept. Also, we will see some awesome libraries for the Django project. In brief, you have a legacy code and you want to improve it with best practices, then this talk is for you. You don't want to break it but you don't want to change it because you can break it at all times, we will show you how to improve an existing code with some tools and best practices, and your code can be deploy on Friday evening with no risk. From a nightmare to a dream. Keywords, TDD, Refactoring, Tests, BDD, Selenium, CI, and many more... 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
Anton Caceres - Using the right Async tool, present day

"Using the right Async tool, present day [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Recent releases like AsyncIO and Django Channels gave a new push towards building real-time web-apps fast and easy. However, as similar tools exist in Python since 2000th, how should we balance between modern and time-proven? This talk includes but is not focused just on AsyncIO. It gives an overview of Async libraries in Python, and helps with choosing a right tool for various web tasks. It describes caveats of using Twisted, Tornado and AsyncIO including theory and live code, and concludes with a basic overview of Django Channels. Talk plan Why do we need Async Web (5 min) Existing libraries and frameworks: Twisted, Tornado, AsyncIO (15 min) Sample task, sample code, conclusions (10 min) (optional) what's about Django Channels? Q & A (5 min) 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
Takuro Wada - OpenAPI development with Python

"OpenAPI development with Python [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] Goal After this session, audiences will get - Basic knowledge of OpenAPI (Swagger) - Ecosystem of OpenAPI(Swagger) and tools related to Python and knowledge to make use of them in their own projects Audience (1) This talk is for: - Developers who are creating or using API services such as web applications, mobile applications and all other kinds of applications (2) Audience will be expected to have (prerequisite): - Basic knowledge of development with API (REST and others) - Basic knowledge of Python Outline Introduction (3min) Agenda of this talk Myself introduction OpenAPI(Swagger) introduction and basics (8min) What is OpenAPI and what is the relation with Swagger? (5min) Comparison with other frameworks for APIs (3min) api blueprint, json schema and .. OpenAPI ecosystem and tools (8min) OpenAPI(Swagger) core tools (4min) Swagger editor, Swagger codegen and Swagger UI OpenAPI tools related to Python (4min) Some tools for python api development with OpenAPI Actual case study with OpenAPI and Python (8min) Introduce our projects with OpenAPI, Python and other program (like Angular, Typescript and so on) and explain how swagger is well working in our company Recap and Conclusion (2min) 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
Antonio Verardi - Write more decorators (and fewer classes)

"Write more decorators (and fewer classes) [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] In the wake of famous talk “Stop Writing Classes” by Jack Diederich (https://www.youtube.com/watch?v=o9pEzgHorH0), I’d like to present a pattern that can be used to design clean and pythonic interfaces for programmers based on replacing single-method classes with decorated functions. This pattern is already used by some famous frameworks and libraries, like Pyramid (https://trypyramid.com/), but I believe it isn’t that well-known to many (even experienced) Python developers and is not as widely used as it deserves. I’ll show how this pattern can be employed to improve a programming interface which is used by an internal log processing framework at Yelp. This will demonstrate how a more functional approach, leveraging the power of Python decorators, can lead to simpler, more beautiful and easier to understand code. However, this talk doesn’t suggest giving up classes altogether, but making use of them only when they are truly useful. In fact, the use-case I’m going to analyze will combine classes, functions, and decorators to make the best out of these tools. Given that the presentation is going to be very code-oriented, the talk is intended for an audience of developers who are already familiar with most Python constructs, including decorators, even though the concept will be briefly introduced at the beginning of the talk. But, if you are one of these people, I promise you that the code will speak for itself. 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
Patrick Arminio - Django and Graphql

"Django and Graphql [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] The web is constantly evolving, that is even more true with the frontend world. You don’t have anymore the traditional webapp, in fact you now have two apps, backend and frontend. But how do they communicate? Traditionally we have always created REST APIs, but now, there’s a new player. GraphQL! 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
Peter Hoffmann - Infrastructure as Python Code: Run your Services on Microsoft Azure

"Infrastructure as Python Code: Run your Services on Microsoft Azure [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] Using Infrastructure-as-Code principles with configuration through machine processable definition files in combination with the adoption of cloud computing provides faster feedback cycles in development/testing and less risk in deployment to production. The Microsoft Azure Cloud (https://azure.microsoft.com/) allows different ways to provision, deploy and run your python service: The Azure Resource Manger Templates (https://azure.microsoft.com/en-us/resources/templates/) allows you to provision your application using a declarative template. With parameters, variables and Azure template functions, the same template can be used to deploy your application in different stages (dev, test, production) and environments for different customers. We open sourced the tropo library (https://pypi.python.org/pypi/tropo/) to create Azure Resource Templates from python. Azure SDK for Python (http://azure-sdk-for-python.readthedocs.io) for a low level access to manage resources in the Azure Cloud. An Azure Ansible Module (https://docs.ansible.com/ansible/guide_azure.html) based on the Azure SDK to automate software provisioning, configuration management, and application deployment in a single environment. Each of the alternatives has different strengths and drawbacks. Presenting our learnings from migrating our infrastructure into the Azrue Cloud will help to avoid common pitfalls and show deployment patterns that will ease the live of devops. 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
Sebastian Buczyński - Why you don't need design patterns in Python?

"Why you don't need design patterns in Python? [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] Exactly 23 years have passed since release of one of the biggest IT classics - ""Design Patterns: Elements of Reusable Object-Oriented Software"". Contents of the book had considerable influence on dominant programming languages of those days. However, design patterns were not glorified by everyone. Voices of rational critic appeared, pointing out that design patterns are just ways to compensate for missing languages features by tons of clumsy code. If one implements design patterns in Python by the book, they will get code that looks awkward, at best. This talk is to present Python's features that either simplifies or eliminates need for implementing design patterns. Even if you don't know what design patterns are - don't worry. You still may see some new interesting Python's features and their usage. 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
Piotr Dyba - CyberSecurity.bootcamp()

"CyberSecurity.bootcamp() [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Cyber-security is a critical part of all distributed applications. By understanding and implementing proper security measures, you guard your own resources against malicious attackers as well as provide a secure environment for all relevant parties. The purpose of the talk is to show starting points on how to improve security in python applications by destroying a few servers during the presentation. It will provide the most important information and will cover: Threat modeling Common attack vectors on Python applications. Why python is not vulnerable to some kinds of attacks. Why is eval so dangerous? Improving server deployment and security management. Automated security testing. Pentesting. Who is a CISO and why is cyber-security awareness in the company so important nowadays. Basic knowledge of networking, python and REST is advised. 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
Céline Boudier - Inspiring all children, a journey: diversity and computing education

"Inspiring all children, a journey: diversity and computing education [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] Do you remember when you wrote your first line of code? Do you remember who inspired you to become who you are when you were a child? But also, what the challenges might have been? I remember when I was a little girl with a strong interest in a lot of things, including science, and what and who helped me pursue an education and a career in science and technology. However, my journey in the industry from France to the UK, from software engineer student to team lead, from language processing to robots to online coding games, made me understand there is still a lot of work to be done in terms of diversity. I will talk about my own experiences, what shaped my dreams and inspirations, the reality check, and the project I’m now working on Code For Life. Code For Life is an initiative started at Ocado Technology in 2014, in response to the UK putting computing in the primary school curriculum. It comprises a small full time team and also a large group of dedicated volunteers who focus on creating free, open source games, mostly web games developed with Django, to teach all children how to program. We are all dedicated to inspire all children and give them the tools and opportunities they deserve. 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
Alberto Berti - Get over the boundaries between client and server in web app development

"Get over the boundaries between client and server in web app development [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] The practice in the development of advanced web applications is to break it into two main areas where the effort on the server, with the typical WSGI environments, focuses on data access configuration whereas the application logic is delegated mostly to the client through the use of JavaScript frameworks. The reason for this separation into two roles lies in the need to use JavaScript on the browser and the fact that the communication channel (HTTP) and the way in which the application state is handled on the server side is still that thought to serve full web pages. In this talk I'll show a framework and an application where the line between the two worlds is blurred and where it is possible to think of the application in terms of unity, with the two components that cooperate equally and communicate without thinking in terms of URLs or HTTP verbs . This is made possible by the asynchronous/reactive management of the processing from the database driver to the user interaction, the use of websocket for communication and the use of Python (optional) for the development of the client part. Some technologies used are: PostgreSQL, the ""asyncpg"" driver, the ""aiohttp"" web server, Crossbar (http://crossbar.io) for the websocket comms, pkg ""metapensiero.sphinx.patchdb"" for schema upgrades, the package ""metapensiero.reactive"" and ""metapensiero.signal"" for the management of reactive event streams,the package ""Javascripthon"" for Py3 to ES6 JS transpiling. 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
Michal Wysokinski - Running Python code in parallel and asynchronously

"Running Python code in parallel and asynchronously [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] My outline will be: 1) What does it mean to run code in parallel in Python? How does it differ from concurrency? Can they be applied at the some time? 2) GIL and why it complicates parallelism in Python (CPython), but only to some extent. 3) Difference between a thread and a process from the OS point of view. 4) When parallelism in Python is useful and when to avoid it. 5) Description of how to achieve parallel execution in CPython and how to do it properly. 6) Possible traps when using parallel programming in Python. 7) What happens if the code runs both in parallel and asynchronously? 8) Is it really beneficial? 9) How such execution can be achieved? As the outline shows I will focus on the parallel part as it is an important topic in our current time of multicore processors and multiprocessor systems. The topic has been discussed a lot of times but mainly from the scientific point of view, where it's been used for speeding up calulcations time. I will not go into these use cases (e.g. using MPI) but rather discuss it from web development point of view (e.g. multi worker applications). 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
Jan Willem Tulp - How to create inspiring data

"How to create inspiring data [EuroPython 2017 - Keynote - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] Many times data visualizations need to communicate insights clearly and effectively. But sometimes the goals of a visualization go beyond that: they need to inspire and engage people. But how do you draw them in? What is the process behind creating a creative data visualization? During this talk, I will show some of my projects, and explain a little about the process behind it. Peter Hoffmann - Infrastructure as Python Code: Run your Services on Microsoft Azure "Infrastructure as Python Code: Run your Services on Microsoft Azure [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] Using Infrastructure-as-Code principles with configuration through machine processable definition files in combination with the adoption of cloud computing provides faster feedback cycles in development/testing and less risk in deployment to production. The Microsoft Azure Cloud (https://azure.microsoft.com/) allows different ways to provision, deploy and run your python service: The Azure Resource Manger Templates (https://azure.microsoft.com/en-us/resources/templates/) allows you to provision your application using a declarative template. With parameters, variables and Azure template functions, the same template can be used to deploy your application in different stages (dev, test, production) and environments for different customers. We open sourced the tropo library (https://pypi.python.org/pypi/tropo/) to create Azure Resource Templates from python. Azure SDK for Python (http://azure-sdk-for-python.readthedocs.io) for a low level access to manage resources in the Azure Cloud. An Azure Ansible Module (https://docs.ansible.com/ansible/guide_azure.html) based on the Azure SDK to automate software provisioning, configuration management, and application deployment in a single environment. Each of the alternatives has different strengths and drawbacks. Presenting our learnings from migrating our infrastructure into the Azrue Cloud will help to avoid common pitfalls and show deployment patterns that will ease the live of devops. 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
Anand Chitipothu - Writing Beautiful Code

"Writing Beautiful Code [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] Writing code is hard. Writing beautiful code is even more so. How to write code that is pleasant to read, easy to understand and joy to maintain? Simple things like using right variable names, avoiding to much nesting, using white space and comments etc. makes a lot difference to readability of the code. Even though these things look very simple, even experienced programmers find it hard to put them in practice. In this talk, I’ll try summarise the age old wisdom of writing beautiful code and explain those ideas using practical examples written in Python. 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
Giulio Calacoci - PostgreSQL and Python, a match made in heaven

"PostgreSQL and Python, a match made in heaven [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] his talk is about a love story. The perfect love between PostgreSQL and Python. PostgreSQL is the default database choice for many Python developers, because it is robust, stable and open source. In 2ndQuadrant, we breathe PostgreSQL and we love python too, using it as much as possible for internal and external open source projects. We want to share our love for python and PostgreSQL and how they work together. So let us tell you a real love story! 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
Amit Nabarro - Asynchronous I/O and the real-time web

"Asynchronous I/O and the real-time web [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Building web applications is one of the most common uses of Python. With a plethora of different web frameworks aiming at varying audiences, it has become a rather simple and well-documented process to develop web applications and web services. So popular it has become that the WSGI specification is the industry standard protocol for developing web applications with Python. But the WSGI standard is lacking with two major limitations: It supports only the ‘traditional’ synchronous http request-response cycle thus creating a ‘glass ceiling’ with the amount of requests a single server can handle – often described as the C10K problem It does not provide an easy and efficient way of developing two-way communication between servers and clients. Often referred to as the real-time web this capability has become increasingly popular with modern web applications. Over the past decade multiple networking libraries have been developed to address these limitations. In this talk we will explore: What is an asynchronous web server and how it differs from other, WSGI-based web servers. What is concurrency and how it can help us achieve supreme performance and scalability in our web applications. We will survey noteworthy libraries which will help achieve true concurrency. How to develop real-time communication, using web sockets, with our Javascript application Concerns, limitations and pitfalls when developing asynchronous web applications. 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
Jonas Obrist - Why you might want to go async

"Why you might want to go async [EuroPython 2017 - Talk - 2017-07-11 - Arengo] [Rimini, Italy] Asynchronous programming is becoming a hot topic in the Python community, especially with the rise of popularity of Python 3 and the new asyncio library in its standard library. However, it can still be a confusing and mysterious concept. In this talk, I will explain what async programming is, how it works and how it could benefit you. My goal of this talk is that at the end of it, you have an idea about what we mean when we say asynchronous programming in Python and you know how and when to use it. In the first part of the talk, I will dive into what asynchronous programming is and what it isn't. Explaining the difference between IO bound code and CPU bound code. Then I will explain how this actually works in Python, explaining the idea of an event loop, coroutines and cooperative multitasking. Finally, I will talk about why this may be beneficial, what kind of applications can really benefit from this and provide some examples from my experience. 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
Paweł Lewtak - Improve your developer's toolset

"Improve your developer's toolset [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] For Python development, we mainly focus on IDE, browser and sometimes a command line. I want to focus on command line tools which seem to be a bit forgotten these days. Let me show a few tools I'm using on daily basis and how they helped me become more productive. I'll prove it's possible to start up a new environment from scratch that feels like $HOME. Finally, I want to convince you how important it is to constantly challenge yourself and your tools, how useful is a custom toolbox tailored to you. 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
Mariano Anaya - Discovering Descriptors

"Discovering Descriptors [EuroPython 2017 - Talk - 2017-07-11 - PythonAnywhere Room] [Rimini, Italy] Python is full of amazing (yet often overlooked) features, that can help us write better, cleaner, and more maintainable code. One of them is the descriptors interface. By means of descriptors, we can run code when accessing or setting properties of another object. This can have a lot of applications, and keeping descriptors in mind might come in handy when facing a hard problem. The goal of the talk is to explore descriptors, and how they can be written, as well as analysing some interesting examples in well-known libraries or projects in order to identify scenarios where descriptors are the Pythonic way to go. 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
Vita Smid - Feeding a real-time user interface

"Feeding a real-time user interface [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] Imagine you have some streaming computations running on a server. Client programs subscribe to real-time updates, so that they may visualise the computations for end users. How do you share this constantly changing server state with all connected clients? Sending an entire snapshot after each change is very inefficient, so you must implement some sort of incremental updates – diffs. But how do you generate these diffs on the server? And how do you represent them so the clients know how to apply them to update their own state? We have been working on these problems for a long time while building a stock trading platform in Python. I'd like to show you a couple of open source libraries that we developed for this purpose, and share our experience with tracking state and propagating it to user interfaces running in other processes. 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
Juan Manuel Santos - You need more security in your application packaging

"You need more security in your application packaging [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 2] [Rimini, Italy] There are as many different ways to package an application as there are programming or scripting languages. No one tool or library is in itself better than another; however when security comes into the picture, there is definitely a pattern between ease of installation and how secure the delivered application is. As more work is put into packaging the application, more measures can be taken in order to ensure its integrity and prevent security issues. This talk will cover: - The roles involved in the lifecycle of an application, from the start of the development process until it reaches the end user and it is actually used. - The inherent problems in this subject, regarding installation and security, as well as how they are related. - The different ways of packaging an application in order to deliver it to an end user, focused on a Python perspective. After the talk, attendees will have a better grasp on which is the best way for them to package and deliver their application according to their environment and target audience. They will also learn about the upgrade path to switch from one delivery method to another, should they need or want to. For this talk, it is desired that attendees have some general systems knowledge. Even though the talk will be focused on Python applications, some knowledge of information security is desired. 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
Mike Müller - Programming in Parallel with Threads

"Programming in Parallel with Threads [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] Threads are typically not the way to take advantage of multiple CPUs for CPU-bound problems. The Global Interpreter Lock (GIL) allows the use of only one CPU at the time when using threads. However, the GIL is released for IO task The use case is a scientific simulation model that has to run 18,000 different simulations. The input data for these simulations need to be extracted from a common database, re-assembled and translated into several input files per simulation. After each simulation that is run with an external, standalone executable, the output data needs to be gathered and rearranged in a output database. The implementation scaled up to 50 threads. On a eight-core machine more than 90 % usage of all CPUs could be achieved, bringing the total run time down to about two hours from about 15 hours. Depending on the use case, threading can help to speedup a program and even take advantage of multiple CPUs. This talk presents such a use case. The approach can be translated to problems from other domains if the sub-tasks can be turned into IO tasks. Asynchronous programming could have been used here. However using a thread per task and using class that represents a task, is likely conceptually simpler for programmers not used to asynchronous programming. 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
Christoph Heer - How SAP is using Python to test its database SAP HANA

"How SAP is using Python to test its database SAP HANA [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] SAP operates one of the largest test infrastructure to test its in-memory database SAP HANA. The infrastructure provides different services like continues integration, code coverage and code linting for a huge C++ project with Python test coding. These services are essential for the development teams and quality specialists. Without these services developing and shipping of new SAP HANA version wouldn’t be possible. In 2010, we started with a single Jenkins master with ten nodes. But to keep our testing time acceptable for the growing number of developers we had to scale up and that led to multiple different scaling challenges. The current test infrastructure is powered by more than thousand physical servers. Scaling of the infrastructure was only possible with custom optimizations like improved scheduling, expressive test configuration and robust tooling implemented in our favorite language Python. With the flexibility and power of Python it’s possible for developers to implement complex test scenarios to verify features and mitigate regressions. On infrastructure side, it has been easier to extend, optimize and adapt the infrastructure for new requirements like different CPU architectures and newer Operating systems versions. This talk provides insights and stories how we scaled and improved our test infrastructure and how new technologies like Linux Containers can improve automated testing and software quality assurance. 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
Martin Christen, Roberto De Ioris, Tomislav Uzelac - Making Games with Python: Mission Impossible?

"Making Games with Python: Mission Impossible? [EuroPython 2017 - Panel - 2017-07-11 - Arengo] [Rimini, Italy] A discussion about making full-featured, commercial games in python, both 2D and 3D. Looking at state of the art approaches to using python in gaming, we will compare the alternatives: pygame (2D API), OpenGL (via pygame/pySDL2), Unreal Engine 4 and the Godot Engine (with further comparison to Unity 3D game engine). We will also look at other benefits of using python in the gaming context, such as integration with 3D modelling software, scripting the asset pipeline and GIS data integration. Finally, can (and should) python move beyond being the language of plugins and scripts, and become the main language for creating game development projects? 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
Sebastian Neubauer - There should be one obvious way to bring python into production

"There should be one obvious way to bring python into production [EuroPython 2017 - Talk - 2017-07-11 - PyCharm Room] [Rimini, Italy] The DevOps methodology is reality. That said, many developers have to deal with the process of bringing python applications into production. One aphorism of the Zen of Python states: ""There should be one-- and preferably only one --obvious way to do it."" While for the language itself and code being written with it, this advice is often strictly followed for good reasons. For the process of bringing python into production it is not. In the first part of this talk I will give an overview of the different steps in the delivery pipeline, from packaging to deployment and the various possible implementations for each of those steps that emerged over the last years. We will discuss docker, pex, wheels, debs, and tars. We will learn why fixed environments are crucial and why pip is not yet what it should be. We learn about the different runtime environments, from bare metal servers over ephemeral container clusters to “serverless” and what they impose on the deployment process and scratch on the surface of configuration management using tools like Ansible and orchestration frameworks like Kubernetes. We will also explore the world beyond python by looking into other languages ecosystems and learn how they addressed and solved this issue. After we understood the requirements and realized that there is not ""one obvious way to do it"", this talk is a call to action: Let us define and build the “one obvious way” of how we want to bring python into production! 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
Hynek Schlawack - Solid Snakes

"Solid Snakes [EuroPython 2017 - Talk - 2017-07-11 - Anfiteatro 1] [Rimini, Italy] No matter whether you run a web app, search for gravitational waves, or maintain a backup script: being responsible for a piece of software or infrastructure means that you either get a pager right away, or that you get angry calls from people affected by outages. Being paged at 4am in everyday life is bad enough. Having to fix problems from hotel rooms while your travel buddies go for brunch is even worse. And while incidents can’t be prevented completely, there are ways to make your systems more reliable and minimize the need for (your!) manual intervention. This talk will help you to get calm nights and relaxing vacations by teaching you some of them. 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
Lightning Talks - 2017-07-12

"Lightning Talks [EuroPython 2017 - - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] 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
Lee Sheng - Teeing up Python: Code Golf

"Teeing up Python: Code Golf [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] Code golfing is an interesting heuristic dedicated to minimizing the overall length of code to produce the same functionality. The result doesn’t have to be incomprehensible, and in fact, we can make the code more Pythonic in the process! Concise code helps future readers of the code understand the intent without getting distracted by implementation errata. We’ll cover numerous features of Python which allow complex ideas to be expressed concisely without sacrificing readability. Broad subtopics: Why even bother? Default! The two sweetest words in the english language! The Joy of Tuples Comprehending Comprehensions Who’s afraid of Functional Programming? Ideas in Context Managers Slides: https://goo.gl/hGk7nX 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
Raphael Pierzina - Hi, my name is README! - A Look at Why Docs are So Important

"Hi, my name is README! - A Look at Why Docs are So Important [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] When starting a new project, as developers we usually get right into hacking things, like tinkering with libs that we would like to learn or solving a particular problem as quickly a possible. Occasionally we also decide to publish the resulting package to PyPI, so that others can use our nifty code, submit a pull request and maybe even form a community around the project. If you're lucky someone might find it on the front-page of PyPI or the GitHub search or maybe even Hacker News or Reddit. What happens next is on you really. But what does that mean? Before jumping right to the command line and installing your package, those who are interested usually try to find out what problems the project is solving and how it can help them with their own. That's what your README file is for - it's most likely the first thing potential users read, that you control. A good README briefly and concisely explains what your software does, how it can be installed and what API it exposes. You also want to provide information on the requirements, the license it uses and how the project is managed. Who are you? How to get in touch to report problems and give feedback? Where can I find the Code of Conduct for this project? This talk is for everyone who is interested in working on open source projects and wants to know how documentation can help newcomers and more experienced users use your code and to encourage them to engage in the community. 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
Vinicius Pacheco - Green threads in Python

"Green threads in Python [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] This talk is for general public with problems to scale. The good background for this talk is people with minimal knowledge about threads. After this talk I expect that the audience can be enable to understand multiprocessing, when use and which tools and methods are appropriate for each case. Understanding threads It's the first moment on the talk. Here I'll speak about the thread theory and what happen when we use threads on the OS Threads and multiprocess API I'll give simple examples about what python give us to use threads and multiprocessing perhaps with two APIs https://docs.python.org/3/library/threading.html https://docs.python.org/3.5/library/multiprocessing.html Understanding Green threads Here I'll speak about green threads theory and what happen when we use green threads on our OS Green thread Patterns and tools Here I'll show few examples with keep alive patterns, discuss about a few tools and show gevent and asyncio examples Parallelism x asynchronism I'll show the diference between parallelism and asynchronism discussing about the two theories Why, when and how It's is the last talk moment and I'll explain the how complex is work with multiprocess showing cases like queues consume and APIs consume 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
Harald Armin Massa - PostgreSQL - The Database for Industry 4.0 and IOT

"PostgreSQL - The Database for Industry 4.0 and IOT [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] Industry 4.0 - the current trend to make more use of data technology and analysis in manufactring. IOT - The Internet of Things, where many ""things"" currently just loosing their information will transfer and store them within central systems. There are aspects of those trends most do agree on: There will be orders of magnitude more data to store and analyze. More agents will need to connect and interact with databases. This talk will explore what makes PostgreSQL an excellent candidate to be the database for managing all that data. Strengths in development, culture and community, extensibility and robustnest will be presented. Selected features of current Version 9.6 and the soon-to-be-released PostgreSQL Version 10 will be discussed for their value in those trends. There will be an explanation of their technical realisation, and special pointers how to use those features from PostgreSQL. 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
David Liu - Infrastructure design patterns with Python, Buildbot, and Linux Containers

"Infrastructure design patterns with Python, Buildbot, and Linux Containers [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] In today’s world of fast-paced development, infrastructure can get left behind quickly, leading to a potential increase in technical debt. Buildbot is normally known to be a continuous integration (CI) framework built in Python, but can be refashioned to solve infrastructure design patterns that arise in enterprise or production and deployment situations. Using Python and native Buildbot components paired with Linux Containers, patterns such as license management, resource allocation, load balancing, and enterprise application deployment can be architected quickly with room for expansion as one’s needs grow. Learn how to move past the CI mindset and construct infrastructure needs with Buildbot and popular Linux Containers such as Docker and ClearContainers. Attendees will learn the best known methods of configuring Buildbot in non-CI implementations, and how to utilize the framework components for future 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
Alice Harpole - Sustainable Scientific Software Development

"Sustainable Scientific Software Development [EuroPython 2017 - Talk - 2017-07-12 - PyCharm Room] [Rimini, Italy] In the experimental Sciences, new theories are developed by applying the Scientific method to produce results which are accurate, reproducible and reliable. This involves testing the experimental setup to show that it is working as designed and thoroughly documenting the progress of the experiment. Results will not be trusted unless the experiment has been carried out to a suitable standard. In computational Science, we should aim to apply the same principles. Results should only be trusted if the code that has produced it has undergone rigorous testing which demonstrates that it is working as intended, and any limitations of the code (e.g. numerical errors) are understood and quantified. The code should be well documented so that others can understand how it works and run it themselves to replicate results. Unfortunately, this can be quite challenging. By their very nature, scientific codes are built to investigate systems where the behaviour is to some extent unknown, so testing them can be quite difficult. They can be very complex, built over a number of years (or even decades!) with contributions from many people. However, even for the most complicated of codes there are a number of different tools we can use to build robust, reliable code. In this talk, I shall look at techniques and tools you can use to build more sustainable scientific code, including testing, continuous integration and documentation. 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
Andreas Heider, Robert Wall - Taking the Hipster out of Streaming

"Taking the Hipster out of Streaming [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Winton ingests data continually from the world's financial markets. We track millions of individual timeseries, with divergent formats, from disparate time zones, and whose frequencies vary from months to milliseconds. We go beyond simply reading and storing it - we stitch distinct and vast data sets together and subject them to intricate calculations in real-time. This talk will focus on the way we use Python to achieve these ends, and how we are creating tools to further commoditise streaming as a service. 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
Alexander Lourenco - Realtime Distributed Computing At Scale: Storm And Streamparse

"Realtime Distributed Computing At Scale (in pure Python!): Storm And Streamparse [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Realtime distributed computing is tough, especially at scale: managing a large data pipeline is tough, and it’s even tougher to keep latency low and availability high when processing tens of thousands of items per second. Many people turn in despair to Java or Scala when it comes time to scale up, but we can do it in Python: Apache Storm is a distributed realtime computation system that can let you scale up- and no need to reach for a new language! This talk will walk the audience through the basics of Apache Storm and how it’s an elegant, useful solution to realtime distributed computing, as well as how streamparse can let you write your storm components in Python by writing some code and a basic storm topology in Python. We’ll also look at how Parsely uses Storm in production to handle billions of realtime events a month. If we have time, we’ll go a bit into how Storm has several advantages over other common Python computing data streaming solutions, like Spark’s microbatching. Goals: At the end of the talk, ideally you should be able to understand: What Apache Storm is, how it works generally, and what scenarios it’s useful for How streamparse can be used to write your Storm topologies How Storm + streamparse is used in an actual high-availability, low-latency production environment 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
Giuseppe Di Bernardo - Big Data Analytics at the MPCDF: GPU Crystallography with Python

"Big Data Analytics at the MPCDF: GPU Crystallography with Python [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] In close collaboration with scientists from MPG, the Max Planck Computing and Data Facility is engaged in the development and optimization of algorithms and applications for high performance computing, as well as in the design and implementation of solutions for data-intensive projects. Python is now used at MPCDF in the emerging area of “atom probe crystallography” (APT): a Fourier spectral analysis in 3D reciprocal space can be simulated in order to reveal both composition and crystallographic structure at the atomic scale of billions APT experimental data sets. The Python data ecosystem has proved to be well suited to this, as it has grown beyond the confines of single machines to embrace scalability. This talk aims to describe our approach to scaling across multiple GPUs, and the role of our visualization methods too. Our data workflow analysis relies on the GPU-accelerated Python software package called PyNX, an open source Python library which provides fast parallel computation scattering. The code is well suited for GPU computing, using both the pyCUDA and pyOpenCL libraries. Exploratory data analysis and performance tests are initially carried on through Jupyter notebooks and Python packages e.g., pandas, matplotlib, plotly. In production stage, interactive visualization is realized by using standard scientific tool, e.g. Paraview, an open-source 3D visualization program which e.g. requires Python modules to generate visualization components within VTK files. 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
Pietro Battiston - How to use pandas the wrong way

"How to use pandas the wrong way [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] UPDATE: slides and materials can be found at http://pietrobattiston.it/python:pycon#europython_rimini_july_2017 The pandas library represents a very efficient and convenient tool for data manipulation, but sometimes hides unexpected pitfalls which can arise in various and sometimes unintelligible ways. By briefly referring to some aspects of the implementation, I will review specific situations in which a change of approach can make code based on pandas more robust, or more performant. Some examples: inefficient indexing multiple dtypes and efficiency implicit type casting HDF5 storage overhead GroupBy.apply()... when you don't actually need it 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
Francesco Nazzaro - Facing the challenge of climate change with xarray and Dask

"Facing the challenge of climate change with xarray and Dask [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] In the last years climate change has become one of the most important topic. For any period longer than a few days science is not able to provide comparable forecasts, but still a lot of useful information about future climate conditions can be gained on time scale of a few months to even several years. Climate forecast and climate projections data are quite complex to analyse and represent. The Python science ecosystem proves extremely effective as a platform to retrieve, analyse, process and present this type of data. The backbone of the platform is the n-dimensional array library xarray that provides the perfect mix between pandas data structures and dask performance and parallelization. Reliable climate forecasts and climate projections are now available from the Copernicus Climate Change Service, operated by ECMWF, that will become the central hub for European effort in study and mitigate climate change impacts. The service also provides access to an open cloud platform, the CDS Toolbox, that is based on the Python 3 xarray/dask/pandas stack. In this talk I will present how to retrieve, analyse, process and display climate data in a generic use case with xarray and with the Copernicus CDS Toolbox. slides: http://slides.com/francesconazzaro/europython-2017 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
Martin Christen - Rendering complex 3D-Geodata using pyRT

"Rendering complex 3D-Geodata using pyRT [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] PyRT (pronounced ""pirate"") is a rather new open source project creating a ray tracer in pure Python and some optional CPU/GPU acceleration using bindings. Ray tracing is a technique for generating an image by tracing the path of light. PyRT was created to render large 3D City models. In this talk, the possibilities and experiences of ray tracing in Python using pyRT are shown. pyRT also runs in the Jupyter Notebook. Rendering complex 3D-Geodata, such as 3D-City models with an extremely high polygon count and a vast amount of textures at interactive framerates is still a very challenging task, especially on mobile devices. This talk presents an approach for processing, caching and serving massive geospatial data in a cloud-based environment for large scale, out-of-core, highly scalable 3D scene rendering in a web-based solution. PyRT is used for rendering large amounts of geospatial data. The approach for processing, rendering and caching 3D-City Models is shown. Screenshots: https://github.com/martinchristen/pyRT/raw/master/jupyter/img/sponza.png https://github.com/martinchristen/pyRT/blob/master/jupyter/img/Berlin_AO_small.PNG?raw=true 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
Alexander Hendorf - Neat Analytics with Pandas Indexes

"Neat Analytics with Pandas Indexes [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Pandas is the Swiss-Multipurpose Knife for Data Analysis in Python. In this talk we will look deeper into how to gain productivity utilising Pandas powerful indexing and make advanced analytics a piece of cake. We will cover: Pandas indexing recap Index Types Time-Series Index and resampling Pandas Multi-Indexing 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
Marc-Andre Lemburg - Automatic Conference Scheduling with PuLP

"Automatic Conference Scheduling with PuLP [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Linear programming is often regarded as very theoretical or even not known at all as a well-developed method of solving real world problems. The talk gives a short introduction to LP problems and presents an interesting use case for the Python linear programming problem solver PuLP: that of creating a conference schedule. 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
Romain Dorgueil - Simple ETL in python 3.5+ with Bonobo

"Simple ETL in python 3.5+ with Bonobo [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Simple is better than complex, right? That’s true for data pipelines too. For more than 5 years, I hacked together extract-transform-load (ETL) processes in various different positions (ETL is just a fancy term for «bunch of things that take data somewhere and put it elsewhere, eventually transformed»). I did it as a founder, as a consultant, as a technical co-founder, for some side projects, and now in a big corp (to be continued…). In each case, I felt frustrated with the tools available, and in some serious cases, I had to hack things myself to get the job done. https://www.bonobo-project.org/ Bonobo is the repackaging of my past experiences for python 3.5+, and grasping the basics should not take more than the length of the presentation. Topics outline (subject to small changes) : • INTRO : State of the art / different tools for different needs. • Where does it come from. • Writing a data processor. • Running and monitoring data jobs. • OUTRO : The road ahead. • Q&A Bonobo is the glue you need to tie together regular functions in a transformation graph (think unix pipes). Execution strategies are abstracted so you can focus on the real operations. As a result, you can engineer simple and testable systems, using the same good computer development practices as you use in -insert your favorite field here-. Spoiler : there is no «big data» in this talk. 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
Anjana Vakil - Mary had a little lambda

"Mary had a little lambda [EuroPython 2017 - Talk - 2017-07-12 - Arengo] [Rimini, Italy] Mary had a little lambda, a function pure as snow. And for every program that Mary wrote, the lambda was all she needed to know. Python’s lambda, a tiny anonymous function, can be useful in a pinch when you’re feeling too lazy to type that extra d-e-f. But did you know that behind this little lambda is actually one of the most powerful & elegant abstractions in the history of computer science? The lambda calculus, dating back to the work of lambda shepherd Alonzo Church in the 1930's, lets us represent our programs - all their logic and data - as pure, anonymous functions, using nothing but (a whole lot of) lambda. Let’s take it for a spin and see what we can create: booleans and conditionals, integers, arithmetical operators, data structures… you name it. With some determination, and a little squinting, we might even see lambda do the impossible: reconcile object-oriented and functional programming. You heard it right: lambda can do it all! Join me as we explore its astounding computational power, and walk away with a deeper respect and admiration for the almighty little lambda. 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
Max Tepkeev - How to make money with your Python Open-Source Project

"How to make money with your Python Open-Source Project [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] Developers create new open-source projects every day. As the project becomes popular they have to invest more and more time into it's development and of course at some point a question arises: ""How can I make some money with my project ?"" In this talk we will try to answer this question. We will talk about different models of making money, their pros and cons. We will concentrate on Python Open-Source projects mostly and try to answer the following questions: What to sell? Where to sell? How to distribute? How to license? After this talk you will have a clear understanding of how you can make money with your project. What your next steps should be and how you can get the actual profit while still continuing making your customers happy. 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
Paolo Melchiorre - Full-Text Search in Django with PostgreSQL

"Full-Text Search in Django with PostgreSQL [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] After some experiences in the implementation of full-text search functionality with different system, we have decided to use PostgreSQL to implement full-text search functionality in our next project, a website to search for shows, venues, bands and festivals. In the past, I have worked in two different projects, a mobile platform to sell and buy used items and a sport videos sharing platform, where I used two of the most currently famous full-text search software (Elasticsearch or Solr) but I had some synchronization and management problems. After that, in my company, we searched for new Django support of full-text search PostgreSQL implementation and we decided to use it to avoid any problems that I had in the past. I’m going to start speaking about the full-text search in a general context and I want to show the problems I encountered implementing it in the past. Afterwards, I’m going to talk about the PostgreSQL functionality to implement the full-text search functionality and also present the django.contrib.potgres.search module, with step-by-step demonstrations of its functions with real world data. Finally, I’m going to show the way we use and test this functionality in our project and which functionality lacks us to have a complete implementation of full-text search in our project. At the end, I want to present my conclusions about our solution and I want to explore some new features that will be present in the next versions of Django and PostgreSQL. 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
Kristi Progri, Jona Azizaj - How to build up a Python community and empower women

"How to build up a Python community and empower women [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] In 2012 not a lot of people were interested in Python in the relatively small city of Tirana, the capital of Albania. Even fewer girls were interested in Python. During (Jona Azizaj and me) our talk we will share the story of how we, a small but dedicated group of people, jump started the community in a small country like Albania and what other small cities and countries should avoid during their first steps in developing a Python community in similar conditions. Most important we will share tips and tricks on how to keep the Python spirit alive for a long time after the first enthusiastic steps, with the goal that our shared experience will help other communities to make the first steps or grow even further. Also nowadays we are witnessing that the number of girls involved in technical fields, especially development, is really low and we are going to present what as the influence on low participation of girls and the steps we should take to fix it. 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
Mihai Iachimovschi - Teach your (micro)services speak Protocol Buffers with gRPC.

"Teach your (micro)services speak Protocol Buffers with gRPC. [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] When it comes to microservices, there're a lot of things worth keeping in mind. Designing such fine-grained, loosely-coupled services requires paying lots of attention to various patterns and approaches to make them future-proof. A very important thing to consider, is the way those services will communicate with each-other in production. Usually the communication is done over the network using a technology-agnostic protocol. At the next level the service should provide an API for its friend services. Then, the data should be serialized without altering its meaning and transferred to the picked endpoint. Nowadays, exposing a REST API that operates with JSON over plain HTTP is a usual way to lay the grounds of communication for the services. It is easy to accomplish, but it has some drawbacks. First of all, JSON is a human readable format, and it’s not as other serialization approaches. Also, with JSON it’s not possible to natively enforce the schema, and evolving the API may be painful. This talk’s purpose is to describe in deep detail the benefits of protocol buffers, that offer us for free an easy way to define the API messages in the proto format, and then reuse them inside different services, without even being locked to use the same programming language for them. Moreover, with gRPC we can define the API’s endpoints easily in the same proto format. All these offer us a robust schema enforcement, compact binary serialization, and easy backward compatibility. 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
A. Skrobov - How CPython parser works, and how to make it work better

"How CPython parser works, and how to make it work better [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] The part of CPython core that parses the Python source code is some very old and convoluted code: the time has proven its reliability, but few CPython hackers understand (or care) how it works, or even what exactly it does. There is, however, a good reason to care: for short-running scripts, the performance of CPython may easily be dominated by that of parsing the source code. The talk will describe the two parsers that are involved, it will explain how these two parsers build two different kinds of syntax trees, and then show how the structure of one of the trees can be amended to reduce its memory footprint threefold, with only minor changes necessary in its consumers. It will also suggest other, more invasive improvements, which can yield even better savings. The talk will assume fluency in C and a basic acquaintance with CPython core internals, and will give the attendees an introduction into hacking the parser, guiding their way through to the very tangible end result of reducing Python overall memory consumption by up to 30%, measured at standard micro-benchmarks. 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
Ville Säävuori - Pythonic JavaScript for Web Developers

"Pythonic JavaScript for Web Developers [EuroPython 2017 - Talk - 2017-07-12 - PythonAnywhere Room] [Rimini, Italy] Having a basic knowledge of JavaScript is obligatory for every Web developer in todays world. Most of us are familiar with the pain of having to write some simple hide/show logic and ajax queries with jQuery on a page that is mostly rendered server-side. Nowadays, however, there are lots of great JavaScript frameworks and build tools that not only make these things very easy to do The Right Way, but also make the whole process quite painless. I spent past year in a small startup writing only front-end code and evaluating different tools and best practises. Bringing these tools to old Django projects has been eye-opening. There are practically no documentation or code examples on how to integrate these things to Python backend projects, so it’s very hard to get started from scratch. In this talk we’ll go trough some of the tools, examples on how to get started, and also some coding guidelines on how to make JavaScript look and feel more sane and Pythonic. The current state of JavaScript frameworks is notoriously bad; there are more of them than blog engines written with Django. We’ll focus on Vue.js (https://vuejs.org) which is a lightweight, very easy to get started and yet powerful tool. We’ll also take a look at new end-to-end browser test tools and modern build tools that enable us to take full advantage of the huge NPM package universe (Cheeseshop for JS) and write modern ES2015/ES2016 JavaScript that has more powerful and cleaner syntax. 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
Antonio Cuni - The joy of PyPy JIT: abstractions for free

"The joy of PyPy JIT: abstractions for free [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] The joy of PyPy JIT: abstractions for free The PyPy JIT is a powerful piece of technology which makes Python program running faster: in this talk, we will see how it helps us to write our programs better without sacrificing performance. One of the key to write complex software systems of good quality is to make a good usage of abstractions, to clearly separate the various layers and components. However, often each layer of abstraction adds some cost in terms of runtime performance, so we need to struggle finding the best trade-off between maintainability and speed. Because of the way it works, the PyPy JIT naturally removes the cost of most abstractions: we will look at real-life examples of how this is possible, showing what the JIT can and can't do. We will also show how this compares to other popular systems of optimizing Python code, such as Cython. 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
Dmitry Trofimov - PyCharm tips and tricks

"PyCharm tips and tricks [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] PyCharm, a Python IDE with its free and open-source community edition, in last several years has become a tool of choice for more and more Python developers. But not everybody uses its full power. Moreover, most only use a fraction of the functionality it provides. The reality is that an IDE is not just about a set of integrated tools, but an environment that understands the semantics of your project, of what you’re doing. It can leverage this to provide you with functionality that can make repetitive mundane tasks become frictionless, as well as give insight into potential problems. In this session, we will go through the most powerful features the IDE offers and whether you do web development or work with data using Python, you will benefit knowing how the IDE can leverage your programming skills. 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
Emma Gordon - Writing code? Pfft... Evolve it instead!

"Writing code? Pfft... Evolve it instead! [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] We're heading into a future of delivery drones, driverless cars and 3D-printed ""hoverboards"" ... With machines now able to perform many tasks better than humans, some people are going to be out of a job. But not software developers, right?! Could a computer generate the code you currently write for a living? In this talk, we'll take a look at one of the many biologically inspired approaches to AI - Genetic Algorithms, and how they can be used to generate code given a description of the function that that code should perform. Spoiler - you're probably not out of a job, yet... 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 Amici - Fast Python! Coding competitions with CPython and PyPy

"Fast Python! Coding competitions with CPython and PyPy [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] In a coding competition you want to solve problems ""fast""... why would you choose a ""slow"" interpreted language like Python? Because the ""slow"" Python wins competitions more often that most people think. We will show how coding competitions work, what are the resources and constraints that competitors need to take into account, and we will find out that, like very often in real life, the actual processing time is only a small term in the complex equation that describe a competition. The ""faster"" PyPy may help in gaining raw speed, but that is not the real advantage it gives you in a competition. 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
Call a C API from Python becomes more enjoyable with CFFI

"Call a C API from Python becomes more enjoyable with CFFI [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] Python is slow ! Python can’t access bare metal! You often hear theses assumptions? Theses limitations can be surpassed by Python extensions written in C. However, according to my personal experience, doing this by leveraging C may yield to several issues (e.g., memory management). C Foreign Function Interface for Python (a.k.a., CFFI) allows you to easily write Python extensions. One of the main aims of CFFI is to to wrap C libraries. Along the same lines, it may also be used for performance enhancement. By this call, I am firstly presenting CFFI and it’s two modes of utilization: API level and ABI level. Then I will share my own experience about wrapping shaderc library (https://github.com/google/shaderc) in six hours pyshaderc (https://github.com/realitix/pyshaderc). Next we are going to the next level, let’s wrap all the Vulkan API! Vulkan is the new 3D API and is not a piece of cake. To see the real advantage of CFFI, a side by side comparison between two Python modules is going to be presented: CVulkan is a Vulkan wrapper written fully in C, it’s a classic C extension for Python vulkan is its CFFI counterpart without any C written, only Python I have developed two versions of Vulkan wrapper (one in a pure C, and the second by leveraging CFFI) and I can assure you that CFFI is a a way better! Let’s code! 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
Katharine Jarmul - If Ethics is not None

"If Ethics is not None [EuroPython 2017 - Keynote - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] The history of computing, as it's often covered in textbooks or talks, remains primarily focused on a series of hardware advancements, architectures, operating systems and software. In this talk, we will instead explore the history of ethics in computing, touching on the early days of computers in warfare and science, leading up to ethical issues today such as Artificial Intelligence and privacy regulation. 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
Tim Großmann - Automating Instagram with Python and Selenium

"Automating Instagram with Python and Selenium [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] In this talk about using Selenium and Python for social media automation you will get some insights into growing your own open source projects into tools that really get used and maintained by a community. You will get an idea of what pitfalls you have to face when working with something as fast changing as Instagram and how to best tackle this. You'll learn what the ""Page Object"" design pattern is, what it is useful for and why we use it. Of course we will also talk about OpenSource and why it's important. A lot of the talk will be based on my article on InstaPy published at the freeCodeCamp publication on Medium: https://medium.freecodecamp.com/my-open-source-instagram-bot-got-me-2-500-real-followers-for-5-in-server-costs-e40491358340 So, who is this talk suited for? If you're just starting out with python, are interested in automation or simply like to see a fun and interesting little open source project, I'd love to see you at my talk and hear your ideas and opinions about it. 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
Marc Garcia - A Gentle Introduction to Data Science

"A Gentle Introduction to Data Science [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] This introductory talk, will cover the basics of datascience. From the incluence of artificial intelligence, and the quest to replicate a human mind, to a practical demo on how to build a hello world machine learning in Python. The talk will try to answer questions such as: What do we understand by data science? What do we know about the human mind, that can be an inspiration for our programs? Which problems can we solve with data science? What tools are available to do data science in Python? 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
Reimar Bauer - MSS - Software for planning research aircraft missions

"MSS - Software for planning research aircraft missions [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] http://www.geosci-model-dev.net/5/55/2012/ Scientific aircraft research flights have to be planned beforehand. For that it is necessary to have model forecasts of relevant quantities such as meteorological parameters, chemical composition or particle information to guide the aircraft to the location of interest. Typically, many scientific instruments on board those aircrafts used to investigate e.g. the chemical composition of the air in order to get new insights often with the involvement of different science groups. For discussion of the possibilites of the research flights, the Mission Support System (MSS) was developed (http://mss.rtfd.io). This software helps to review a big amount of metereological and model data by viewing the forecasted parameters of interest along possible regions of a proposed flight path. Data and possible flight paths can be displayed on a hoizontal view (map projection) or on a vertical view (along the proposed flight path). Flight paths can be constructed and modified on these views. Exchange through a waypoint table is also possible. The talk gives a brief insight into the MSS software development current state. We are using the OWS interface standard. https://geopython.github.io/OWSLib/ MSS is a client/server application. The QT client interacts with a paste wsgi server. The software is available for all platforms on conda-forge. 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
Alisa Dammer - Baby steps in short-text classification with python

"Baby steps in short-text classification with python [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 1] [Rimini, Italy] This talk aims to provide an information about where and how one could start using simple text-classification models. Additionally it will be shown how a python classificator can be incorporated into existing system. The presentation will be broken into 3 topics and a conclusion. First, the presentation provides an overview of how the problem was approached, what information was useful or not and how the technologies stack shown in the second part was decided on. Second part will concentrate on using Naive Bayesian model for text classification. How the model was trained, what difficulties were met and how they were solved. Additionally the talk will give a brief overview of other possible model choices (random forest, SVM). The third part will show how the model was deployed and used in the production. One architecture solution will be shown in details (REST calls between Java Client and Flask Server), while other possibilities will be mentioned briefly. As the conclusion the possible improvements for the model in use will be suggested as well as short example of supervised learning algorithm (CNN) and unsupervised classification algorithm (LDA) for the same purpose. Along with the examples the proc and cons will be named. Technologies mentioned and used: Flask, Green Unicorn vs uWSGI, NLTK, Sci-Kit, Python 3, Java 8, Jersey, Docker, Kubernetes 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
Marc-Andre Lemburg - EPS General Assembly 2017

"EPS General Assembly [EuroPython 2017 - EuroPython session - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] This is where the EuroPython Society (EPS) board gives its reports, resolutions are passed and the EPS members can vote in a new EPS board. 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
Marc-Andre Lemburg - EuroPython 2018: Help us build the next edition!

"EuroPython 2018: Help us build the next edition! [EuroPython 2017 - EuroPython session - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] We need help with organizing and running EuroPython 2018. In this session, we will explain how the EuroPython workgroup model works and where you could help. 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
Paul Ross - A faster Python? You Have These Choices

"A faster Python? You Have These Choices [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] Python was never intended as a fast language but many modern uses of Python require high performance computing, particularly in data science. This talk explores your options for squeezing maximum performance out of critical Python code. This talk provides a succinct summary of the options you have: C extensions, Cython, CFFI, PyPy and many others. It also shows the trade-offs between execution performance and the cost of writing and maintaining code with each choice. Each option is also explored for maturity and ease of use for Python programmers. A real world programming problem is coded and benchmarked using each of these techniques. All the code used in the talk is available on GitHub. At the end of this talk you will be better place to decide on which technique to use to make your code run 100x faster. 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
Florian Wilhelm - Declarative Thinking and Programming

"Declarative Thinking and Programming [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] Declarative Programming is a programming paradigm that focuses on describing what should be computed in a problem domain without describing how it should be done. The talk starts by explaining differences between a declarative and imperative approach with the help of examples from everyday life. Having established a clear notion of declarative programming as well as pointed out some advantages, we transfer these concepts to programming in general. For example, the usage of control flow statements like loops over-determine the order of computation which impedes scalable execution as well as it often violates the single level of abstraction principle. Following the theoretical part of the talk, some practical examples are given how declarative programming can be applied easily within Python. This comprises the advantages and disadvantages of using a configuration file, e.g. config.yaml, versus a Python configuration module, e.g. setup.py. Furthermore, the benefits of avoiding statements of control flow with the help of list and dictionary comprehensions as well as sets are demonstrated. The talk is concluded by a short, high-level excursion to a logistic programming language, namely PyDatalog in order to build the bridge between logistic and declarative programming. This is accomplished by showing how a mathematical crossword can be easily solved with the help of declarative and logistic programming. 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
Andrey Syschikov - A journey into Git internals with Python

"A journey into Git internals with Python [EuroPython 2017 - Talk - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] Despite 12 years of history and wide popularity the workings of Git still remain largely a mystery for many. A lot of Git users operate it just by remembering a bunch of commands and repeating them in a correct order. I was one of them until I decided to dig deeper into how Git actually works and suddenly I understood that internally Git operates by rather simple principles and after you figure them out suddenly all those commands start to make sense. To look into the Git's internal structure you need a programming language to crunch the data and Python fit perfectly for this task. In this talk, I will dig into the internals of Git with Python, that will help you better understand how Git works. 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
Alice Harpole, Raniere Silva, Mateusz Kuzak, Céline Boudier - Community teaching practices

"Community teaching practices [EuroPython 2017 - Panel - 2017-07-13 - PyCharm Room] [Rimini, Italy] In the last five years we saw many groups dedicated to teach people how to program but any volunteer that is going to start a new teaching group could have hundreds of questions related with concepts order, examples, exercises, libraries and text editor/IDE. Panellists will share their experience when teaching Python to newcomers from different backgrounds as part of their volunteer work for some organisations such as PyLadies, DjangoGirls, Code for Life, Software Carpentry, Data Carpentry, etc. Among the panellists we will have Mateusz Kuzak, from the Netherlands eScience Center and volunteer for Software Carpentry and Data Carpentry; Alice Harpole, from the University of Southampton; Celine Boudier, from Code for Life; Raniere Silva (as moderator), from the Software Sustainability Institute. All questions from the audience are welcomed. 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
Gonzalo Rafuls - Dockerized pytests

"Dockerized pytests [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] When working with pytest and custom plugins things can get eery when trying to mimic your Jenkins environment for debugging your tests locally, specially across your team and their workspaces. In this talk will go through the challenges faced to containerize a wild pytest environment. Topics: Running Pytest on Jenkins jobs Pytest custom plugins Challenges for locally debugging/replicating a Jenkins job/pytest run Dockerizing pytest and it's dependencies 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
Daniele Procida - Fighting the controls: tragedy and madness for programmers and pilots

"Fighting the controls: tragedy and madness for programmers and pilots [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] Damn it, this can’t be happening! As programmers, we find ourselves time and again spiralling down into tighter loops of desperate troubleshooting, fighting the controls of our machinery and descending into what feels like a kind of madness. Later, when it’s all over, we realise that the clues we needed to recover the situation were staring us in the face all along, but we somehow couldn’t even see them. There’s a reason for this: the nature of debugging for programmers means that it quickly tips us into these states, and then very effectively keeps us there. In programming we have worked hard to improve some aspects of programmers’ work, creating methodologies, development frameworks, paradigms, practices and thinking deeply about how to solve the problems of producing good code. We have done very little work to improve the way we debug our code, The good news is that although programmers have not developed very adequate strategies or techniques for mitigating the risks that debugging draws us into, other industries, and in particular aviation, have. We can learn from their lessons without paying their price. 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
Daniel Pope - Scripting across hosts with Chopsticks

"Scripting across hosts with Chopsticks [EuroPython 2017 - Talk - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] Chopsticks lets your import and run Python code on remote Unix hosts over SSH. It works with no code deployment and no preinstalled software other than Python and SSH. It has built-in support for running code on many hosts in parallel. Unlike Fabric or Ansible, Chopsticks not opinionated about the structure of the code you run, allowing it to be used for orchestration, auditing, diagnostics, monitoring probes, and more Also unlike these, Chopsticks is not wedded to SSH, so it can transparently work on Docker containers over pipes, local subprocesses - and in future, sudo? Daniel will demonstrate Chopsticks in action, walk through the API, and explain the three clever tricks that Chopsticks is built on. 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
Sahil Dua - How Booking.com serves Deep Learning model predictions

"How Booking.com serves Deep Learning model predictions [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] With so many machine learning frameworks and libraries available, writing a model isn’t a bottleneck anymore while putting your models in production is still a challenge. In this talk, you will learn how we deploy the python deep learning models in production at Booking.com. Topics will include: Deep Learning model training in Docker containers Automated retraining of models Deployment of models using Kubernetes Serving model predictions in containerized environment Optimising serving predictions for latency and throughput 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
Hugues Lerebours, Renaud Bauvin - Inspect (Or Gadget)

"Inspect (Or Gadget) [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] Introspection is often seen as a bad coding practice and as such a gadget. Nevertheless, the Python Standard Library provides different tools (among them the 'inspect' library) to easily identify a generator, recover the source code of a function or get a function signature. We propose to spend 1/2 hour to dig into what introspection has to offer to developers, to see what tools are available, what you can get out of them and some useful use cases that we met in our practice at Criteo. 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
Mikhail Korobov - Explaining behavior of Machine Learning models with eli5 library

"Explaining behavior of Machine Learning models with eli5 library [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] ML estimators don't have to be black boxes. Interpretability has many benefits: it is easier to debug interpretable models, humans trust decisions of such models more. In this talk I’ll give an overview of ML models interpretation and debugging techniques. I’ll cover linear models, decision trees, tree ensembles, arbitrary classifiers using LIME algorithm. The talk focus is on explanation algorithms, because it is important to be aware of pitfalls and limitations of the explanation method to be able to interpret an explanation correctly. I’ll also show how to use these techniques in practice, to debug and explain behavior of estimators from Python ML libraries like scikit-learn and xgboost using open-source eli5 library: https://github.com/TeamHG-Memex/eli5 . Attendees will get both practical and theoretical understanding of these explanation methods. Target audience is ML practitioners who want to 1) get a better quality from their ML pipelines - understanding of why a wrong decision happens is often a first step to improve the quality of an ML solution; 2) explain ML model behavior to clients or stakeholders - inspectable ML pipelines are easier to “sell” to a client; humans trust such models more because they can check if an explanation is consistent with their domain knowledge or gut feeling, understand better shortcomings of the solution and make a more informed decision as a result. 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
Julien Simon - AI on a Pi

"AI on a Pi [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] In recent months, Artificial Intelligence has become the hottest topic in the IT industry. In this session, we’ll first explain how Deep Learning — a subset of AI — differs from traditional Machine Learning and how it can help you solve complex problems such as computer vision or natural language processing. Then, we’ll show you how to start writing Deep Learning applications in Python thanks to MXNet, a popular library for Deep Learning for both CPUs and GPUs. We'll also see how to use pre-trained models and we'll load one on a Raspberry Pi equipped with a camera. Finally, we’ll show random objects to the Pi…and listen to what it thinks the objects are, thanks to the text-to-speech capabilities of Amazon Polly. 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
Michał Karzyński - Developing elegant workflows in Python code with Apache Airflow

"Developing elegant workflows in Python code with Apache Airflow [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] Every time a new batch of data comes in, you start a set of tasks. Some tasks can run in parallel, some must run in a sequence, perhaps on a number of different machines. That's a workflow. Did you ever draw a block diagram of your workflow? Imagine you could bring that diagram to life and actually run it as it looks on the whiteboard. With Airflow you can just about do that. http://airflow.apache.org Apache Airflow is an open-source Python tool for orchestrating data processing pipelines. In each workflow tasks are arranged into a directed acyclic graph (DAG). Shape of this graph decides the overall logic of the workflow. A DAG can have many branches and you can decide which of them to follow and which to skip at execution time. This creates a resilient design because each task can be retried multiple times if an error occurs. Airflow can even be stopped entirely and running workflows will resume by restarting the last unfinished task. Logs for each task are stored separately and are easily accessible through a friendly web UI. In my talk I will go over basic Airflow concepts and through examples demonstrate how easy it is to define your own workflows in Python code. We'll also go over ways to extend Airflow by adding custom task operators, sensors and plugins. 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
Floris Bruynooghe - Cloud Native Python in Kubernetes

"Cloud Native Python in Kubernetes [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] Serverside applications are more and more likely to need to run in dynamic cloud environments where they can automatically scale as required. One rightfully popular approach is to run the application as a Docker container inside a Kubernetes cluster, giving you a lot of operational benefits thanks to the Kubernetes folks. For the most part it is rather easy to make your Python application work inside a Docker container. But there are a number of common patterns one can follow to save time by delegating more things to the runtime environment. Furthermore you can start adding a few simple non-intrusive features to your application which will help improve the application live-cycle in the cluster, ensuring smooth hand-over when migrating the container to different nodes or scaling it up or down. This talk will quickly cover the basics of Kubernetes and will then start from a simple program and will discuss the steps to take to make it behave well in this environment. Starting with the basics steps you can rely on the runtime for, covering logging and all the way to supporting the service life-cycle, health checking and monitoring in a Kubernetes environment. You will see that building a cloud-native application is not very hard and something you can gradually introduce. 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
Stephan Jaensch - Fixture factories for faster end-to-end tests

"Fixture factories for faster end-to-end tests [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] When developing and maintaining many different services, unit testing is not enough to make sure your code works in production. By now, many teams doing SOA (service-oriented architectures) have a set of end-to-end tests that cover critical workflows to make sure these work. For these tests, all of the utilized services need to have the proper test fixture data in their datastores. This often leads to developers having to deal with raw datastore data (like JSON or SQL) for these tests, making the authoring of those tests very slow, tedious, and error-prone. This talk is going to discuss several approaches we tried at Yelp to generating these fixture data in a quicker, developer-friendly and more correct way. The main part of the talk will be a deep-dive into what fixture factories are, how to implement them and how to integrate them with pytest, the leading Python testing framework. I'll show you several other benefits this approach has over writing raw fixture data and how this leads to more maintainable and easier to adapt code. We'll also explore how you can then run your tests in parallel, cutting down runtime drastically. 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
Christian Trebing - Streaming: Why should I care?

"Streaming: Why should I care? [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] You think, all that hype about streaming solutions does not affect you? I thought so also. But when playing around with that topic for some time, I realized that it sheds a different light on many topics I struggled with for some time. In this talk I want to share with you what I discovered when switching from a from a database centric view to stream oriented processing. Splitting your application in smaller services gets easier as you have more natural boundaries You have more options to run different data schema versions in different services (instead of one central db upgrade) More scaling possibilities Operations improvements For sure, streaming does not solve any problem, but much more than I thought before. And in python you have good support with many streaming clients. I will give some examples and comparisons for working with Kafka and Avro Schemas. 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
Tracy Osborn - The Different Roads We Take

"The Different Roads We Take [EuroPython 2017 - Keynote - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] We've all taken different routes to get to where we are today, and we're not all currently on the same road going the same place. Tracy Osborn will talk about the idea of the ""Python engineer,"" her (long and full of bumps and potholes) journey to learning and teaching Python, and the harmful myths about learning programming and the paths available when you do so. 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
Stephanie Mifsud - Optimizing queries for not so big data in PostgreSQL

"Optimizing queries for not so big data in PostgreSQL [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] Hotjar’s user recordings count above 400 million, with supporting tables containing 4.5 billion records. This 5TB data fits nicely into Postgres and doesn’t quite merit the full big data suite of tools. However, at the rate of 1000 recordings per minute, and overall request rate of 750K per minute, the penalty of inefficient queries and updates can quickly cause nasty performance spikes if not thought out well. This talk is about the challenges we faced at the lower end of big data: the good decisions which helped keep our application running and other lessons we had to learn the hard way Considerations for Database Design Design entities for the domain Balance normalization with performance Sharding later has big migration costs, consider designing for this early Speak to the database from your Web Application Why use ORMs and at which level of abstraction? Stored Procedures are fast, should we have more of those? Bringing data closer to the application Materialize Views Defer aggregations Application Level Caching Handling Operational Troubles Explain(analyze, buffers) is your friend Detect and manage Index Bloat Reduce Deadlocks Reducing Impact of Background Maintenance Jobs Keep impact on database low with cursors and streaming Plan data retention policies early, so cleaning can be an ongoing process 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
Niklas Meinzer - When Django is too bloated - Specialized Web-Applications with Werkzeug

"When Django is too bloated - Specialized Web-Applications with Werkzeug [EuroPython 2017 - Talk - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] Did you ever think, Django and all the other “batteries included” frameworks are not flexible enough for your needs? Do you feel like they limit you in your creativity and design? Then this talk is for you! Werkzeug is a very lightweight HTTP/WSGI utility for Python. You might have actually used it before, since the popular framework Flask is based on it. Werkzeug handles the WSGI communication with the web server and parsing of HTTP packets for you, after that, you are left to do whatever you want. No pre-defined ORM, no request dispatching or template rendering. As a developer you are supported with a live debugger that runs in the browser and a great variety of testing tools making it easy to write fine grained unit tests for your application. As a developer at MPS - Medical Systems, I work with Werkzeug on a daily basis. One of our products is ChemoCompile, a chemo therapy planning, management and documentation tool used in hospitals in various European countries. It is a single-page web application written in Python (backend) and AngularJS (frontend). When we created it, we first prototyped it using Django, but soon realized, that we did not need most of the functionality that Django provides and many of our needs, like interfacing with hospital information systems, are too much out of the scope of a regular web applications. I will talk about, how we then discovered Werkzeug and built our own very customized stack on top of it and how you can do it too! 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
Andreas Dewes - Type Annotations in Python 3: Whats, whys & wows!

"Type Annotations in Python 3: Whats, whys & wows! [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] Python 3.5 introduced support for ""type hints"" (or annotations), which allows us to annotate our code with useful bits of information without affecting its runtime behavior. Type hints don't enforce a particular use case and can therefore be used for many purposes. In my talk, I will explain some of the use cases of type hints, and show how we can use them to e.g. make our code more secure or teach it new tricks. We will have a look at popular libraries that help us to use the power of type hints (e.g. mypy), but we will also see how we can build our own extensions on top of the type hint system. After the talk you should walk away with a solid (basic) understanding of type hints in Python and an idea of how they might be useful to you now or in the future. Typing and type hints in programming languages Short history and motivation of type hints in Python Basics of type hint syntax and semantics Use cases for type hints Type hints for code analysis: mypy and similar libraries Building new stuff with type hints in Python Summary, Outlook & Further Reading 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
Rishabh Daal , IMD, Maths & Computing, IIT, Varanasi - Optimization using Flow Networks in NetworkX.

"Optimization using Flow Networks in NetworkX. [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] Prerequisite: Basic Programming. Goals: Introduction to NetworkX Library Using NetworkX for optimization Techniques using Network Flow. This talk can be divided into three major parts. Introduction to NetworkX Basic Introduction to Network Flow. The solution of (https://en.wikipedia.org/wiki/Max-flow_min-cut_theorem#Project_selection_problem) Project selection problem using Network Flow and NetworkX. 1. Introduction to NetworkX. What is NetwrokX? Creating a graph in NetworkX. Some awesome methods Algorithms available. Using with other libraries like Pandas. 2. Basic Introduction to Network Flow. Origin of Problem: Mincut of soviet union railway network. A quick explanation of Max-Flow and min-cut problem. Max-flow = min-cut How to reduce problems for Network Flow optimization? Model the problem for using NetworkX 3. Solution of Project selection Problem using NetworkX. Problem statement. How can we solve it using max flow / min-cut? Modeling in form of graph. Proof of correctness Representing the graph in NetworkX Finding answer in NetworkX 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
Lightning Talks - 2017-07-13

"Lightning Talks [EuroPython 2017 - - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] 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
Mansimar Kaur - Using Python and microservices to fuel WebPush at Mozilla

"Using Python and microservices to fuel WebPush at Mozilla [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] This talk will focus on how python and microservices fuel webpush in the storage team of Mozilla . It will also act as a good introduction to webpush technology and how to integrate it into web apps. The talk will cover: How webpush works? The roles played by the various players involved (service workers and push servers and how they interact to bring about the webpush magic). The idea behind the service, WebPush Channels which is at the heart of webpush at Mozilla's storage team. How the service was developed will be covered in detail. How developers can use WebPush Channels to integrate web push in their web apps. 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
Masaya Ohgushi - How to apply deep learning for 3D object

"How to apply deep learning for 3D object [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] I talk about the ""How to achieve the 3D object recognition accuracy 80%(40 category) for 3month " Deep Learning is the good technique for image recognition and speech recognition. And it apply the other field. Many people try to apply the Deep Learning, but it is difficult to make a result. In my situation, I have enough knowledge about the 3D object and label data. I'll talk about the how to achieve the 80 % (40 category) In My approach 1: Getting the Information 1.1: How to choose the information 1.2: How to choose framework 2: Getting the Data 2.1: Public data 2.2: How to make the own data 3: Try small 3.1: Trying the small data set 3.2: Trying the train and predict 4: Deciding the direction focus 4.1: Choose what you can control 5: Prioritizing with high certainty 5.1: Pre-process 5.2: Improve the train speed 6: Increasing the challenge times 6.1: Using the GPU 6.2: CPU optimization 6.3: multi process 6.4: resource 7: Parameter Tuning 7.1: Improve Model Versatility or Improve Data Versatility 7.2: Model Tuning 7.2.1: RandomDropOut 7.2.2: LeakyRelu 7.3: Data Argumantion 8: Product 8.1: Minimum function 8.2: Using Docker I hope to people who want to apply Deep Learning for the 3D model 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
Samuel Fuentes - Fast product development using Django Rest Framework. #lessonslearned

"Fast product development using Django Rest Framework. #lessonslearned [EuroPython 2017 - Talk - 2017-07-13 - PyCharm Room] [Rimini, Italy] A year ago we decided to use Django and, specifically, DRF as the cornerstone of our upcoming fast-iterating web platform. In this talk I discuss why and how the architecture has evolved, key decisions made and the lessons we learned along the way. I'll share the techniques we used for iterating quickly and how the technology supported (and shaped) them. In addition some quirks and DRF-specific tricks will be brought along the way. Expect a general talk about how Python (and specifically DRF) can be used as a based for quick product iterations, a discussion regarding how to build and evolve a platform to meet those needs and some DRF-specific tidbits. No previous knowledge is required but experience in web development will make the content more accessible. 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
Antoine Fourmy - Network visualization and automation

"Network visualization and automation [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] Network automation and orchestration is the latest phase in the evolution of IP and optical networks. Over the last few years, network engineers have created a variety of libraries and softwares to help them with the management, configuration and automation of huge networks made of hundreds of thousands of network devices (e.g. routers, switches, antenna...). In this talk, I will introduce NetDim, a vendor-neutral software for network modeling and automation based on the standard Python library for GUI programming: tkinter. I will start the presentation with an introduction to network visualization, and show how tkinter can be used to implement graph drawing algorithms, as well as a full-on Geographic Information System (GIS), allowing one to place network devices on a world map at their GPS coordinates. I will then discuss the whys and wherefores of network automation, and show how to automatically generate and push scripts to a network device via SSH or Telnet. More details about NetDim on github https://github.com/mintoo/NetDim and on this website http://netdim.fr 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
Paul O'Grady - An introduction to PyTorch & Autograd

"An introduction to PyTorch & Autograd [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 2] [Rimini, Italy] PyTorch is an optimized tensor library for Deep Learning, and is a recent newcomer to the growing list of GPU programming frameworks available in Python. Like other frameworks it offers efficient tensor representations and is agnostic to the underlying hardware. However, unlike other frameworks it allows you to create ""define-by-run"" neural networks resulting in dynamic computation graphs, where every single iteration can be different---opening up a whole new world of possibilities. Central to all neural networks in PyTorch is the Autograd package, which performs Algorithmic Differentiation on the defined model and generates the required gradients at each iteration. In this talk I will present a gentle introduction to the PyTorch library and overview its main features using some simple examples, paying particular attention to the mechanics of the Autograd package. Keywords: GPU Processing, Algorithmic Differentiation, Deep Learning, Linear algebra. 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
Christian Heimes - Identity management, single sign-on and certificates with FreeIPA

"Identity management, single sign-on and certificates with FreeIPA [EuroPython 2017 - Talk - 2017-07-13 - PythonAnywhere Room] [Rimini, Italy] Authentication, authorization and public key infrastructure are complicated and hard to get right, yet crucial for every infrastructure. Manifold user databases in each application as well as ad-hoc self-signed TLS/SSL certificates don't scale and are hard to administrate. Users don't want to remember a password for each service, admins prefer a centralized PKI, and developers struggle with correct handling of password. FreeIPA is an Open Source, Python-based identity management solution. It is much more than a simple user database. FreeIPA combines multiple mature products under an easy-to-use installer, command line and web interface: 389-DS LDAP server, MIT Kerberos, Dogtag PKI certificate system, BIND DNS with DNSSEC, SSSD, certmonger and more. It provides identities for users, services and machines with single sign-on (optionally 2FA) and role or host based ACL. Keycloak and Ipsilon IdP can be integrated to offer OpenIDC or SAML. Mutual trust with Active Directory is possible, too. Installation of a FreeIPA server and integration with a WSGI application is much simpler than you might think. At the end of my talk you will know how to deploy a FreeIPA server with just one command, how to add replicas for redundancy, how to authenticate users and access user data like name, email and group membership without adding a single line of Kerberos or LDAP code to your application, and how to issue TLS certificates with auto-renewal and OCSP. 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
Maciej Gryka - Despicable machines: how computers can be assholes

"Despicable machines: how computers can be assholes [EuroPython 2017 - Talk - 2017-07-13 - Arengo] [Rimini, Italy] When working on a new ML solution to solve a given problem, do you think that you are simply using objective reality to infer a set of unbiased rules that will allow you to predict the future? Do you think that worrying about the morality of your work is something other people should do? If so, this talk is for you. In this brief time, I will try to convince you that you hold great power over how the future world will look like and that you should incorporate thinking about morality into the set of ML tools you use every day. We will take a short journey through several problems, which surfaced over the last few years, as ML and AI generally, became more widely used. We will look at bias present in training data, at some real-world consequences of not considering it (including one or two hair-raising stories) and cutting-edge research on how to counteract this. The outline of the talk is: - Intro the problem: ML algos can be biased! - Two concrete examples. - What's been done so far (i.e. techniques from recently-published papers). - What to do next: unanswered 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://ep2017.europython.eu/en/speaker-release-agreement/

Watch
Omar Gutiérrez - Introduction to Nonparametric Bayesian Models

"Introduction to Nonparametric Bayesian Models [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] When we use supervised machine learning techniques we need to specify the number of parameters that our model will need to represent the data (number of clusters, number of Gaussians, etc.). Somewhat, we are making our model inflexible. In this talk we will study the nonparametric models, in specific, Bayesian Nonparametric Models (BNP) whose main purpose is getting more flexible models since that in BNP the parameters can be automatically inferred by the model. The outline is the next: Parametric vs Nonparametric models A review on probability distributions Non-parametric Bayesian Methods Dirichlet Process Python (and R maybe) libraries for NPB Conclusions 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
Guillem Duran Ballester - Inside Airbnb: Visualizing data that includes geographic locations

"Inside Airbnb: Visualizing data that includes geographic locations [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] This talk is about creating visualizations for data that includes geographical locations. We will be using data from InsideAirbnb.com to represent the current status of Airbnb listings in Mallorca. We will show practical examples of different visualizations of geographical data: First, we will start with how to use bokeh to overlay data on google maps. We will use examples to show how the GMapPlot interface works. We will briefly explain how to use it, and what are its limitations. Then, we will talk about plotting shapefiles with holoviews. Shapefiles are files that describe the shape of maps. We will explain how to deal with shapefiles. For instance, we will describe how we use shapefiles to group geographical data by regions. We will also briefly explain how holoviews works and how it can be used to display geographical data. Moreover, we will talk about using datashader and geoviews to visualize big data. First, we will briefly introduce datashader, bin based plotting and the datashader Pipeline. After that, we will show how to create plots with geoviews: how is the Interface, a few use cases and some examples. Finally, we will move to plotting big data on interactive maps. Eventually we will finish with dynamic maps for visualizing time series: we will explain how do we do it and show some examples of how to build an interactive dashboard for visualizing geographical data that varies over time. 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
Federico Marani - Feeding data to AWS Redshift with Airflow

"Feeding data to AWS Redshift with Airflow [EuroPython 2017 - Talk - 2017-07-13 - Anfiteatro 1] [Rimini, Italy] Airflow is a powerful system to schedule workflows and define them as a collection of interdependent scripts. It is the perfect companion to do extract/transform/load pipelines into data warehouses, such as Redshift. This talk will introduce some of the basis of Airflow and some of the concepts that are data pipeline specific, like backfills, retries, etc. Then there will be some examples on how to integrate this, along with some lessons learned there. At the end, there will be a part dedicated to Redshift, how to structure data there, how to do some basic transformation pre-loading, how to manage the schema using SQLAlchemy and Alembic. 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
Lightning Talks - 2017-07-14

Lightning Talks [EuroPython 2017 - - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] 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
Michele Simionato - Lessons learned in X years of parallel programming

"Lessons learned in X years of parallel programming [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] There is a lot more to parallel programming in Python than multiprocessing.Pool().map. In this talk I will share some hard-learned knowledge gained in several years of parallel programming. Covered topics will include performance, ways to measure the performance, memory occupation, data transfer and ways to reduce the data transfer, how to debug parallel programs and useful libraries. I will give some practical examples, both in enterprise programming (importing CSV files in a database) and in scientific programming (numerical simulations). The initial part of the talk will be pedagogical, advocating the convenience of parallel programming in the small (i.e. in single machine environment); the second part will be more advanced and will touch a few things to know when writing parallel programs for medium-sized clusters. I will also briefly discuss the compatibility layer that we have developed at GEM to be independent from the underlying parallelization technology (multiprocessing, concurrent.futures, celery, ipyparallel, grid engine...). 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
Daniele Rapati - I don't like Mondays-what I learned about data engineering after 2 years on call

"I don't like Mondays-what I learned about data engineering after 2 years on call [EuroPython 2017 - Talk - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] The first weekend of October 2015 my company bought an advert during the first episode of ""Downton Abbey"" on Sunday evening. It was so successful that the website went down for half an hour. We wanted to look at the analytics and the data to estimate the impact. But they were having a very hard weekend too: the replica of the production database we used was unreachable and the only person who knew how to fix it was on a plane. Monday really was a memorable day This session is about sharing some life experience and best practices around Data Engineering. Attendants should have some previous understanding of data and tech in business. Attendants should leave with an understanding of on-call practices and with some quick win actions to take. What does it mean to be on call? How do you make sure that the phone rings as little as possible? Fixing versus Root Cause Analysis. Systems break at junctures. Especially if the juncture is with a third party. Why and when is it worth reacting to errors as soon as they happen? External Services. Increasing Business Trust. Allowing others to build on solid ground. How do you make sure the phone rings when it should? Alerting tools: emails, chat, specialised applications like PagerDuty, OpsGenie and Twilio Monitoring systems Monitoring data (Data Quality) as a continuous early warning system. 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 Pisa - Plone: where is it today and where is it going

"Plone: where is it today and where is it going [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] Plone CMS, first released in 2001, is now close to its 5.1 version. Did you know that the 2016 Olympics web site was built with Plone? Did you know that many huge organizations that care about data protection use Plone? There are good reason why Plone is such a successful Python project, but probably the most important is that Plone does take into account the security of your data very seriously. Nowadays, information and data play a crucial role, sometimes they are the more important asset of a company. They have to be in a digital form and accessible from every device, it is no surprise that they are exposed to a growing threat. During the talk I will review Plone built in security protection systems. In addition I will review some of its features, like the ability to create, without writing a line of code, custom content types, to change documents workflows, to organize your documents in a snap. I will also talk about the foreseen new features that will be soon in Plone and I will present Castle CMS and Quaive, some important projects built on top of Plone that are currently under the spotlight. 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
Oliver Braun - Python and Angular, a perfect match?

"Python and Angular, a perfect match? [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] Python on mobile devices is still negligible mostly because of the GUI problems which arise. But Python on android devices is considered to be a solved problem since the module Python for Android is available. We have nowadays at least the possibility to develop for mobile devices with the GUI engine Kivy which is maybe the first choice for rapid prototyping on that platform. But as it comes to design work and mobile device look alike Kivy is still far behind the web development tools HTML/CSS. In our talk we present a conceptual work where we used Ionic - this is an mobile development framework based on Angular - to build the GUI part of an app and connected that to a Python back end. In our point of view our proposal is very general and will give Python a boost towards modern UX development and makes HTML/CSS/JavaScript a real option especially in combination with Angular. The main part of our solution that we show is the interoperation between JavaScript and Python such that asynchronous calls in both direction are possible. The advantage is to develop UX and back end code only once and use it literally on every platform where a Python interpreter and a browser runs. 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
Abhishek Sharma - Pythonist view on Microservices & Containerization

"Pythonist view on Microservices & Containerization [EuroPython 2017 - Talk - 2017-07-14 - Arengo] [Rimini, Italy] Microservices architecture and containerization are words thrown around when we talk about designing systems that are loosely coupled, although it may sound like buzz words but these key concepts play a very important part in system as a whole. In this talk, we will cover how microservices can be implemented in python using available open source frameworks and how it can be deployed independently to scale and perform in production environment. I'll also share several use-cases where it is worth planning and developing system architecture considering microservices/containerization and will also discuss some trade-off of having such architecture. Outline: Overview of microservices Implementing microservices using Python Advantages of microservices over Monolithic / SoA architecture Overview of containerization How to containerize Python based services (Docker) Advantages of microservices/containerization over traditional deployment CI/CD Approach in microservices and containerization Usecases where to use microservices Trade-off of using microservices 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
Mark Smith - Pythonic Refactoring: Protecting Your Users From Change

"Pythonic Refactoring: Protecting Your Users From Change [EuroPython 2017 - Talk - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] So you've released a library! Now you need to maintain it. You want to add features, restructure the code, fix bugs, and maybe improve the library's usability. Your users just want their code to carry on working. That's okay! This talk will cover techniques in both code and project management to allow you to keep your code moving forwards without breaking your users' code. It is aimed at developers with a little experience of writing libraries in Python, and will cover some intermediate subjects like function decorators and magic methods. Refactoring in Python is a mixed bag - on the one hand you have powerful tools like the @property decorator, __dunder__ methods, and even metaclasses. On the other hand, because Python code has no concept of private or protected like some other languages, it can be difficult to know what your public interface even is. I'll talk about how to identify your public interface, and make that clear to your users. I'll cover how to structure your tests so you know when you've broken your public interface. I'll discuss how to use some of Python's language features to trick your users into thinking your code hasn't changed at all (except for those brilliant new features you've just added!). And finally, I'll cover how you know it's time to break backwards compatibility and how to break it to your users. 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
Ivan Smirnov - pybind11 - seamless operability between C++11 and Python

"pybind11 - seamless operability between C++11 and Python [EuroPython 2017 - Talk - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] https://github.com/pybind/pybind11 pybind11 is a lightweight header-only C++11 library that exposes C++ types to Python and vice versa and allows creating Python extension modules with minimum boilerplate by leveraging compile-time introspection and type inference. While this library's goals and some of the syntax may be considered similar to Boost.Python, it has a much smaller footprint, is entirely self-contained, and offers additional features like direct support for NumPy arrays. In this talk, we will look at how to write Python extension modules in C++ from scratch with pybind11, starting from simple bindings and building up to more complex examples that deal with iterators, STL data structures, NumPy types and Python callbacks. We will also touch upon some of the internal machinery of the library like the virtual call mechanism and reference counting. 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
Anna Ravenscroft - Overcoming Cognitive Bias

"Overcoming Cognitive Bias [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] Starting with a brief description of how built-in mechanisms in our brains lead to cognitive bias, the talk will address how a variety of cognitive biases manifest in the Python and tech communities, and how to overcome them. 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
H. Hain, S. Gramlich - From an old-school data managing company to data analytics with Python

"From an old-school data managing company to data analytics with Python [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] Our mission is to manage a huge amount of communication and document data in large scale industry projects by providing web based project management systems. The increasing amount of communication creates the desire for a GPS helping us and our customers to navigate through the communication stream. Our R&D projects are focusing on topics like clustering, event detection, and network analysis (Who knows who, domain experts). Traveling the wild side of NLP, Data Science, and Analytics, we stumbled across amazing Python tools supporting us in our goal to navigate the project communication and therefor supporting our clients in Project & Risk Management avoiding wrong turns. We would like to share some of our approaches to answer our research topics and challenges: One of the challenges, amongst others, is to utilize and adapt up to date clustering algorithms for social stream data and to expose them as reentrant services. Another one is to tailor them for the current application domain, improving clustering precision by parametrization and other means. Furthermore the integration of a Python based analytics system into an existing JAVA based application environment and eco system is required. In addition, we would also like to share some of our ""traffic jams"" experienced during our travel starting as traditional Java/SQL focusing company that integrated Python into its development portfolio. 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
Armin Rigo - PyPy meets Python 3 and Numpy

"PyPy meets Python 3 and Numpy [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] PyPy is an alternative Python implementation whose JIT often gives seriously better performance than CPython. Now PyPy supports, in beta version, two major new application domains: Python 3.x, and Numpy and the rest of the scientific stack. These are each an important milestone for a subset of the Python community. Thanks to a grant by Mozilla, ""PyPy3"" now largely supports Python 3.5 with one or two extensions from Python 3.6. Full support should be very close. (Note that PyPy2 will not disappear, if only because PyPy itself is written in Python 2.7.) Numpy and the major packages of the scientific stack are now starting to work well with PyPy (PyPy2 mostly, but also PyPy3). This is thanks to progress in ""cpyext"" emulating the CPython C API, as well as fixes to the packages in collaboration with the upstream developers. We will also mention some more ""what's new in PyPy"" topics from the last couple of 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://ep2017.europython.eu/en/speaker-release-agreement/

Watch
Simmi Mourya - Scientific computing using Cython: Best of both Worlds!

"Scientific computing using Cython: Best of both Worlds! [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] Cython is not only an excellent and widely used tool to speed up computational Python code, it’s also a very smart way to talk to native code and libraries. The Cython compiler translates Python code to C or C++ code, and supports static type annotations to allow direct use of C/C++ data types and functions. You get the best of both worlds while working with Cython: Python like syntax with blazing fast C speed. This talk/tutorial by a Python/Cython developer introduces Cython programming language and leads the participants all the way from their first Python extension to an efficient integration with native C. Topics covered will be: 1. Using the Cython compiler to build a native extension module 2. Cython development from Jupyter notebook 3. Mixing Python with static C types in the Cython language 4. Calling into native code from Cython code (Brief introduction) 5. Wrap up: A brief case study Cyvlfeat: A Cython/Python wrapper for Computer Vision library, VLFeat. Participants are expected to have a good understanding of the Python language, some basic knowledge about C or C++. No deep C programming knowledge is required, nor is any prior knowledge needed about writing extension modules for the CPython runtime. 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
Daniele Procida, Aisha Bello - The Encounter: Python’s adventures in Africa

"The Encounter: Python’s adventures in Africa [EuroPython 2017 - Keynote - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] A genuine encounter changes both parties. In this talk Daniele and Aisha will report on the dialogue opened up by recent PyCons and other Python events in Africa. They’ll discuss Python’s impact in countries including Namibia, Nigeria and Zimbabwe, and what open-source software means for Africa at large - and what the encounter means for Python too. 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
Anders Lehmann - Modelling pollution from traffic, using Smartphone data and Python

"Modelling pollution from traffic, using Smartphone data and Python [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] The talk presents results from my PhD project on models for transportation related pollution. Pollution from personal transport in Cities is a big and growing problem. By monitoring the flow, and congestion in the transport system two goals can be achieved. First, the adherence to agreed limit values (or breaking said limits) can be followed and used to decrease health effects of local pollution hotspots. Secondly, monitoring of the total emission of climate forcing gases from transportation, is important for designing climate mitigation actions. Python is used in combination with other tools to convert sensor data from smartphones, into pollution concentrations in urban settings. To mitigate the lack of complete data coverage, the missing data is simulated by a traffic model, to locate congestion and model the traffic related pollution concentration. 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
Deep Kayal - Large-scale data extraction, structuring and matching using Python and Spark

"Large-scale data extraction, structuring and matching using Python and Spark [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] Motivation - Matching data collections with the aim to augment and integrate the information for any available data point that lies in two or more of these collections, is a problem that nowadays arises often. Notable examples of such data points are scientific publications for which metadata and data are kept in various repositories, and users’ profiles, whose metadata and data exist in several social networks or platforms. In our case, collections were as follows: (1) A large dump of compressed data files on s3 containing archives in the form of zips, tars, bzips and gzips, which were expected to contain published papers in the form of xmls and pdfs, amongst other files, and (2) A large store of xmls in the form of xmls, some of which are to be matched to Collection 1. Problem Statement - The problems, then, are: (1) How to best unzip the compressed archives and extract the relevant files? (2) How to extract meta-information from the xml or pdf files? (3) How to match the meta-information from the two different collections? And all of these must be done in a big-data environment. Presentation – https://drive.google.com/open?id=1hA9J80446Qh7nd8PMYZibtIR1WjMkdLXfDgwUlts7JM The presentation will describe the solution process and the use of python and Spark in the large-scale unzipping and extraction of files from archives, and how metadata was then extracted from the files to perform the matches on. 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
Alejandro Solano - Introduction to TensorFlow

"Introduction to TensorFlow [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] Deep learning is at its peak, with scholars and startups releasing new amazing applications every other week, and TensorFlow is the main tool to work with it. However, Tensorflow it's not an easy-access library for beginners in the field. In this talk, we will cover the explanation of core concepts of deep learning and TensorFlow totally from scratch, using simple examples and friendly visualizations. The talk will go through the next topics: • Why deep learning and what is it? • The main tool for deep learning: TensorFlow • Installation of TensorFlow • Core concepts of TensorFlow: Graph and Session • Hello world! • Step by step example: learning how to sum • Core concepts of Deep Learning: Neural network • Core concepts of Deep Learning: Loss function and Gradient descent By the end of this talk, the hope is that you will have gained the basic concepts involving deep learning and that you could build and run your own neural networks using TensorFlow. 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
Uzi Halaby Senerman - Pandas - not just for data scientists

"Pandas - not just for data scientists [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] This is not a tutorial. It's an attempt to expose non data scientists experienced pythonistas to the powerful pandas library. Most of python developers don't use pandas (either because they never heard of it, felt that it's a too steep learning curve or never thought that it will be useful for them). I intend to talk about python performance limitations and show how pandas can be used to overcome some of these limitations. The talk will be accompanied by a live Jupiter Notebook session that will demonstrate a typical use of pandas. 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
Hongjoo Lee - Deep Learning your Broadband Network @HOME

"Deep Learning your Broadband Network @HOME [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] Most of us have broadband internet services at home. Sometimes it does not work well, and we visit speed test page and check internet speed for ourselves or call cable company to report the service failure. As a Python programmer, have you ever tried to automate the internet speed test on a regular basis? Have you ever thought about logging the data and analyzing the time series ? In this talk, we will go through the whole process of data mining and knowledge discovery. Firstly we write a script to run speed test periodically and log the metric. Then we parse the log data and convert them into a time series and visualize the data for a certain period. Next we conduct some data analysis; finding trends, forecasting, and detecting anomalous data. There will be several statistic or deep learning techniques used for the analysis; ARIMA (Autoregressive Integrated Moving Average), LSTM (Long Short Term Memory). The goal is to provide basic idea how to run speed test and collect metrics by automated script in Python. Also, I will provide high level concept of the methodologies for analyzing time series data. Also, I would like to motivate Python people to try this at home. This session is designed to be accessible to everyone, including anyone with no expertise in mathematics, computer science. Understandings of basic concepts of machine learning and some Python tools bringing such concepts into practice might be helpful, but not necessary for the audience. 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
Emma Gordon - Python Bee

"Python Bee [EuroPython 2017 - Interactive session - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] Thought up in 2009 by a group of MIT students who entered the Python bee into a competition for “bad ideas”, a Python bee is like a spelling bee for programmers. Instead of spelling words, participants are given functions to write and must spell them out loud - one character at a time, without looking at the code that they're writing! Players must spell valid Python and every character counts, including symbols and whitespace. And the twist for the second round (credit for this one goes to dropboxblogs): You're now allowed to look at the code, but... you must now team up with other programmers, entering alternate characters without being allowed to communicate via any other means. In order for everyone to be able to have a go, we'll split up into small groups to play - for those that want to be competitive, we'll use a scoring system so that we can still declare an overall champion. You're very welcome to come along just to have fun though! TL;DR - a fun hour of slightly ridiculous programming games :) 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
Fergal Walsh - Rethinking how we build HTTP APIs

"Rethinking how we build HTTP APIs [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] Rethinking how we build HTTP APIs The Python universe is overflowing with web frameworks, from full featured batteries included frameworks like Django to micro frameworks like Bottle or Flask. They each have their own specific features but in the end they are all very similar in their core functionality of processing requests and generating responses. In this talk I will discuss why I felt the need to create yet another framework, a pico framework, that specifically focuses on the task of building HTTP based APIs for the web. Pico, as it is aptly called, doesn't do templating, ORM, custom routing, authentication, validation, caching, or a million other things. Instead it helps you write clean APIs using simple functions and modules with minimal boilerplate. Pico is both opinionated and flexible in equal measures so you can focus on what matters; your API logic. Pico helps you to write code that that is simple to get started, trivial to test, and easy to maintain as your project grows. APIs built with Pico are self describing so client code can automatically/dynamically be created. Pico includes both a Python & Javascript client but it is also very simple to interact with your API with plain old cURL/Requests/jQuery/etc. It is just a HTTP API after all. Having recently released Pico 2.0, this talk will outline the evolution of this framework over the past 7 years and discuss some lessons learnt along the way about building HTTP APIs and frameworks. 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
Magdalena Rother - Writing Awesome PyPI packages in Python

"Writing Awesome PyPI packages in Python [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] One of the strengths of the Python programming language is the huge base of Open Source libraries. The PyPI (Python Package Index) repository provides currently 105,917 packages, many of them developed actively by contributors. This talk is a tour through various tools and practices, which help to keep your package in a good state for your users and make it easier for other developers to contribute. One can find these practices in projects of different size, such as Django (24,244 commits, 1,397 contributors) Pandas (15,005 commits, 754 contributors) and Faker (20 commits, 3 contributors). Some things to consider when creating your own package: using a Makefile for automatic testing, coverage analysis and environment setup. structuring your .gitignore file. using pyenv and .python-version for Python version management. using tox to ascertain that code is working in different environments. squashing different configuration files to a single setup.cfg file. using EditorConfig and .editorconfig to automatically set project coding standards in the editor. 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
Antonio Del Mastro - Space weather monitoring for a virtual reality simulation

"Space weather monitoring for a virtual reality simulation of a Martian settlment [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] High-energy particles accelerated by the Sun during Coronal Mass Ejections (CME) are a major concern for a manned mission to Mars. On Earth surface, these particles are shielded by the Earth magnetic field. In space and on the Martian surface, where such shielding is absent or much weaker, CME pose a radiation hazard to the health of astronauts. The development of tools to understand and forecast the interplanetary space weather is a requirement for future manned space missions in order to properly protect the astronauts from the radiation environment. A variety of methods are currently developed by the scientific community and a number of public tools for space weather monitoring and forecast is already available online. We present a Python-based tool which takes advantage of two publicly accessible space weather web portals. Our software combines the forecast of CME and a real-time propagation model of energetic particles throughout the inner Solar System and the Martian atmosphere. It consistently recovers real-time relevant information and provides with days-to-hours forecasts for the radiation dose astronauts on Mars would be exposed to. The system raises an alert signal when the radiation dose exceeds the security levels defined by the main space agencies adopted as a reference. Our tool is meant to be integrated in a virtual reality simulation of a human settlement on the surface of Mars (Mars City Project www.mars-city.org). Prerequisite: Intermediate knowledge. 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
Nicolle Cysneiros - Graph Databases: Talking about your Data Relationships with Python

"Graph Databases: Talking about your Data Relationships with Python [EuroPython 2017 - Talk - 2017-07-14 - PyCharm Room] [Rimini, Italy] Have you ever considered how many relationships you have in your virtual life? Every friend or page liked on Facebook, each connection in LinkedIn or Twitter account followed is a new relationship not only between two people, but also between their data. In Brazil only, we have 160 millions Facebook users. How can we represent and manipulate all these relationships? Graph Databases are storage systems that use graph structure (nodes and edges) to represent and store data in a semantic way. This talk will begin approaching the challenge in representing relationships in Relational Databases and introducing a more friendly solution using graph. The definition of Graph Database, its pros and cons and some available tools (Neo4J, OrientDB and TitanDB) will be shown during the presentation, as well as how these tools can be integrated with Python. Outline: Relationships Relationships in Relational Databases Graph Definition Graph approach to represent relationships Graph Databases Definition Advantages Neo4J Usage Examples Integration with Python Comparison between Graph Databases Comparison between Neo4J and Relational Database Applications 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
Marwan Al-Sabbagh - Executing scripts in a few milliseconds with MicroPython

"Executing scripts in a few milliseconds with MicroPython [EuroPython 2017 - Talk - 2017-07-14 - Arengo] [Rimini, Italy] Command execution time can become important in a number of applications. Commands executed in command-line completion need to execute in less then 100ms or users will perceive a delay. In Shell scripting one might want to execute commands repeatedly in a for loop and fast execution times makes this more feasible. Python is a very powerful language but has a much slower startup time compared to other interpreted languages like Perl, Lua and Bash. It can take up to 10 times longer to startup then some of these other languages. MicroPython was written as a lean implementation of Python 3 with a small subset of the standard library mainly intended to run on microcontrollers. But it happily runs on Unix systems with excellent startup performance, making it an ideal candidate for implementing certain time sensitive commands. This talk will: Explain when achieving fast execution times matters and when it doesn’t. Present two different approaches to measuring command execution time, one simple and the other more detailed and accurate. Compare execution times of a simple set of scripts that add two numbers in an number of different interpreted languages (micropython, python3, awk, perl, lua, bash). Present an example use case of MicroPython on Unix. Bash completion for pip install that completes the names of available packages live from a remote pypi mirror. Demonstrate the auto completion script with pip on a local pypi mirror. 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
Maximilian Scholz - Linespots: Predicting Bugs in your Code

"Linespots: Predicting Bugs in your Code [EuroPython 2017 - Talk - 2017-07-14 - Arengo] [Rimini, Italy] In times of increased awareness of technical debts, reviewing and auditing code becomes more important. The main problem with code review is the amount of time that is being spent searching the needle in the haystack. You just don’t know what you are looking for and where to find it. One possible solution to the problem to the idea of bug prediction. If we could somehow know where bugs are in our code, focusing reviewing efforts on that area should, in theory, increase the effectiveness of our review. More bugs should be uncovered while less time is spent reviewing. This is what Linespots tries to offer. It is an algorithm developed during my thesis that analyses a project’s history and calculates a probability value for each line of code in the project, representing the likeliness of a bug existing in that line. Using the probabilities, reviewers can focus on the areas that are at a higher risk of containing bugs and spend less time on robust code. The research done so far showed, that by analyzing 0.5% lines of code with the highest risk values in a project, an average of 50% of the bugs fixed in the next 150 commits were correctly predicted by Linespots. This is an improvement by factor 10 compared to Bugspots, an algorithm developed at Google, which Linespots is based upon. Outline: Basics and functionality of Linespots Research results Pros and cons of Linespots Results of a case study 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
Radoslav Georgiev - Practical Debugging - Tips, Tricks and Ways to think

"Practical Debugging - Tips, Tricks and Ways to think [EuroPython 2017 - Talk - 2017-07-14 - Arengo] [Rimini, Italy] When we write code, oftentimes things are not working as expected. We followed the tutorial and yet we got an error. We introduce a new feature but something else broke. Having to deal with bugs is inevitable. Trying to ""debug"" what happened or what caused the problem can be really frustrating and timewasting. The aim of this talk is go give ways to think & steps to take when we are faced with the process of debugging. The language for the examples is going to be Python & the tools used - from the python ecosystem. The talk will be practical, with a lot of real-world examples. The goal is to cover the following scenarios by showing different ways to approch the problem: You followed a tutorial but it's not working. What to do? You introduce new feature but things broke somewhere else in the project. What to do? You are using a popular 3rd party library but something breaks. What to do? A bug occurs and you have no idea what or who caused it. What to do? You can't fix or find the bug. What now? You want to generalize your debugging skills. How to do that? We will be talking about critical changes, binary search, problem isolation, interactive debuggers, printing, testing, greping and other interesting things. 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
Mark Shannon - Finding bugs for free: The magic of static analysis.

"Finding bugs for free: The magic of static analysis. [EuroPython 2017 - Talk - 2017-07-14 - Arengo] [Rimini, Italy] Overview Static analysis is a powerful technique for improving the quality of software. It allows you to find bugs in your Python code without any the need for any annotations. At lgtm.com we provide state-of-the-art static analysis for a number of languages including Python. Our Python analysis can find bugs without the annoyance of many false positives. We have already found bugs in the standard library, requests, numpy and many others. In this talk I will briefly describe what static analysis is, how it can be useful to you, and then give an overview of the techniques we use. Intended Audience This talk is aimed at all Python developers, although I expect that those who have used pyflakes, pep8, pylint or mypy in the past will find it the most accessible. I hope that this talk will inspire developers to start using static analysis tools (hopefully ours) and to produce better code as a result. I will assume that the audience knows Python well, but knows little or nothing about static analysis. (lgtm.com is a commercial project that is free to use for open-source software) 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
Ben Nuttall - Physical computing with Raspberry Pi and Python

"Physical computing with Raspberry Pi and Python [EuroPython 2017 - Talk - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] The Raspberry Pi Foundation is working to put the power of digital making in the hands of people all over the world, and is well known for its series of small, cheap single board computers. The Raspberry Pi runs a well supported Linux distro based on Debian, which ships with a variety of programming tools and educational software. Python is the main supported language on the platform, used in many educational resources, and many Python libraries exist for making the most of the Pi platform with other devices. I will cover: Raspberry Pi Foundation mission Raspberry Pi hardware specs Raspbian desktop GPIO pins GPIO Zero (Python library) Picamera Astro Pi (ESA space mission) & Sense HAT More HATs Pi projects Raspberry Pi community 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
Wilhelm Van Der Walt - Lessons learnt building a medical chatbot in Python

"Lessons learnt building a medical chatbot in Python [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] ""To put an accessible and affordable health service in the hands of every person on earth."" Thats our mission at babylon. Leveraging the powers of AI, python and micro services we took a step towards that vision by building a medical chatbot that we shipped in November last year. In this talk I would like to share with you all the things we learnt in the process. This talk is our story. Its a story that starts with an idea and meanders through the dark and dangerous land of things like Graph databases, machine learning and async programming in python. The story is far from over, but we have come to a point where we would like to reflect and share with the community all that we have learnt. More specifically I will cover: - Architecture decisions we made and why we made them - lessons learnt doing async in python at scale - testing chatbots - clinical governance and safety (literally 2 sentences, I promise) - The drawbacks of REST - Why I am glad we did most of it in Python And then of course some time for questions at the end :) 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
EuroPython 2017 - Closing Session

Closing Session [EuroPython 2017 - - 2017-07-14 - Anfiteatro 2] [Rimini, Italy] 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
Enrico Carbognani - A robotic platform for natural and effective human-robot interaction

"A robotic platform for natural and effective human-robot interaction [EuroPython 2017 - Talk - 2017-07-14 - Anfiteatro 1] [Rimini, Italy] This talk deals with the usage of artificial intelligent techniques in humanoid robotics. The focus is on human–robot interaction with the goal of building a robotic platform which embodiments are able to interact in natural and effective way with humans through speech, gestures, and facial expressions. The system is fully implemented in Python and based on the Robotic Operating System (ROS). The talk will describe the hardware and software configuration of our currently NAO based humanoid platform. The strategy has been to use available high level Python libraries for spoken language processing, sentiment analysis, vision, interfacing with Artificial Intelligence applications in order to provide current edge technologies performances. The overall system architecture is based on finite state machines nodes interacting via the ROS communication layer. The main fields of applications that the platform is targeting are: - Entertainment - Education - Field robotics - Home and companion robotics - Hospitality - Robot Assisted Therapy (RAT) We will present the latest status of the platform together with a NAO based demo. 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
Thomas Kluyver - Jupyter notebooks for teaching and learning

"Jupyter notebooks for teaching and learning [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] The Jupyter Notebook (formerly IPython Notebook) has been used to support learning in different scenarios, including taught courses, self-directed learning and reference material such as software documentation. People have used it to learn how to program, and to learn about diverse subjects where computer code is important to human understanding. The aim of this talk is to dive into where and how notebooks can be used most effectively for education. I will first describe notebook-based learning material created by a variety of people for different purposes, deliberately taking a broad definition of ‘education’, along with my own experiences using notebooks to teach Software Carpentry sessions and conference tutorials. I’ll pull out both strengths and limitations of notebooks as an educational tool to explore how they can be used most effectively. In the second part of the talk, I’ll talk about several extra software tools which can make the notebook more valuable in educational settings, including Jupyterhub, with which a teacher can provide notebook servers for a group of students, nbgrader, which allows notebooks to be used as assignments, and cite2c, which can insert academic citations into notebooks. I’ll also touch on commercial offerings integrating the notebook, such as SageMathCloud. 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
Justin Mayer - Replacing passwords with multiple factors: email, OTP, and hardware keys

"Replacing passwords with multiple factors: email, OTP, and hardware keys [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] Passwords have formed the cornerstone of I.T. system authentication for decades, but recent high-profile breaches have underscored the risks of password-based authentication systems. The good news is that we can replace passwords with other factors: email-based authentication one-time passwords (OTP) hardware keys (Yubikeys/U2F, etc.) These factors can be used independently or in conjunction with one another to provide vastly greater security than the traditional username-plus-password combination. Attendees of this talk will walk away with a detailed understanding of: why the traditional username-plus-password combination is failing us why email-based authentication provides no less security overview of one-time passwords and TOTP how to store/retrieve OTP codes, including password manager support state of hardware keys in general, and FIDO U2F standard in particular Attendees will learn how to implement these multi-factor authentication methods in their own Python-based web applications, with primary focus on methods for integrating email-based authentication, one-time passwords, and U2F hardware keys into Django-based projects. 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
Elizaveta Shashkova - Debugging in Python 3.6: Better, Faster, Stronger

"Debugging in Python 3.6: Better, Faster, Stronger [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] Python 3.6 was released in December of 2016 and it has a lot of new cool features. Some of them are quite easy for using: a developer can read, for example, about f-strings and they can start using them in their programs as soon as possible. But sometimes features are not so evident, and a new frame evaluation API is one of them. The new frame evaluation API was introduced to CPython in PEP 523 and it allows to specify a per-interpreter function pointer to handle the evaluation of frames. It might not be evident how to use this new feature in everyday life, but it’s quite easy to understand how to build a fast debugger based on it. In this talk we are going to explain how standard way of debugging in Python works and how a new frame evaluation API may be useful for creating the fast debugger. Also we will consider why such fast debugging was not possible in the previous versions of Python. If someone hasn’t made a final decision to move to Python 3.6 this talk will provide some new reasons to do it. 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
Angela Branaes - Building a full-stack web application with Python, NPM, Webpack and React

"Building a full-stack web application with Python, NPM, Webpack and React [EuroPython 2017 - Talk - 2017-07-10 - Anfiteatro 1] [Rimini, Italy] Creating full-stack applications with Python, NodeJS and React can seem daunting at first. Having made many variations of these, I will show you the ropes, so you too can discover that it is in fact easy to get going. In this talk you will learn to create a full-stack web application in Python, with a Nodejs and React front-end. I will provide you with an easy-to- follow walkthrough of the process, and you’ll exit this talk feeling confident that you can now create your own full-stack web application. 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