EuroPython 2018
2018
List of videos

EuroPython 2018 - Opening Session
Opening session [EuroPython 2018 - - 2018-07-25 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
David Beazley - Die Threads
Die Threads [EuroPython 2018 - Keynote - 2018-07-25 - Smarkets] [Edinburgh, UK] By David Beazley In the brave new world of async, threads are now a thing of the past. Or are they not? License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Isabel Lopez - ETL pipeline to achieve reliability at scale
ETL pipeline to achieve reliability at scale [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Isabel Lopez In an online betting exchange, thousands of money related transactions are generated per minute. This data flow transforms a common and, in general, tedious task such as accounting into an interesting big data engineering problem. At Smarkets, accounting reports serve two main purposes: housekeeping of our financial operations and documentation for the relevant regulation authorities. In both cases, reliability and accuracy are crucial in the final result. The fact that these reports are generated daily, the need to cope with failure when retrieving data from previous days, and the fast growing transaction volume obsoleted the original accounting system and required a new pipeline that could scale. This talk presents the ETL pipeline designed to meet the constraints highlighted above, and explains the motivations behind the tech stack chosen for the job, which includes Python3, Luigi and Spark among others. These topics will be covered by describing the main technical problems solved with our design: - Fault tolerance and reliability, i.e ability to identify faulty steps and only rerun those instead of the whole pipeline. - Fast input/output. - Fast computations. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Guillem Duran - Hacking Reinforcement Learning
Hacking Reinforcement Learning [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Guillem Duran Creating huge datasets of top performing examples for Reinforcement Learning (RL) has always been tricky, but if we allow ourselves to cheat a bit it can be done very easily. During this talk, I will present a new family of algorithms that allow to efficiently generate very high quality samples for any known RL environment. This new generation of planning algorithms achieves a performance which is several orders of magnitude higher than any other existing alternative, while offering linear time complexity and good scalability. This talk will be a practical example of how we can use new tools for hacking any reinforcement learning environment, and make it generate superhuman level games. Hacking RL, as any other hacking process will be divided in four phases: During information gathering, I will briefly explain what are the main ideas behind Reinforcement Learning. I will also talk about how our theory (FractalAI) came to be, and what are the fundamental concepts behind it. We will find an attack vector against the environment API, and explain how it can be exploited. I will explain the fundamental concepts needed to build a new generation of exploits, that will allow us to have complete control over the data the environment produces. This is the time to test the new exploits and to show a proof of concept. We will exploit the attack vector to gain access to the environment. Using only a laptop I will show how it is possible to sample data which surpasses human performance way faster than real time. Once we have gained control of the environment, we will measure how well the exploits work, and how well the techniques presented can generalize to other types of environments. I want the talk to be as simple and fast as possible, with a lot of graphical examples, videos, and a Jupyter notebook. The Q&A session is the time to apply some social engineering to get me to talk about the details that you find more interesting. I have prepared additional material covering the most common questions and concerns, but feel free to ask whatever you want, I love challenging questions ;) License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Dimiter Naydenov - All You Need is Pandas: Unexpected Success Stories
All You Need is Pandas: Unexpected Success Stories [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Dimiter Naydenov Learning to use the awesome Pandas toolkit helped me immensely in lots of ways. Finding novel, efficient solutions to complex day-to-day problems with Pandas not only saves time, but can be fun and rewarding experience. In this talk I'll present use cases I had to solve, but the "traditional" approach proved tough and/or otherwise frustrating implement nicely. Since I was just starting to learn Pandas, decided to try an alternative solution with it. What I learned changed the way I think about data processing with Python, and it only got better since! The use cases deals with extracting pen strokes from handwritten SVG samples, and recomposing them into reusable letters and numbers. When you need to compare each stroke to all others, often more than once, resulted in inefficient, slow, and hard to maintain code. Even a naive Pandas approach with loops helped to reduce both the memory footprint, and improve the performance considerably! Improving the implementation further, vectorizing inner loops, and taking advantage of multi-index operations, I managed to get the same results, using less memory and a lot faster (by orders of magnitude). License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Antonia Mey - How is python used in biomolecular sciences?
How is python used in biomolecular sciences? [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Antonia Mey In the last ten years scientists working on computational problems involving proteins and other small molecules have largely moved to using python when developing simulation and data analysis tools allowing for a fast prototyping and development of new ideas. One big challenge is dealing with the compatibility of different tools and using these to create very complex adaptive, yet robust workflows in order to be able to guide cutting edge experiments e.g. predicting how well a small drug like molecule can bind to a protein that could serve as a target for a new drug. The talk will give a gentle introduction to what kind of python related tools are available in the field of computational molecular biology, how they are used, and what kind of complex workflows scientist have to solve. I will then introduce BioSimSpace an open source python library and flagship project of the CCPBioSim consortium in the UK, which provides a common API to avoid having to learn many individual tools facing compatibility and dependency challenges allowing scientists to focus on the scientific question at hand and not solving programming challenges. BioSimSpace allows fast and interoperable building of workflow components (nodes) for bimolecular problems, which can easily be used on a variety of different computational resources. In particular I will introduce the cloud facilities available for fast prototyping using a Jupyter notebook interface. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Stephane Wirtel - What's new in Python 3 7
What's new in Python 3.7 [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Stephane Wirtel Scheduled for release in mid-June before the conference, Python 3.7 is shaping up to be a feature-packed release! This talk will cover all the new features of Python 3.7, including the Data Classes and the Context Variables for the asynchronous programming with asyncio. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ronan Lamy - Adventures in compatibility emulating CPython's C API in PyPy
Adventures in compatibility: emulating CPython's C API in PyPy [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Ronan Lamy PyPy is a fast and compliant implementation of Python. In other words, it's an interpreter for the Python language that can act as a full replacement for the reference interpreter, CPython. It's optimised to enable efficient just-in-time compilation of Python code to machine code, and has releases matching versions 2.7, 3.5 and soon(ish) 3.6. The PyPy project also developed cffi as a clean and efficient way of interfacing with C code. However, many libraries in the Python ecosystem are implemented as C extensions, which target CPython's C API. Many others use Cython, which builds C extensions under the hood. Therefore, PyPy needs an emulation layer for the C API. This emulation needs to bridge the differences between the implementation languages and the object models of CPython and PyPy. The solution is called cpyext. It's implemented in a mixture of RPython and C, with most of the API functions and macros implemented in RPython. cpyext exposes PyObjects to the extension code that appear similar to CPython objects (as long as extension writers stay within the fuzzily defined boundaries of the public API) but are merely 'shadows' of the real PyPy objects. After a brief presentation of PyPy, its goals, and its current statuts and roadmap, this talk will dive into the vexed topic of its handling of C extensions. By the end of it, the audience should understand the operating principles of cpyext and have a clearer understanding of what happens when you install and run numpy, for instance, on top of PyPy. Some basic familiarity with CPython internals and how C extensions are made will be assumed. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Nick Radcliffe - Quantum Computing a Very Gentle Glimpse into a Possible Future
Quantum Computing: a Very Gentle Glimpse into a Possible Future [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Nick Radcliffe This talk will aim to demystify quantum computing and will assume no prior knowledge. The speaker, while having studied Quantum Field Theory many years ago, has only relatively recently started learning properly about Quantum Computing, and is going to try to take advantage of the fact that the ideas are relatively new to him to explain the key concepts simply, to an audience (probably) consisting mostly of non-experts in quantum computing. Key questions I will try to cover are likely to include * What is quantum mechanics anyway? * What are quantum computers? Are they real? And are they really faster/more powerful than classical computers? * What is a qubit (the quantum computing analogue of a bit) * What problems are likely to be solved well by quantum computers? * How do you program a quantum computer? * How do you get results out of a quantum computer? What kind of results are they anyway? Do you have to visit other universes to get them? * Can you get access to quantum computers online and use Python to program them (kind-of!) * Will quantum computers break all encryption? * What are Shor's and Grover's algorithms and (just possibly) how do they work? * What are the challenges with building practical quantum computers? * What is the Python story with Quantum Computing? License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Jiri Benes - Reliability in distributed systems
Reliability in distributed systems [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Jiri Benes Is your system stable? Do you know what happens if any of your system's dependency will start failing? Do you even know what exactly each part of your system does or did any time in the past? Or how fast you will identify root of the problem in case your system goes down at 2am? The talk focuses on distributed systems (microservices, APIs that communicate with databases, memory, third party services, etc.), monitoring, their failures and recovery in order to help you answer yourself questions above. First part aims on importance of monitoring such systems on several levels - monitoring of hardware, application monitoring, monitoring from outside of the systems, detecting malfunctions based on anomalies within system's data flows. Second part presents several standard techniques for preventing system failure in case of outage of dependency and technique how to recover from inconsistent state after outage. Content of presentation is helpful and interesting for beginners and intermediates. Senior developers and developers working on reliable distributed systems should bear in mind content of this presentation and master shown 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Hayley Denbraver - Recursion, Fractals, and the Python Turtle Module
Recursion, Fractals, and the Python Turtle Module [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Hayley Denbraver To understand recursion you must first understand recursion. Alternatively, you could come to a talk that will demonstrate the basics of recursion, using fractals drawn by the python turtle module! What are fractals? Fractals are psychedelic designs that appear basically the same regardless of scale. They also appear all over nature–consider how a tree trunk and branches is similar in structure to branches and twigs or how a wave is made of mini waves. Best of all, fractals can be constructed using recursive functions. What is the turtle module? It is part of the standard python library that can be used to draw amazing things and is commonly used as a tool for learning to code. Come for the recursion, stay for the amazing fractals, and leave knowing that no turtles were harmed in the making of this talk. This talk is suitable for all python enthusiasts. Those who love mathematics will love this talk. Advanced developers will learn more about a tool that can be used to teach people to code. There is something for everyone. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Christian Heimes - SSLError, now what?
SSLError, now what? [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Christian Heimes TLS/SSL is the most important and widely-used protocol for secure and encrypted communication, e.g. HTTPS. It offers more than just encryption. TLS also ensures data integrity and strong authentication with X.509 certificates. But it provides merely a false sense of security, if you use it wrong. Have you ever encountered ssl.SSLError: [SSL: CERTIFICATE em VERIFY/ em FAILED], while connecting to a server, but you didn’t understand what is going on? Are you running production code without TLS/SSL protection or with certificate validation disabled, because you couldn’t figure out how to make it work correctly? I’ll give you the rundown of the basic cryptographic building blocks, protocol handshake, inner structure of certificates, and PKI. You’ll learn about the best practices, debugging tools and tips how to diagnose TLS/SSL and how to deal with certificates. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Becky Smith - Python 2 is dead! Drag your old code into the modern age
Python 2 is dead! Drag your old code into the modern age. [EuroPython 2018 - Talk - 2018-07-25 - Smarkets] [Edinburgh, UK] By Becky Smith The clock is ticking on Python 2.7, with support to be dropped in January 2020. With major dependencies such as Django, NumPy and pandas moving to Python 3 only, the time has come for even big established codebases to consider upgrading. Many organisations are still postponing for various reasons; we will attempt to demonstrate that with a bit of planning and perseverance, and the assistance of some handy tools, we can embrace the future! This session will provide a first-hand perspective on how we upgraded a large (~65,000 lines of python code) 8-year-old Django project with multiple external dependencies from Python 2.7 to Python 3.6. We will briefly discuss the benefits of upgrading to Python 3, and architectural considerations. The session will primarily focus on the practicalities of upgrading the code itself. We will not try to provide a single “best” solution for upgrading to Python 3, but rather will introduce some of the available tools, provide an insight into how we used them, and their advantages and disadvantages from our experience. We will discuss preparatory steps and approaches, strategies for dealing with external dependencies, and “gotchas” that we encountered during the process. The aim of this session is to provide an example of how a Python 3 upgrade on an established commercial product can be successfully completed, and to furnish audience members with a set of tools and strategies to help them with their own projects. Prerequisites: basic knowledge of 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Antonio Verardi, Flavien Raynaud - How to write Rust instead of C, and get away with it yes, it's a
How to write Rust instead of C, and get away with it (yes, it's a Python talk) [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Antonio Verardi, Flavien Raynaud Have you ever tried optimizing a super-slow Python application and thought: “Oh! I wish I could just write this bit it in Rust”? Well, turns out you can! We will show you how Rust is a better alternative than C to make your programs lightning fast, and how to get away with it; without your users even noticing. As Infrastructure Engineers at Yelp, the challenge we face everyday is: scale. Yelp is mostly a Python shop and while this is great for development velocity, our work often revolves around making Python applications run faster. Until now, we have been using different techniques: faster interpreters, or, more often, C code. Given its safety guarantees, performance and promise of better tooling than C, we decided we had to give Rust a try. The initial results helped reinforce that there was a lot of opportunity for Rust to play an important role in our production code. Yelp heavily relies on the Apache Avro (https://avro.apache.org/) serialization format for its internal infrastructure. During the talk, we will show how we implemented an Avro serialization/deserialization library in Rust, how we were able to call it from Python (and in theory from any other language) with very little code, using tools such as cbindgen (https://github.com/eqrion/cbindgen/), CFFI (https://cffi.readthedocs.io/en/latest/) and Milksnake (https://github.com/getsentry/milksnake/). This talk would outline how easy it is to write performant code in a language like Rust and call it from Python applications without users even realizing it, making this a great solution for production services. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Daniele Procida - The naïve programmer
The naïve programmer [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Daniele Procida Since Picasso encountered Henri Rousseau over a century ago, modern art has been acutely aware of the value of the contributions that the naïve artist can make. Art negotiates the relationship between sophistication and naïvety with care and intelligence. What does our programming culture make of the naïve programmer? What can programming gain or learn from this encounter? The naïve programmer is simply an unsophisticated programmer. Nobody is born sophisticated. Even the most sophisticated programmers were once naïve programmers. What's more, the adoption of programming simply as a tool to solve immediate problems, by ever more people without any formal training, means that the number of naïve programmers will become greater, not less. Are we ready for this? This talk will explore the relationship, illuminating it with examples from the world of painting, art and music, and will offer some lessons that our own industry and culture should be ready to learn from. (This talk will already have been presented as a keynote at DjangoCon Europe 2018) License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Almar Klein - Let’s embrace WebAssembly!
Let’s embrace WebAssembly! [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Almar Klein WebAssembly (WASM) is an open, low level binary format designed to be compact and run at native speed, while being memory-safe. WASM is primarily intended to run code in browsers, but its by no means limited to this. This makes it an interesting intermediate language (IR); code that compiles to WASM will (in the future) run basically anywhere. In short: WASM is coming and its great! Unsurprisingly, WASM is being embraced by many communities, such as C++, Rust, Lua, and .NET. Sadly, there does not seem to be a lot of enthusiasm from the Python community yet… Perhaps this is because Python is interpreted and can therefore not (easily) use WASM as a compilation target. It should be possible to compile a Python interpreter (like CPython or Pypy) to WASM and thereby run Python code in a browser. But the result would be pretty heavy-weight, so it would arguably not be a very practical. Within the PPCI project (a pure Python compiler infrastructure) tooling has been developed to load, inspect, compile and even run WASM modules. This allows combining WASM and Python in new ways. In this talk we discuss two approaches by which the Python community might embrace WASM. Firstly, various projects already exist that compile Python functions to other languages (e.g. Numba, PScript), and we have type annotations. If Python functions would be compiled to WASM, the resulting code would run in any WASM runtime (e.g. the browser). This will be demonstrated with an example, for which the resulting code can be run either in a browser or inside Python itself. In either case, it’s pretty darn fast. Secondly, rather than em using /em WASM, it might be interesting for Python to function as a platform to em run /em and em bind /em WASM modules. Two of Python’s greater strengths are its rich ecosystem and its ability to glue things together. Let’s build on that! Imagine creating an application that consists of multiple WASM modules, perhaps compiled from different languages, and binding these together into a single Python app. This will be demonstrated with a game, which is written in Rust, compiled to WASM, and running inside a Python process. The WASM module consumes a drawing API, which is in this case provided by Python, and Python feeds the WASM module with user input. I hope that this talk inspires other Pythonistas to think about the advantages that WASM can bring to our ecosystem, and also about the role that Python can play in the growing WASM 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Anastasiia Tymoshchuk - How to develop your project from an idea to architecture design in 50 minute
How to develop your project from an idea to architecture design in 50 minutes [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Anastasiia Tymoshchuk Have you ever asked yourself: - how and where to start developing a new project from the scratch, - how to choose main components of a new software or how to develop a new feature, - how to decide whether your project needs refactoring, - how to avoid repeating the same issues? This talk will answer all these questions. You will learn: - how to develop the idea from scratch, - how to use principles of Object Oriented Analysis and Design, - how to show amazing architecture design. You will get better understanding where and how to start, analyze and decouple the system, create a clean, clear and extendable architecture. My slides are here: https://atymo.me/projects/presentations/FromIdeaToDesign/ License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Yury Selivanov - Asyncio in Python 3 7 and 3 8
Asyncio in Python 3.7 and 3.8. [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Yury Selivanov The talk is aimed to give attendees a clear picture of new asyncio features in Python 3.7 and give an idea of what to expect in Python 3.8. As a CPython core developer and the lead asyncio maintainer I believe I have a unique perspective to share with EuroPython guests. Python 3.7 boasts a number of new amazing features: sendfile start TLS new high performance buffered protocols context-local state via PEP 567 asyncio.run & create_task & other usability improvements many performance improvements The first part of the talk will be focusing on new APIs to explain them and give ideas how they can be used in production. The second part of the talk will be focused on what to expect to see in asyncio in Python 3.8: new performance tracking & profiling API supervisors & cancel scopes new timeouts API a completely new way of writing asyncio applications Some of these ideas are borrowed from Trio and Curio (two other popular async/await Python frameworks), many are borrowed from languages like Erlang and Scala. One thing I can say for certain is that 3.8 will be the biggest and most interesting asyncio release ever! License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Steve Dower - Python on Windows is Okay, Actually
Python on Windows is Okay, Actually [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Steve Dower Packages that won't install, encodings that don't work, installers that ask too many questions, and having to own a PC are all great reasons to just ignore Windows. Or they would be, if they were true. Despite community perception, more than half of Python usage still happens on Windows, including web development, system administration, and data science, just like on Linux and Mac. And for the most part, Python works the same regardless of what operating system you happen to be using. Still, many library developers will unnecessarily exclude half of their potential audience by not even attempting to be compatible. This session will walk through the things to be aware of when creating cross-platform libraries. From simple things like using pathlib rather than bytestrings, through to all the ways you can get builds and tests running on Windows for free, by the end of this session you will have a checklist of easy tasks for your project that will really enable the whole Python world to benefit from your work. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Peter Babics - Python, Docker, Kubernetes, and beyond ?
Python, Docker, Kubernetes, and beyond ? [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Peter Babics Have you ever tried to manage deployment of multiple python applications through various linux distributions ? If so, you must have heard of Docker and maybe also Kubernetes. Distributing python applications using docker is simple and allows to create static packages containing everything required for them to run. Also it allows to freeze everything, packages, available libraries, files on filesystem. In my speech I would like to tell you about our brief journey, of moving our trading platform from standalone application directly on host system, through deploying it in docker and latter moving it to kubernetes. I will explain our struggles with implementing stable and fast CI using Gitlab CI and Docker, image (package) storage and cleanup of old images and finally I will tell you how we are deploying our platform to kubernetes, with nothing more than yaml-s and templating. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Owen Campbell - Leadership of Technical Teams
Leadership of Technical Teams [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Owen Campbell Over the years, I've led, and been a member of, numerous technical teams on a wide variety of projects. Based on that experience, this talk will describe my personal observations on the role of the leader in that sort of team. The talk will be in 5 sections: Introduction - A bit about my background so you can judge whether to bother staying for the rest. Authority - Where it comes from and the challenges you might face depending on the answer. Priorities - What should you be focussing upon? Style - There are many leadership styles, but what's yours and what's appropriate for technical teams? Process - What's your role in defining and managing process? There is no prior knowledge or experience required whatsoever. The talk is aimed equally at anyone considering a leadership role for the first time or who has been doing so for many years. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Łukasz Kąkol - Pythonic code vs performance
Pythonic code vs. performance [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Łukasz Kąkol Idiomatic Python is beautiful. If you’re new to Python, this talk is for you because I’m going to reveal the charm of python in front of you. I’ll present how boilerplate code can be replaced with idiomatic python. If you’re experienced python developer, this talk is also for you because I’ll compare the performance of the idiomatic code, both from CPU and memory point of view. Some of these results may surprise 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ed Singleton - Autism in development
Autism in development [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Ed Singleton Autism is a condition that correlates with engineering. Many people in the industry are diagnosed autistic, undiagnosed autistic, or near autistic. There are many lessons that can be learned from how to deal with autistic people that are very useful in our industry. These lessons are often also useful when dealing with non-autistic people. There are many lessons on how to deal with your own autism that are useful to undiagnosed autistic people and near autistic people. We will cover the basics of autism, and related conditions. We will cover simple tricks that can make discussions and changes easier in workplaces ("10 Simple tricks to make your autistic colleagues shout less!"). We will also cover techniques you can use for dealing with your own autistic tendencies ("100 coping mechanisms to pretend that you are normal!"). I am a late diagnosis autistic person myself, and will discuss the difference between knowing and not knowing that you are autistic. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Doug Hellmann - reno - A New Way to Manage Release Notes
reno: A New Way to Manage Release Notes [EuroPython 2018 - Talk - 2018-07-25 - Moorfoot] [Edinburgh, UK] By Doug Hellmann reno is a tool for managing release notes in projects that support multiple branches of development, and releases, simultaneously. It solves the problem of managing release notes within patches that fix bugs, and makes it easier to cherry-pick changes between branches (allowing backports or forward ports). This talk will cover the requirements, and constraints, that led us to design and build reno. I will also show how to use it to create notes and publish them in your packages and via Sphinx-based documentation. Then I will talk about the impact reno, and the release notes publishing automation, had on our project and release 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Noam Elfanbaum - Let’s Build a Python Profiler in 25 LOC
Let’s Build a Python Profiler in 25 LOC [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Noam Elfanbaum A profile is a set of statistics that describes how often and for how long various parts of the program executed. Most profilers run inside your Python process. If you’re inside a Python program you generally have pretty easy access to its stack, hence we can gather information about time spent in each level. In this talk we'll build a Python profiler from scratch and so learn about the dynamic nature of Python and how do well-known profilers such as cProfile. We'll also learn the difference between a tracing and a sampling profiler and which one to use in what circumstance. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Hrafn Eiriksson - Asyncio in production
Asyncio in production [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Hrafn Eiriksson Much has been written about asynchronous programming in Python, especially after the introduction of asyncio into the standard library of the language. We've all seen the benchmarks that tell us how asyncio-powered web servers massively outperform their non-asyncio counterparts for trivial routes and we've seen the articles that tell us how to make the move from flask to aiohttp and why we should. Despite all of this, the question remains: How is it to use asyncio in a production setting? What are the pain points of migrating a large application to use asyncio? How does the performance of this real-world application differ after the migration? Is it still just unicorns and fairy tales? The goal of this talk is to address these questions. If you are curious about taking the step from asyncio-dabbling to creating actual mission critical software systems in asyncio; this is the talk for 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Emmanuel Leblond - Trio: A pythonic way to do async programming
Trio: A pythonic way to do async programming [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Emmanuel Leblond Concurrent programs are super useful: think of web apps juggling lots of simultaneous downloads and websocket connections, chat bots tracking multiple concurrent conversations, or web spiders fetching pages in parallel. But writing concurrent programs is complicated, intimidating to newcomers, and often challenging even for experts. Does it have to be? Python is famous for being simple and straightforward; can Python make concurrent programming simple and straightforward too? Trio is an attempt to address this question by the positive ! By taking advantage of new Python 3 features (async/await keywords, async loops and context managers etc.) while dropping legacy concepts that older asynchronous frameworks has to maintain, Trio defines a new set of primitives that make it dramatically easier to write correct concurrent programs. In this talk, we will describe those primitives, and demonstrate how to use them to implement a basic algorithm for speeding up TCP connections. Compared to the best previous Python implementation, our version turns out to be easier to understand, more correct, and dramatically shorter. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Craig Kerstiens - Postgres at any scale
Postgres at any scale [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Craig Kerstiens We’ll start with the basics you need to know as an app developer about interacting with your database, then dig into how you can start to analyze performance. We’ll look at things you need to know for a small application, then the things you should be cautious of as you start to layer in other items you need to be aware of for performance including: Cache hit ratio Index hit ratio Proper use of indexes Bloat Efficient joins Sharding License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Andrey Vlasovskikh - What makes coding for MicroPython different?
What makes coding for MicroPython different? [EuroPython 2018 - Talk - 2018-07-25 - Lammermuir] [Edinburgh, UK] By Andrey Vlasovskikh A microcontroller unit is a CPU, memory modules, and I/O devices on a single chip. There are tens of billions of microcontrollers in world: they are everywhere from watches to cars. Developers program them mostly in C, since their tiny hardware resources make it very hard to use higher-level langauges such as Python. In 2014 the MicroPython project was started with the goal of making it possible to program microcontrollers in Python. Was it hard to make Python work on a device with only 16 KB of RAM? Is MicroPython a Python dialect or is it a different language? I'll start with the most important optimizations and the key differences in the language implementation to give you an idea of what MicroPython really is. Most of us are not contributors to MicroPython though and it's much more important for us to understand how Python coding for microcontrollers is different from, say, web development or scripting. What do you need to learn in order to program your mictrocontroller-based IoT devices? I'll talk about several traits of Python coding for microcontrollers that make it different, but exciting to learn. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Yenny Cheung - Washing away code smells
Washing away code smells [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Yenny Cheung Does your code smell? Have a weird fragrance? It turns out code smells are a real thing and an amazing conceptualization of suboptimal design. This talk helps you identify code smells in Python. It also shows you how to wash them away by the technique of refactoring. You will learn the art of writing Pythonic, clean and maintainable code. Code smells refer to the symptoms of problematic code design. Identifying different types of code smells is the first step to successful refactoring. I will talk through some classic examples: Unnecessary long and complex code Using mutable data structures Uncommunicative naming Coupled code Knowing what to refactor, I will share a few learnings that lead to good quality code: The boy scout rule: always leave the code cleaner than you found it Pythonic data structures: Enum, Namedtuple The art of naming DRY and the separation of concerns principle I will also share tips on using refactoring at your company, which includes convincing your product manager, looking out for code smells during code reviews, and employing automatic tools. The speaker has previously presented on Talk Python To Me Podcast: https://talkpython.fm/episodes/show/150/technical-lessons-learned-from-pythonic-refactoring, and at PyCon.DE: https://www.youtube.com/watch?v=Yq9-b2JKUyU. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Nicola Iarocci - My Story with Python and Open Source
My Story with Python and Open Source [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Nicola Iarocci This is the story of how I (and with me, my company) went from lonely, introvert, C# developer to open-source Python author and maintainer, speaker, trainer, consultant, and all-around community junkie. With some luck, in the process, you will also hear a few hints on how to become a good open source contributor and have a chance to ponder on the pros and cons (yes there are cons too) of going full monty with open source. We will also look at what changed in my company as we slowly switched from closed, in-house eco-systems to the open source field. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Dan Taylor - From Zero to Azure with Python, Docker containers, and Visual Studio Code
From Zero to Azure with Python, Docker containers, and Visual Studio Code [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Dan Taylor In this session we will walk through creating a Python web app with Docker and deploying it to Microsoft Azure using the free, cross-platform, and open-source Visual Studio Code. We will also show using hosted Jupyter notebooks in Azure Notebooks to analyze data, and storing data in CosmosDB using the Azure SDK for Python. If you're excited about Python and want to learn more about the capabilities of Azure, then this session is for you. We will cover all of the basics, no experience with Azure, containers, cloud computing, or Visual Studio Code necessary! License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Anastasiia Tymoshchuk - Python Decorators: Gift or Poison?
Python Decorators: Gift or Poison? [EuroPython 2018 - Talk - 2018-07-25 - Kilsyth] [Edinburgh, UK] By Anastasiia Tymoshchuk Why would you ever need to use decorators in Python? Have you ever had the task when you need to use one function in few places and you really wanted to avoid of code duplicating? For example to add some logging into functions or timers, etc. Decorators in Python are super powerful with these tasks, but at the same time they are super complicated, sometimes even magical. When I started learning Python, Decorators were really like a magic: how to use them, how are they working, lots of questions. The goal is to make the things easier and clear to answer a question: to use or not to use Decorators in your project. What’s in the Talk: - Functions nature in Python - Magic of a Decorator - Basics - When to use Decorators - Examples - Even more Python magic My slides are here: https://atymo.me/projects/presentations/GiftOrPoison/ Code examples: https://github.com/atymoshchuk/python_tutorials License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Romain Dorgueil - Using Bonobo, Airflow and Grafana to visualize your business
Using Bonobo, Airflow and Grafana to visualize your business [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Romain Dorgueil Zero-to-one hands-on introduction to building a business dashboard using Bonobo ETL, Airflow, and a bit of Grafana (because graphs are cool). There is no need of prior knowledge about any of those tools. After a short introduction about the tools, we'll go through the following topics, using the real data of a small SaaS software: One can expect to be able to build a similar system at the end of the talk in a few days (of course, the implementation is only a small part of this process, data is what really matters). «Metrics you watch tend to improve over time» License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Franziska Schropp - How do I get the job I want?
How do I get the job I want? [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Franziska Schropp Engineers are rare, jobs are plenty, so far so good. But what if I don’t just want any job that pays the bills, but the job that will push my career and that I actually enjoy doing every day? If your answer to why you’d like to join company XY is: “Work from home and make good money”, you should not be surprised to not be taken into the next round. But what would be a good answer to that question? What should I say when asked where I see myself in 5 years? There are a lot of subtle aspects to succeeding and failing in the application process, from your initial cover letter to the on site visit meeting the team. As a tech recruiter, I’d like to share with you the best and (sometimes quite entertaining) worst practices in the application process in order to help you get the job you want! License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Florian Wilhelm - Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Florian Wilhelm A recent but quite common observation in industry is that although there is an overall high adoption of data science, many companies struggle to get it into production. Huge teams of well-payed data scientists often present one fancy model after the other to their managers but their proof of concepts never manifest into something business relevant. The frustration grows on both sides, managers and data scientists. In my talk I elaborate on the many reasons why data science to production is such a hard nut to crack. I start with a taxonomy of data use cases in order to easier assess technical requirements. Based thereon, my focus lies on overcoming the two-language-problem which is Python/R loved by data scientists vs. the enterprise-established Java/Scala. From my project experiences I present three different solutions, namely 1) migrating to a single language, 2) reimplementation and 3) usage of a framework. The advantages and disadvantages of each approach is presented and general advices based on the introduced taxonomy is given. Additionally, my talk also addresses organisational as well as problems in quality assurance and deployment. Best practices and further references are presented on a high-level in order to cover all facets of data science to production. With my talk I hope to convey the message that breakdowns on the road from data science to production are rather the rule than the exception, so you are not alone. At the end of my talk, you will have a better understanding of why your team and you are struggling and what to do 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Eulalia Veny - Recipe for text analysis in social media
Recipe for text analysis in social media: [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Eulalia Veny The analysis of text data in social media is gaining more and more importance every day. The need for companies to know what people think and want is key to invest money in providing customers what they want. The first approach to text analysis was mainly statistical, but adding linguistic information has been proven to work well for improving the results. One of the problems that you need to address when analyzing social media is time. People are constantly exchanging information, users write comments every day about what they think of a product, what they do or the places they visit. It is difficult to keep track of everything that happens. Moreover, information is sometimes expressed in short sentences, keywords, or isolated ideas, such as in Tweets. Language is usually unstructured because it is composed of isolated ideas, or without context. I will talk about the problem of text analysis in social media. I will also explain briefly Naïve Bayes classifiers, and how you can easily take advantage of them to analyse sentiment in social media, and I will use an example to show how linguistic information can help improve the results. I will also evaluate the pros and cons of supervised vs unsupervised learning. Finally, I will introduce opinion lexicons, both dictionary based and corpus-based, and how lexicons can be used in semi-supervised learning and supervised learning. If I have time left, I will explain about other use cases of text analysis. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Elisabetta Bergamini - Bad hotel again? Find your perfect match!
Bad hotel again? Find your perfect match! [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Elisabetta Bergamini For most travellers, online reviews play a major role when it comes to choosing which hotel to stay in. But can we actually trust a hotel review? And if yes, how can we select which are the most meaningful and interesting for us among the billions available in platforms such as Booking.com, Tripadvisor, Facebook (just to mention a few)? For 10 years now, at TrustYou we have built processes that analyze terabytes of hotel reviews at a global scale, and strive to understand what people complain about or like in the hotels worldwide. Dealing with a huge amount of reviews written in tens of different languages - each having its own subtle shades of meanings - is the challenge we work on everyday. In this talk, we will show what goes on behind the scenes of the TrustYou Metareview and dive into the technologies and the algorithms that allow us to provide travellers with all the information they need to find the perfect hotel. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Cheuk Ting Ho - Fuzzy Matching Smart Way of Finding Similar Names Using Fuzzywuzzy
Fuzzy Matching - Smart Way of Finding Similar Names Using Fuzzywuzzy [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Cheuk Ting Ho Matching strings should be one of the first natural language processing problem that human encounter since we start use computer to handle data. Unlike numerical value which has an exact logic to compare them, it is very hard to say how alike two strings are for a computer. One may compare them character by character and have an idea of how many characters in the pair of stings are the same. Unfortunately in most application we need computer to perceive strings like we do and therefore we have to use fuzzy matching. Fuzzy matching on names is never straight forward though, the definition of how “difference” of two names are really depends case by case. For example with restaurant names, matching of words like “cafe” “bar” and “restaurant” are consider less valuable then matching of some other less common words. Also, do we consider company names that matches partly (like “Happy Unicorn company” and Happy Unicorn co.”) are the same? In the first half of the talk Levenshtein Distance, a measure of the similarity between two strings, will be explained. Different functions in Fuzzywuzzy like “partial em ratio” and “token/em sort_ratio” will also be explored and compared for difference. It is very important to understand our tool and choose the right one for our task. Then in the second half, we will start tackling the example problem: matching company names, we will show that besides using Fuzzywuzzy, we have to also handle problem like finding and avoid matching of common words and speeding up the matching process by grouping the names. By combining all tricks and techniques that we demonstrate, we will also evaluate how efficient this method is and the advantage of using this method. This talk is for people in all level of Python experience who would like to learn a trick or two and would like to be able to solve similar problems in the future. Theory of how the library works will be explained and It is easy to be pick up even for beginners. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Anmol Krishan Sachdeva - Understanding and Implementing Recurrent Neural Networks using Python
Understanding and Implementing Recurrent Neural Networks using Python [EuroPython 2018 - Talk - 2018-07-25 - PyCharm [PyData]] [Edinburgh, UK] By Anmol Krishan Sachdeva Recurrent Neural Networks (RNNs) have become famous over time due to their property of retaining internal memory. These neural nets are widely used in recognizing patterns in sequences of data, like numerical timer series data, images, handwritten text, spoken words, genome sequences, and much more. Since these nets possess memory, there is a certain analogy that we can make to the human brain in order to learn how RNNs work. RNNs can be thought of as a network of neurons with feedback connections, unlike feedforward connections which exist in other types of Artificial Neural Networks. The flow of talk will be as follows: - Self Introduction - Introduction to Deep Learning - Artificial Neural Networks (ANNs) - Diving DEEP into Recurrent Neural Networks (RNNs) - Comparing Feedforward Networks with Feedback Networks - Quick walkthrough: Implementing RNNs using Python (Keras) - Understanding Backpropagation Through Time (BPTT) and Vanishing Gradient Problem - Towards more sophisticated RNNs: Gated Recurrent Units (GRUs)/Long Short-Term Memory (LSTMs) - End of talk - Questions and Answers Session License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Raniere Silva, Tania Sanchez Monroy - A Jupyter Enhancement Proposal Story
A Jupyter Enhancement Proposal Story [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Raniere Silva, Tania Sanchez Monroy Python users should be familiar with the concept of Python Enhancement Proposals (PEPs), the way that the Python language evolves over time. In a similar fashion, the Jupyter project has Jupyter Enhancement Proposals (JEPs). This talk with cover the proposer first-hand experience when submiting JEP 23 - Add Template as Metatada enhancement proposal from it's beginning, during EuroPython 2017, up to its current status. We will, in addition, present efforts made as part of the OpenDreamKit project to perform Jupyter notebooks conversions using custom metadata, templates, and exporters, in a programmatic way. Outline 0:00 - 0:05 Who are we? We are impostors! 0:05 - 0:10 Our previous experience with Jupyter Notebook. We will talk about the time that Software Carpentry used Jupyter Notebook for their lesson creation and OpenDreamKit Jupyter notebook programmatic notebooks conversion. 0:10 - 0:15 You are not alone. We will talk how the idea for the Jupyter Enhancement Proposals (JEPs) borned at EuroPython 2017 Help Desk 0:15 - 0:20 Writing our first Jupyter Enhancement Proposals. We will cover our steps to create the pull request required by the Jupyter Project. 0:20 - 0:25 What is the current status of the Jupyter Enhancement Proposals? We will cover any progress from the time of this talk proposal submission and the date of it presentation. 0:25 - 0:30 Time for questions License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Peter Hoffmann - Using Pandas and Dask to work with large columnar datasets in Apache Parquet
Using Pandas and Dask to work with large columnar datasets in Apache Parquet [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Peter Hoffmann Apache Parquet Data Format Apache Parquet is a binary, efficient columnar data format. It uses various techniques to store data in a CPU and I/O efficient way like row groups, compression for pages in column chunks or dictionary encoding for columns. Index hints and statistics to quickly skip over chunks of irrelevant data enable efficient queries on large amount of data. Apache Parquet with Pandas & Dask Apache Parquet files can be read into Pandas DataFrames with the two libraries fastparquet and Apache Arrow. While Pandas is mostly used to work with data that fits into memory, Apache Dask allows us to work with data larger then memory and even larger than local disk space. Data can be split up into partitions and stored in cloud object storage systems like Amazon S3 or Azure Storage. Using Metadata from the partiton filenames, parquet column statistics and dictonary filtering allows faster performance for selective queries without reading all data. This talk will show how use partitioning, row group skipping and general data layout to speed up queries on large amount of data. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Michele Simionato - Python in scientific computing: what works and what doesn't
Python in scientific computing: what works and what doesn't [EuroPython 2018 - Talk - 2018-07-25 - Fintry [PyData]] [Edinburgh, UK] By Michele Simionato There is no want of technologies for doing scientific calculations in Python. In this talk I will share some hard-learned knowledge about what works and what doesn't with the libraries we are using at GEM (the Global Earthquake Model foundation). I will show how the following libraries fare with respect to our main concerns of performance, simplicity, reliability and portability and I will talk about several library bugs we found and had to work around. I will also talk about some libraries that we do not use (such as cython, numba, dask, pytables, ...) and the reason why we do not use them. Hopefully this will be useful to people using or planning to use a similar software stack. My slides are here: https://gitpitch.com/micheles/papers/europython2018 License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marco Buttu - White Mars living far away from any form of life
White Mars: living far away from any form of life [EuroPython 2018 - Keynote - 2018-07-25 - Smarkets] [Edinburgh, UK] By Marco Buttu Concordia Station is a French/Italian facility located inside Antarctica, in a plateau called Dome-C, in the middle of nowhere. A dark and cold place: no Sun from May to August, temperatures around -80 Celsius degress, no life. Here I am living and performing scientific research with other 12 collegues from Italy, France and Austria. We are the most isolated people on Earth, more than the austronauts in the International Space Station. There is no way to move from Concordia until November, and no one can come. It is like to live in another planet, and that is why the European Space Agency is interested in making bio-medical research on us, in order to better understand how the human body behaves in a such extraterrestrial environment. We will introduce our studies, describe this place and our life here, and of course also speak about 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
EuroPython 2018 - Lightning talks on Wednesday, July 25
Lightning talks [EuroPython 2018 - - 2018-07-25 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Nicole Harris - PyPI: Past, Present and Future
PyPI: Past, Present and Future [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Nicole Harris The Python Package Index (PyPI) is the principal repository of software packages for the Python programming language. In May 2018, PyPI served 12.3 billion HTTP requests, with 1.4 million people visiting pypi.org via their web browser. The Python community depends on PyPI for the ongoing functioning of the entire Python ecosystem. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Stefan Behnel - Cython to speed up your Python code
Cython to speed up your Python code [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Stefan Behnel Cython is not only a very fast and comfortable way to talk to native code and libraries, it is also a widely used tool for speeding up Python code. The Cython compiler translates Python code to C or C++ code, and applies many static optimisations that make Python code run visibly faster than in the interpreter. But even better, it supports static type annotations that allow direct use of C/C++ data types and functions, which the compiler uses to convert and optimise the code into fast, native C. The tight integration of all three languages, Python, C and C++, makes it possible to freely mix Python features like generators and comprehensions with C/C++ features like native data types, pointer arithmetic or manually tuned memory management in the same code. This talk by a core developer introduces the Cython compiler by interactive code examples, and shows how you can use it to speed up your Python code. You will learn how you can profile a Python module and use Cython to compile and optimise it into a fast binary extension module. All of that, without losing the ability to run it through common development tools like static analysers or coverage test tools. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Radoslav Georgiev - Django structure for scale and longevity
Django structure for scale and longevity [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Radoslav Georgiev Django structure for scale and longevity Why Django is great. But as we add new features, as our dev team grows & the software needs to be stable on production, things can get quite messy. We are going to look at some common patterns, derived from experience, on how to structure your Django project for scale and longevity. What Main topics are: Django service layer or where should business logic live? Using Django Rest Framework in a clean & repeatable way & combining it with the service layer. Testing everything that matters, without repeating ourselves in different tests. We are going to talk about when to rely on existing abstraction so it's actually helpful & when to avoid existing abstraction, and code things ourselves. The examples showed in this talk are derived from working with Django in the last 5 years on projects with: Daily production usage & production deploys. Dozens of apps. Hundreds of models & APIs. Tens of integrations working simultaneously. Teams of 5 to 10 people. Who Key takeaways from the talk: Increased productivity when developing with Django. Deeper understanding of the software development process with Django. Demo project with everything mentioned in it. The talk is great for all levels of Django knowledge - from beginners to advanced users & teams. How The main way of getting the point across is going to be by showing regular code, talking how it can get messy & then following up with examples of improving that code. Hopefully this talk will start a lot of discussion afterwards. Breakdown of the talk: Django service layer Fat models or fat views? Where do I put my business logic? What is a service & what goes into a service? What is a selector & what goes into a selector? General Django structure How many apps should I have? Structuring your code so youр team can be more productive and have less conflicts. Common modules & utilities. Doing APIs with Django Rest Framework Splitting APIs in 2 groups - "giving data" and "taking data" Using a lot of generics for "give data" When do to selectors? Using no generics for "take data" (APIView + Services) Handling errors from services Inlining serializers & avoiding serializers reuse A neat inline_serializer util Introducing general error formatting for your API Testing all of that - what should be & not be tested? License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Naomi Ceder - Iteration Inside Out Python's Iteration Protocol
Iteration Inside Out - Python's Iteration Protocol [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Naomi Ceder Using for loops and list comprehensions in Python is basic and quite common, right? But how does iteration in Python actually work "under the hood"? The words "iterator" and "iterable" each occur over 500 times in the Python documentation, but what does an iterator actually do, as opposed to an iterable? And how do they do it? Learn the details as we turn the iteration protocol inside out, with live coded demonstrations along the way. This talk will start from the way Python iterates of over a sequence, in comparison with iterating by index, like C. The key point of iterating over a sequence is that something needs to track which item in the sequence is next, which is something that Python's iteration protocol manages. The iterable section will demonstrate creating a simple object that returns items by index (e.g., a fibonacci series), showing that getitem is really all you need for an iterable, since an iterator is created for such objects when iterated upon. BUT, this doesn't answer the question of how Python keeps track of which item is next. The iterator section answers that question by converting the iterable just created to an iterator - adding iter and next methods and showing how the iterator saves state and essentially drives the iteration protocol. Having an accurate understanding of iteration protocol will help developing Pythonistas reason better about both iterating over existing objects and creating their own iterables and iterators. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Jukka Lehtosalo - Getting Started with Mypy and Type Checking
Getting Started with Mypy and Type Checking [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Jukka Lehtosalo Ever wondered if you should try type checking in your Python project, or what it takes to get started with mypy? I will show how to introduce type checking the easy way, one step at a time. Dropbox was an early adopter of type checking and mypy, and we've been gradually adding type annotations to our large production codebases since 2016. Engineers love how type annotations improve the clarity of code, and how mypy can surface hard-to-find bugs. We've learned a lot in the process of annotating millions of lines of code, and in this talk you'll learn battle-tested approaches for adding type checking to an existing codebase. I expect no previous experience with mypy. You'll benefit the most if you've worked on a project with multiple developers. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Jose Manuel Ortega - Microservices and Serverless in Python projects
Microservices and Serverless in Python projects [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Jose Manuel Ortega Monoliths, microservices and now Serverless. Function as a Service (FaaS) platforms give us new ways to attack old problems. The possibility of executing functions as a service allows designing scalable and highly parallel applications, but on the other hand, this kind of applications require a particular programming style. For example, bundling dependencies and managing state is not trivial. However, there are plenty of tools and frameworks to help you code serverless applications with Python, and once you get started it is not complicated. In this talk we will mention the advantages of Serverless and we will focus on the situations in which we can introduce it into our Python projects. We will use AWS Lambda for the examples. These could be the main talking points: Introducing Serverless and Function as a Service (FaaS) in Python projects Advantages of Microservices and Serverless AWS Lambda functions with chalice Testing AWS lambda with docker License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Guillaume Gelin - PEP 557* versus the world
PEP 557* versus the world [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Guillaume Gelin Python 3.7 will ship with a new module called dataclasses, which has been defined in PEP 557. What is this module? What are the problems that PEP 557 authors try to solve? What was the chosen design, and why? How does it compare against the tools that already exist? This talk will deeply cover dataclasses, but also attrs box, thingy and others. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Francisco Javier Aceituno Lapido - Developing in a black hole: vim, tmux, httpie and jq
Developing in a black hole: vim, tmux, httpie and jq [EuroPython 2018 - Talk - 2018-07-26 - Moorfoot] [Edinburgh, UK] By Francisco Javier Aceituno Lapido "Productivity depends on the knowledge you have of the tools used." Do you feel that the development tools you use are heavy? Do you think that they make you less productive? Do you want to have maximum productivity without lifting your hands from the keyboard? If so, this talk is for you. In this talk, I will show what are the tools I use every day in software development at OnTruck and how you can integrate the text editor, vim the terminal multiplexer, tmux the HTTP client, httpie and the json processor, jq to get a very productive development environment, all running on a simple terminal. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Steve Barnes - Why develop a CLI Command Line Interface first?
Why develop a CLI (Command Line Interface) first? [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Steve Barnes One of the core concepts of Application Development, (not just in python), is the separation between the Business Logic and the User Interface. However there is a strong temptation to start with the user interface and add the business logic to it some methodologies emphasize this with the process of prototyping the (G)UI first. The danger is that your business logic code can get too entangled with the UI and a change of platform or framework becomes almost impossible. This presentation will show how to maintain a clear separation between the Business Logic and the User Interface by starting with a command line interface using argparse and growing a GUI on top. We will cover: - Why maintain the seperation - Using argparse - Adding a GUI layer with wxPython - Automating the GUI generation - Adding a web interface - Testing advantages of this approach - Scripting advantages - Some packaging models. Slides and Samples all uploaded to https://github.com/GadgetSteve/EP2018_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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Nina Zakharenko - Code Review Skills for Pythonistas
Code Review Skills for Pythonistas [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Nina Zakharenko As teams and projects grow, code review becomes increasingly important to support the maintainability of complex codebases. In this talk, I'll cover guidelines for writing consistent python code beyond pep8, how to look out for common python gotchas, and what python tools are available to automate various parts of the review process. Most importantly, I'll cover the human aspect of code reviews - how we can be better at approaching reviews with empathy and understanding from the perspective of both a reviewer and a submitter. Following these successful code review practices will lead to happier teams and healthier code bases. This talk is useful for python developers with any amount of experience. No prerequisite knowledge is necessary. - For those who are just starting out, it will be a great general overview. - Intermediate developers may not know about the wide variety of tooling that's available. - Advanced developers will learn techniques for performing code reviews with empathy. This talk will enable you to have better code reviews on your teams at work, and a better approach to code reviews in open source projects. You'll leave with 3 main takeaways: 1. Code Reviews are most effective when conducted with empathy. If you do reviews with growth and learning in mind, they become tools for sharing knowledge instead of an opportunity to bruise egos or show off esoteric knowledge. 2. Python has powerful tooling available for code reviews such as pep8 as a style guide, pylint as a linter, coverage.py to identify test coverage, and vulture to identify dead code. 3. That python style guides beyond pep8 have clear benefits in terms of producing more consistent code that's easier to review and easier to maintain. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Martin Angelov - Proper Django Testing
Proper Django Testing [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Martin Angelov I'm currently working in a Django project, We have a lot of tests (~ 2000) and a fair amount of code coverage currently. The system and the requirements of the client grows everyday (like in every other project these days). I've convinced that the effort we put in making each of these tests pays off daily. Speaking with other Django and Python developers I've noticed that people often "overengineer" their unit tests and they usually tend to break their principles. In this presentation I will talk mainly about unit tests. - what packages we use and how and when to use them (properly). We will take a look on how we structure our projects and how this structure actually helps us write proper unit tests. I will start with the very basic tests and continue with the mocking technique. In the end I'm going to refer to other testing methods (integration, E2E, validation testing, visual regression, etc.). The goal of this talk is to make people better in testing and to show them how these skills will fasten the development process and help them maintain their project and it's quality. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Lynn Root - asyncio in Practice: We Did It Wrong
asyncio in Practice: We Did It Wrong [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Lynn Root This talk is aimed at those that have at least intermediate experience in Python and have played around with asynchronous Python using asyncio or other libraries. I want the audience to learn from my mistakes! For instance, how easy it is to get into “callback hell” (and how to avoid/get out of it), how to screw up thread safety and deadlock yourself, and making code async but not actually concurrent. I'll talk through some anti-patterns and best practices that I learned the hard way. This includes proper concurrency, calling coroutines from synchronous code, working with threads and threadsafety, properly shutting down an async programs, and hidden "gotchas". License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Anton Caceres - Python and Web Sockets
Python and Web Sockets [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Anton Caceres Modern web-apps require bi-directional communication, reacting not only to user actions but also to server events. This can be achieved elegantly using Web Sockets, a protocol standardized by W3C to be a default tool for full-duplex connections on the Web. Although most web-frameworks do not support Web Socket integration out of the box, Python has multiple options available making it a piece of cake. This talk showcases integrating Web Sockets in Python web-apps, focusing on situations that can make good use of it and presenting implementations with most popular frameworks: Tornado and Django. We will explore a similar style but different underlying technologies of both, and finish with a live 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Aaron Bassett - Hello to the World in 8 Web Frameworks micro, batteries included & async
Hello to the World in 8 Web Frameworks (micro, batteries included & async) [EuroPython 2018 - Talk - 2018-07-26 - Lammermuir] [Edinburgh, UK] By Aaron Bassett Join us for a Phileas Fogg inspired whirlwind tour of eight Python web frameworks. "Had he programmed? It was likely, for no one seemed to know web frameworks more familiarly; there was no framework so obscure that he did not appear to have an intimate acquaintance with it. He must have developed in everything, at least in the spirit." We'll start with the current crop of microframeworks, showing how to achieve the same task in each, before progressing to "Batteries included" and the more specialised async frameworks. For developers who perhaps have only used a single framework, this talk gives them an opportunity to get out and explore the world (of web frameworks) and broaden their horizons, with plenty of Jules Verne inspired fun along the way. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Žan Anderle - JavaScript for Python Developers
JavaScript for Python Developers [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Žan Anderle Having a hard time keeping track of where the modern JavaScript is going? Are you familiar only with jQuery and you want to know more? Or maybe you’re not familiar with JavaScript at all and want to learn it but you don’t know where to start? Then this talk is for you! You’ll learn about modern JavaScript from a perspective of a Python developer. By the end of the talk you’ll know everything you need to know about the language, its ecosystem, and different tools and frameworks. You’ll be able to start using JavaScript more confidently and be familiar with different tools that are at your disposal. We’ll go over all the things I wish I'd known when I first got started with JavaScript.: Basics of the language (types, operators, data structures, functions, modules, etc.) and how they are similar to or different from Python. Overview of the commonly used development and build tools. Overview of the popular frontend frameworks. A look into the newest features and Typescript. How to get started and make sense of everything with so much going 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Windel Bouwman - A Python implementation in Rust?
A Python implementation in Rust? [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Windel Bouwman Rust is a fairly new programming language aimed as a competitor of C. There are already attempts to write extension modules in rust and load them into CPython. A whole new approach would be to re-implement the Python language in rust. This is what the rspython project is about: implementing a python interpreter in rust. Rust already has many features such as vectors, hashmaps and strings as unicode. There also exist already modules for regular expressions and dealing with files, so a lot can be re-used in this area. During this talk we will dive into rust and python and the design of the rspython. We will present some challenges and opportunities. Also we will show the current state of this project in a 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Stephan Jaensch - Type annotations with larger codebases
Type annotations with larger codebases [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Stephan Jaensch You've heard about type annotations, you know they help reduce bugs and improve documentation especially for large codebases, and you've attended an introductory talk or read a tutorial about using them. But how do you get started using them with your big, existing codebase? How do you make sure your colleagues will be annotating new code they write - or existing code they're changing? And how do you get around some of the issues you might run into when using the still-beta type checker mypy on your codebase? This talk will start where the typical introductory Python type annotation talks end and discuss the real-world challenges when starting to annotate types with an existing codebase of tens or hundreds of thousands of lines of code. I'll walk you through best practices learned from doing just that at Yelp, telling you about some of the roadblocks we hit (and how we got past them). We'll also take a look at: - how you can get the most out of type annotations even with non-annotated third-party libraries - how to deal with code patterns that currently don't always work well with annotations - when the only way to get proper type checking is through refactoring your code. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Mark Shannon - Is your code tainted? Finding security vulnerabilities using taint tracking
Is your code tainted? Finding security vulnerabilities using taint-tracking. [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Mark Shannon "Taint tracking" is a technique used in code analysis to find security vulnerabilities and other problems. Any data that comes from an untrusted source, for example a HTTP request, is treated as "tainted". If that "tainted" data is able to reach a vulnerable part of your code, then you have a problem. Sophisticated code analysis tools can track this data, and reveal potential security problems. Examples of the sort of problem that can be found include cross-site scripting (XSS), code injection, SQL injection and others. In this talk I will show how taint tracking analysis works in practice, introducing the concepts of source, sink and sanitizer. I will then demonstrate using taint tracking to find a XSS vulnerability in a django app. (We will chose a project that is designed to teach django security, where the vulnerability is deliberate.) I will also explain how thinking in terms of "taint" can help you write safer code, even without access to code analysis. During this talk I will use the code analysis tools on lgtm.com to demonstrate the analysis. lgtm.com is free to use for open-source projects. A paid version is available. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Mario Corchero - Mocks, dummies, stubs & spies
Mocks, fakes, dummies, stubs and spies: Successfully isolating the snake [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Mario Corchero Ever wonder what mocks, fakes, dummies stubs or spies are? Or what the differences are between them and when one should be used instead of another? We will take a deep look into these concepts, what they mean and examples on how to use/create them in Python. In this talk, we will quickly explore the reasons for using mock and how it works, quickly jumping into the different concepts of testing doubles and how they can be used in Python. The talk will include as part of the examples from some features in mock coming in Python 3.7 that might change how usual mocking is performed. The talk builds on the writings of Gerard Meszaros and Martin Fowler about testing doubles, focusing on how to apply them to Python. This session, which will review test isolation concepts and the unittest.mock module, is structured in a way that both beginners and intermediate developers will learn from it. A basic knowledge of testing is recommended. Intermediate developers will leave the room with a clear understanding of the tools - further than just using simple mocks - to successfully fake dependencies. Multiple “not so well known” features of unittest.mock will be presented so we can shape those objects to behave functionally different. Unittest.mock is an extremely useful library which is commonly underused, this talk aims to bring clarity into stubbing in general and into medium/advanced mock features to ease and remove pain when users work with it. Outline: • Intro (1’) • Why doubles are important (1’) • Main qualities of a double (2’) • Overview of unittest.mock (5') • Testing doubles (15’) o Doubles (1’) o Stubs (2’) o Spies (3’) o Mocks (5’) o Fakes (2’) • Wrap up, conclusion and pointers (2') • Q&A (Expected 5’) License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ivaylo Donchev - Django queries optimization
Django queries optimization [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Ivaylo Donchev Collecting data from multiple Models is a common flow in Django development. In most of the cases prefetch_related and select_related do all of the job for optimizing the queries. When the models structure become complicated enough and we've put our logic for collecting these items in models' properties we suddenly cannot use prefetch_related or select_related anymore. Our View 's queries count depends on selected items count with high complexity. The problem is in the selection logic: we've implemented an algorithm which calculates something and we cannot prefetch or select all of the objects. So this talk's purpose is: To show how to use Django ORM to move the selection logic, the calculations, the aggregations over group of objects from our python code to our database and moving all of the logic for this in one place - the queryset and test it easily. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Bernat Gabor - Standardize Testing in Python
Standardize Testing in Python [EuroPython 2018 - Talk - 2018-07-26 - Kilsyth] [Edinburgh, UK] By Bernat Gabor In this talk, Bernat will introduce tox, an open source tool with the bold vision of standardizing testing. From a CIs point of view, testing contains much more than just unit and/or integration tests; other things like code style checks, packaging, testing under various versions of Python, and checking that documentation still generates, are just as important. Things quickly start to spiral out of control once you add into the mix that there are many tools and ways to accomplish each of these tasks. In this talk, we will learn how tox tries to abstract away all this complexity, how to easily run CI tests on your local machine, and how one can use this tool inside your CI frameworks to ensure high quality and easily maintainable packages. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Pascal van Kooten - When to use Machine Learning: Tips, Tricks and Warnings
When to use Machine Learning: Tips, Tricks and Warnings [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Pascal van Kooten Artificial Intelligence, and machine learning in particular, is one of the hottest topics in tech/business. I will explain the core of machine learning, and the main goal of this talk will be to help you judge the success whenever someone yells "I know! let's solve this using machine learning!". I will also provide tips and tricks on how to increase the success of such projects. The second part of the talk will be about 2 open-source python projects I've created, as well as a project I'm working on regarding the trading of cryptocurrency... and their relation to machine learning. Specifically, the challenges and findings in making these cases work will be explored. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Konstantin Ignatov - Succinct data structures for python
Succinct data structures for python [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Konstantin Ignatov This is a presentation of and call for participation in development and testing of Python bindings to Succinct Data Structure Library. From Wikipedia: Succinct data structures can represent an object (such as a bitvector or a tree) in space close to the information-theoretic lower bound of the object while supporting operations of the original object efficiently. The theoretical time complexity of an operation performed on the classical data structure and the equivalent succinct data structure are (most of the time) identical. Currently bindings are provided for: Mutable bit-compressed vectors Immutable compressed integer vectors Immutable compressed bit (boolean) vectors Rank and select operations on bitvectors Wavelet trees Comressed suffix arrays Original library: https://github.com/simongog/sdsl-lite Most of examples from SDSL cheat sheet and SDSL tutorial are implemented. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
James Saryerwinnie - Debugging Your Code with Data Visualization
Debugging Your Code with Data Visualization [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By James Saryerwinnie Let's face it. Sometimes our code just isn't working how we expect it to work. When this happens, we fall back to our trusty tools to help us debug: pdb, the logging module, or even simple print statements. But sometimes that just isn't enough, we still can't figure out why our code is broken. We need something more. There are a number of fantastic libraries in python for creating data visualizations. These libraries are commonly used for analyzing and visualizing large sets of data, but don't see as much usage when it comes to helping us write and debug our code. What if we could combine the two? What if we could leverage data visualization tools to understand what our program is doing? Sometimes, by seeing a visual representation of what our code is doing, it becomes much easier to understand why our code is not working. We don't need to create publication quality graphs and charts, we just need to generate quick, one-off visualizations to understand what our code is doing. What we want is the "data visualization" equivalent to print() statements. To help illustrate this point, I will walk through some of the hardest bugs I've had to track down while working on projects such as the AWS CLI and boto3, the AWS SDK for Python. For each bug, I'll show you how I was able to leverage data visualization techniques to troubleshoot and fix these bugs. Come learn how to debug more efficiently by leveraging data visualization. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Heidi Thorpe - May the Fuzz be with you
May the Fuzz be with you [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Heidi Thorpe This talk will explore how Long short-term memory (LSTM) recurrent neural networks combined with Python can use Artificial Intelligence to provide invalid, unexpected, or random data as inputs for testing software and finding network security vulnerabilities. The technique of machine generated test inputs is an established testing approach and is sometimes referred to as fuzzing. I will take this idea further by presenting how various types of machine learning can provide novel outlier test cases to harden software and networks in a way that is superior to using only randomness. Instead, I will discuss how to train neural networks to produce better fuzzing data.This is a natural progression from my work with machine learning and image processing using support vector machines (SVM) and Generative Adversarial Networks (GAN) which I have applied to this new domain of software testing. This a beginner level talk aimed at all software developers and testers with a goal to giving attendees a basic understanding of fuzz testing. Timing of presentation 1 Introduction 0-5 minutes 2 What is a neural fuzzing 5-10 minutes 3 How does fuzzing work 10-15 minutes 4 Steps to train a deep neural network 15-20 minutes 5 Implementing a basic LSTM neural network for security testing 20-25 minutes 6 Conclusion and Questions 25-30 minutes License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alexys Jacob - The rise of Python in the data communities
The rise of Python in the data communities [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Alexys Jacob A retrospective and prospective of Python's adoption in the data-driven industries and how it has and should influence its ecosystem and communities. Thanks to its versatility, Python's usage and adoption has changed a lot over the last decade to go beyond the very act of software programming. From Developers to SysOps, closely followed by Scientists and Data analysts, Python has spread to become a common tongue for a wide range of people. We will start by looking at how this increased adoption impacted Python ecosystem and is still shaping it today. While this talk is not walk through all the Python technologies around data, some of them will be outlined so you will hear words like Numpy, Pandas or Jupyter. Then we will try to project ourselves in the future and by highlighting the pitfalls Python has to overcome to keep up with its pace and mature in its ability to scale! Draft of the agenda The rise and collusion of science and engineering and their influence on Python From DevOps to DataOps, the shape and breakthroughs of Python's ecosystem Prospect of challenges and pitfalls in the massive data era License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alexander Hendorf - Deep Learning with PyTorch for Fun and Profit
Deep Learning with PyTorch for Fun and Profit [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Alexander Hendorf There are all these great blog posts about Deep Learning describing all that awesome stuff. - Is it all that easy? Let's check! We'll look into: style transfer (making a picture look like painting), speech generation (like Siri or Alexa) and text generation (writing a story). In this talk I'll describe the whole journey: A fun ride from the idea to the very end including all the struggles, failures and successes. Steps, we'll cover: The data challenge: get the data ready Have it run on your Mac with PyTorch and an eGPU Creating a character-level language models with an Recurrent Neural Network Creating a text generator Creating artwork License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alejandro Saucedo - Industrial Machine Learning Pipelines with Python & Airflow
Industrial Machine Learning Pipelines with Python & Airflow [EuroPython 2018 - Talk - 2018-07-26 - Fintry [PyData]] [Edinburgh, UK] By Alejandro Saucedo Industrial Machine Learning This talk will provide key insights on the learnings I have obtained throughout my career building & deploying machine learning systems in critical environments across several sectors. I will provide a deep dive on how to build scalable and distributed machine learning data pipelines using Airflow with a Celery backend. I will also compare Airflow with other technologies available out there and how it differentiates, such as Luigi, Chronos, Pinball, etc. If you attend the talk, you will obtain an understanding on the solid fundamentals of Airflow, together with its caveats and walk-arounds for more complex use-cases. As we proceed with the examples, I will cover the challenges that you will run into when scaling Machine Learning systems, and how Airflow can be used to address these using a manager-worker-queue architecture for distributed processing with Celery. By the end of this talk you will have the knowledge required to build your own industry-ready machine learning pipelines to process data at scale, and I will provide further reading resources so people are able to implement the knowledge obtained almost right away. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Thomas Aglassinger - Introduction to sentiment analysis with spaCy 1
Introduction to sentiment analysis with spaCy [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Thomas Aglassinger Sentiment analysis aims at extracting opinions from texts written in natural language, typically reviews or comments on social sites and forums. SpaCy already provides mechanisms for dealing with natural languages in general but does not offer means for sentiment analysis. This talk gives a short introduction to sentiment analysis in general and shows how to extract topics and ratings by utilizing spaCy's basic tools and extending them with a lexicon based approach and simple Python code to consolidate sentiments spread over multiple words. Topic covered are: What is sentiment analysis? Levels of sentiment detection Representing opinions Splitting texts in sentences and words. Finding the base word (lemma) Extending spaCy's pipeline and tokens Matching words to topics and ratings Combining multiple words to a rating Code examples are introduced and explained using a Jupyter notebook that can be used as basis for your own analysis. As additional twist the analyzed texts are not in English but German to show that this approach can be used for multiple languages. No knowledge of German is required though because translations of the short examples sentences are provided. Author's note: This is an extended version of a talk I gave at the PyDays Vienna 2018. The original slides and Jupyter notebook are available at https://github.com/roskakori/talks/tree/master/pydays/analyzingnaturallanguagefeedbackusing_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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Sarah Bird - The Web is Terrifying! Using the PyData stack to spy on the spies
The Web is Terrifying! Using the PyData stack to spy on the spies. [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Sarah Bird We all know the internet can be a scary place. In this talk I’ll focus on two ways I’ve found it positively terrifying. First, digging into tracking technologies, I have learned about the breadth and depth of ways our online activity is monitored, stored, and repackaged. Second, when starting out to learn a new skill, the tidal wave of information available online can be overwhelming. Using the PyData stack to explore and visualize different data sources, including a new dataset from Mozilla, we’ll examine some of the many types of online tracking. My goal is to leave the audience with: 1) A sense of the breadth of tools in the PyData toolbox that can be applied to a real-world analysis 2) An understanding of a few methods of online tracking so they can be more informed internet citizens In particular, now that the EU’s General Data Protection Regulation (GDPR) has come into force, we can explore the data in light of EU citizens’ new rights, and the new responsibilities of companies worldwide. Along the way, I’ll also talk about becoming a software engineer, then a builder of data science tools, and my new journey into data science. Being self-taught can be, lonely, scary, and full of embarrassing pitfalls. I’ll share some stories about my learning journey, and the people and resources that have supported me. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Obiamaka Agbaneje - Building a Naive Bayes Text Classifier with scikit learn
Building a Naive Bayes Text Classifier with scikit-learn [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Obiamaka Agbaneje Machine learning algorithms used in the classification of text are Support Vector Machines, k Nearest Neighbors but the most popular algorithm to implement is Naive Bayes because of its simplicity based on Bayes Theorem. The Naive Bayes classifier is able to memorise the relationships between the training attributes and the outcome and predicts by multiplying the conditional probabilities of the attributes with the assumption that they are independent of the outcome. It is popularly used in classifying data sets that have a large number of features that are sparse or nearly independent such as text documents. In this talk, I will describe how to build a model using the Naive Bayes algorithm with the scikit-learn library using the spam/ham youtube comment dataset from the UCI repository. Preprocessing techniques such as Text normalisation and Feature extraction will be also be discussed. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Matthew Honnibal - Building new NLP solutions with spaCy and Prodigy
Building new NLP solutions with spaCy and Prodigy [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Matthew Honnibal Commercial machine learning projects are currently like start-ups: many projects fail, but some are extremely successful, justifying the total investment. While some people will tell you to "embrace failure", I say failure sucks --- so what can we do to fight it? In this talk, I will discuss how to address some of the most likely causes of failure for new Natural Language Processing (NLP) projects. My main recommendation is to take an iterative approach: don't assume you know what your pipeline should look like, let alone your annotation schemes or model architectures. I will also discuss a few tips for figuring out what's likely to work, along with a few common mistakes. To keep the advice well-grounded, I will refer specifically to our open-source library spaCy, and our commercial annotation tool Prodigy. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Kamila Stepniowska - How can you use Open Source materials to learn Python & data science?
How can you use Open Source materials to learn Python & data science? [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Kamila Stepniowska Python is very often recommended as the language of choice in a programming education. I can see at least two cases when it's a thing: - introduction to programming - regardless an age and any previous educational experience, - data science - it's just a standard... and actually both - you can teach a future data scientists starting by teaching Python. During this talk, I would like to briefly present you what Open Source Python educational materials do we have there and how those are and can be used to teach Python and data science. PyLadies, Django Girls, Django Carrots, Python Software Foundation creates many very available materials. From the data science side, you have Open Source materials created by kaggle, Minerva, Github repos, and many other organizations and individuals. During this talk you will learn: - where to find an Open Source Python and data science tutorials and educational materials - how does the Python community can support your learning process - why learning data science with Python is a good idea. I'm also interested in learning your educational experience with an Open Source materials and Python community supporting your learning experience. If you would like to share a link or your educational story, please feel free to send me an email on kamila@stepniowski.com. If I will find it interesting for the audience and if you will give me your permission to share it, I might use it in the 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Anna Veronika Dorogush - CatBoost - the new generation of Gradient Boosting
CatBoost - the new generation of Gradient Boosting [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Anna Veronika Dorogush Gradient boosting is a powerful machine-learning technique that achieves state-of-the-art results in a variety of practical tasks. For a number of years, it has remained the primary method for learning problems with heterogeneous features, noisy data, and complex dependencies: web search, recommendation systems, weather forecasting, and many others. CatBoost (http://catboost.yandex) is a new open-source gradient boosting library, that outperforms existing publicly available implementations of gradient boosting in terms of quality. It has a set of addional advantages. CatBoost is able to incorporate categorical features in your data (like music genre, URL, search query, etc.) in predictive models with no additional preprocessing. For more details on our approach please refer to our NIPS 2017 ML Systems Workshop paper (http://learningsys.org/nips17/assets/papers/paper_11.pdf). CatBoost inference is 20-60 times faster then in other open-source gradient boosting libraries, which makes it possible to use CatBoost for latency-critical tasks. CatBoost has the fastest GPU and multi GPU training implementations of all the openly available gradient boosting libraries. CatBoost requires no hyperparameter tunning in order to get a model with good quality. CatBoost is highly scalable and can be efficiently trained using hundreds of machines The talk will cover a broad description of gradient boosting and its areas of usage and the differences between CatBoost and other gradient boosting libraries. We will also briefly explain the details of the proprietary algorithm that leads to a boost in quality. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alisa Dammer - Data is not flat
Data is not flat [EuroPython 2018 - Talk - 2018-07-26 - PyCharm [PyData]] [Edinburgh, UK] By Alisa Dammer Feature engineering and model training often comes hand in hand. Some tasks have an overwhelming amount of high dimensional data, some tasks have little data or very low-dimension data. This talk targets the latter problem: what can be done with the data itself to significantly improve the model performance and when manual feature engineering does make sense. A sample case of Classification problem with NN will be presented The goal of the talk is to remind about something every person working with the data thinks and probably uses. Slides, Jupyter notebook with the example, test and train sets, NN configuration file are available on: https://github.com/Alisa-lisa/conferences License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Vinicius Pacheco - Understanding and Applying CQRS
Understanding and Applying CQRS [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Vinicius Pacheco Creating scalable applications has a number of complex variables and one of them is to work with scalability and performance in the database layer. Command Query Responsibility Segregation (CQRS) is a design pattern that helps produce more performance and resilience in applications where data access is intense. In this talk, we will understand when to use and the problems that CQRS solves. We will also apply CQRS in a Python application using the Nameko framework. The outline talk is: ○ (4 minutes) - Present a real problem of a web application, when creating new instances is not a solution, because the database receives an overwrite of writing and unfeasible to read the data, collapsing the application. ○ (6 minutes) - Present the CQRS pattern conceptually and how this design pattern solves this type of problem using the structure of Command Stack and Query Stack ○ (3 minutes) - Show Nameko as an interesting tool to apply the CQRS. It will demonstrate the use of HTTP, RPC and the possibility of applying pub/sub. ○ (6 minutes) - Create (live code) the Command Stack layer using Nameko on a Postgresql database. ○ (5 minutes) - Create (live code) the Query Stack layer using Nameko over a MongoDB database. ○ (3 minutes) - Explain common myths and mistakes about CQRS (3 minutes) - Q & A Session License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marc Andre Lemburg - How to make money using Python - Unused potential in the Enterprise World
How to make money using Python - Unused potential in the Enterprise World [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Marc-Andre Lemburg Python has gained quite some traction in the web development world and more recently as the goto language for anything that has to do with data science. However, it's use in the enterprise world of applications is rather limited. Based on the author's many years experience in working in enterprise environments, the talk will demonstrate areas in the business application space where Python has significant advantages over other languages, but which are currently dominated by applications written in Java, C++ or C#. There are huge opportunities out there for companies to excel at and use the Python advantage to their benefit. If you are looking for a lead idea to kick start your Python business (and you have the resources to invest into marketing), this talk is for 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Roberto Polli - Interoperability Rules for an European API Ecosystem: do we still need SOAP?
Interoperability Rules for an European API Ecosystem: do we still need SOAP? [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Roberto Polli Intro Italy is introducing a new API Ecosystem because the complexity of the old SOAP-based protocol was now a barrier for the creation of newer services. This talk presents the Digital Transformation Team ongoing work on an interoperability framework based on (REST) API, including: the scheme standardization based on EU standards, ontologies and RFC an availability strategy based on a distributed circuit-breaker and throttling patterns a contract-first (API-first) approach to REST services via a href="https://www.openapis.org/"OpenAPI spec Challenges when you can replace SOAP Headers with the HTTP semantics introduced in RFC 7230-7238 strategies for a non-repudiation system based on HTTP (eg. DOSETA, JWS, ..) the path towards an European interoperable API Ecosystem Prerequisites basic knowledge of SOAP, REST and the HTTP protocol general web service issues, DDOS, availability and metrics License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Mika Boström, Alexander Schmolck - Marge: A bot for better Git'ing
Marge: A bot for better Git'ing [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Mika Boström, Alexander Schmolck Over the past decade, development workflows across industries have converged towards Continuous Integration (CI) with pull requests (PR). Automated testing and artifact generation is useful, but the logic is often flawed: test are run against the source branch, and side effects from successful merges are not accounted for. Marge-bot improves this workflow by allowing to test the PR against the target branch while providing a host of other conveniences. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Mark Smith - More Than You Ever Wanted To Know About Python Functions
More Than You Ever Wanted To Know About Python Functions [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Mark Smith What exactly are functions? Let's talk about functions, methods, callables and closures - what they are, what you can give them, what they can give you, what you can do with them ... and what's inside. You probably think you already know everything about functions, but you probably don't! Input & Output: How do you get things in and out of functions? I'll cover parameters and the myriad of ways they can be specified, provided and accessed - including helpful hints to avoid common mistakes! I'll cover return values, briefly, along with variable scopes and exceptions. Closures: What are they, how do they work and how they can affect memory usage. Methods: How does a method differ from a function, when are they made, how do they work and how to access the function inside every method. __magic__:Make your own callables from any object! Introspection: Using modern Python techniques, what can you find out about a function, and what can you do with that information? Bytecode: What happens if you open up a function and look at its insides? Can you change it and put it back together again? (Spoiler: Yes, you can.) By the end of this talk, I guarantee* you'll know more about callables than when you walked in, along with techniques both practical and so extreme your colleagues will never let you merge them to master. (*This guarantee is legally non-binding and cannot be redeemed in any way.) License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Hynek Schlawack - How to Write Deployment friendly Applications
How to Write Deployment-friendly Applications [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Hynek Schlawack The DevOps movement gave us many ways to put Python applications into production. But should your application care? Should it need to know whether it’s running on your notebook, on a server, in a Docker container, or in some cloud platform as a service? It should not, because environment-agnostic applications are easier to test, easier to deploy, easier to handle, and easier to scale. But how can you practically structure and configure your applications to make them indifferent to the environment they run in? How do secrets fit into the picture? And where do you put that log file? By the end of this talk you’ll know the tools and techniques that enable you to write such Python applications and you’ll be ready for the next big change. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Dougal Matthews - 10 years of EuroPython and the Python community
10 years of EuroPython and the Python community [EuroPython 2018 - Talk - 2018-07-26 - Smarkets] [Edinburgh, UK] By Dougal Matthews This talk will take you on a journey from Birmingham to Edinburgh via Florence, Berlin, Bilbao and Rimini. The last 10 years of EuroPython. This will be a trip down memory lane where we look at how the language, community and conference have evolved with some personal anecdotes along the way. This will be in part a retrospective, where we will look at what we have done well and where we can do better. Finally, we will look at some aspirations and ideas for the coming years. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ines Montani - How to Ignore Most Startup Advice and Build a Decent Software Business
How to Ignore Most Startup Advice and Build a Decent Software Business [EuroPython 2018 - Keynote - 2018-07-26 - Smarkets] [Edinburgh, UK] By Ines Montani It's a great time to be a software developer. Platforms are steadily becoming more mature, useful tools are released almost daily and things that seemed hopelessly futuristic only a few years ago are suddenly commercially viable. Despite this, the software world is awash with bullshit. The success of the largest technology companies has led to a very skewed set of lessons. This narrow focus is amplified by the venture capital industry and the fact that nobody really knows what's going to happen next. The good news is, none of this actually matters. The basics of creating something useful and selling it for money remain the same. In this talk, I'm not going to give you "one weird trick" or tell you to ~* just follow your dreams *~. But I'll share some of the things we've learned from building a successful software company around commercial developer tools and our open-source library spaCy. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Keystone Sponsor Talk - Why Python is at the heart of Smarkets
Why Python is at the heart of Smarkets [EuroPython 2018 - - 2018-07-26 - Smarkets] [Edinburgh, UK] Smarkets is heavily invested in Python and this is why we've decided to be the Keystone sponsor of EuroPython 2018! In this talk, we'll tell you more about what we do at Smarkets, why we think we're a unique place to work, the interesting things we're doing at the Conference and of course how we use Python every day. We'll also tell you about some of our current challenges in upgrading from 3.6 to 3.7, evaluating asyncio in production and what we've learned from type hinting over the past two years. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
EuroPython 2018 - Lightning talks on Thursday, July 26
Lightning talks [EuroPython 2018 - - 2018-07-26 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ian Ozsvald - Citizen Science with Python
Citizen Science with Python [EuroPython 2018 - Keynote - 2018-07-27 - Smarkets] [Edinburgh, UK] By Ian Ozsvald You could make a difference in the world with a little science and Python. We'll look at several data-driven humanitarian and healthcare projects developed using Python and, all going well, run some audience experiments. By the end of the talk I hope you'll be looking to run your own experiments with the scientific Python stack. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Sarah Diot Girard - Trust me, I'm a Data Scientist - ethics for builders of data based applications
Trust me, I'm a Data Scientist - ethics for builders of data-based applications [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Sarah Diot-Girard Data Science is gonna save the world, right? Or is it? Machine Learning epic fails are being largely commented. It's easy to convince ourselves that they are due to the inconsiderate misuse of Data Science. But is it really so? Is it possible that innocuous choices lead an honnest team to a disaster? During the course of this talk, we will build together an (imaginary) application: a disruptive AI-based smart virtual assistant, pledging to help high-schoolers with their university choice. We will see how unintended biaises may creep in at every step, even with the best of intentions. We will explore different topics, such as algorithmic fairness, model interpretability and the handling of minority classes. Through this practical example, this talk will present a review of major ethical pitfalls identified in the Machine Learning community along with suggestions on how to avoid them. This talk is intended for beginner to intermediate Data Scientists, and people working with Data Scientists, even without specific technical knowledge. Slides : https://sdgjlbl.github.io/Presentations/Data%20Science%20and%20Ethics/presentation.html#/ License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Pietro Mascolo - Good features beat algorithms
Good features beat algorithms [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Pietro Mascolo In Machine Learning and Data Science in general, understanding the data is paramount. This understanding can come from many different sources and techniques: domain expertise, exploratory analysis, SMEs, some specific Machine Learning techniques, and feature engineering. As a matter of fact, most Machine Learning and Statistical analysis strongly depends on how the data is prepared, thus making feature engineering very important for any serious Machine Learning enterprise. "Feature engineering is the process of transforming raw data into features that better represent the underlying problem to the predictive models, resulting in improved model accuracy on unseen data." In this talk we will discuss what feature engineering and feature selection are; how to select important features in a real-world dataset and how to develop a simple, but powerful ensemble to measure feature importance and perform feature selection. Familiarity with intermediate concepts of the Python programming language is required to follow the implementation steps. General knowledge of the basic concepts of Machine Learning and data cleaning will be useful, but not strictly necessary, to follow the discussion on feature selection and feature engineering. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Matteo Guzzo - Easy interactive data applications with Dash
Easy interactive data applications with Dash [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Matteo Guzzo Plotly Dash is a Python framework for building interactive dashboards and web data applications, based on Flask, React.js, and Plotly. It allows a python-only approach to something that previously required knowledge of Javascript, heavily reducing the overhead required to create a web application. I'll show how easy it is to set up a small interactive web app using data from the Twitch API and to expand it at will, using only Python. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Martin Christen - Processing Geodata using Python and Open Source Modules
Processing Geodata using Python and Open Source Modules [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Martin Christen The need for processing small-scale to large-scale spatial data is huge. In this talk, it is shown how to analyze, manipulate and visualize geospatial data by using Python and various open source modules. The following modules will be covered: Shapely: Manipulation and analysis of geometric objects Fiona - The pythonic way to handle vector data rasterio - The pythonic way to handle raster data pyproj - transforming spatial reference systems Vector File Formats (Shapefiles, GeoJSON, KML, GeoPackage) Geospatial analysis with GeoPandas Creating maps using Folium License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marco Bonzanini - Lies, damned lies, and statistics
Lies, damned lies, and statistics [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Marco Bonzanini Statistics show that eating ice cream causes death by drowning. If this sounds baffling, this talk will help you to understand correlation, bias, statistical significance and other statistical techniques that are commonly (mis)used to support an argument that leads, by accident or on purpose, to drawing the wrong conclusions. The casual observer is exposed to the use of statistics and probability in everyday life, but it is extremely easy to fall victim of a statistical fallacy, even for professional users. The purpose of this talk is to help the audience understand how to recognise and avoid these fallacies, by combining an introduction to statistics with examples of lies and damned lies, in a way that is approachable for beginners. Agenda: Correlation and causation Simpson's Paradox Sampling bias Data visualisation gone wild Statistical significance (and Data dredging a.k.a. p-hacking) License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Lauris Jullien - Productionizing your ML code seamlessly
Productionizing your ML code seamlessly [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By Lauris Jullien Data science and Machine Learning are hot topics right now for Software Engineers and beyond. And there are a lot of python tools that allow you to hack together a notebook to quickly get insight on your data, or train a model to predict, or classify. Or you might have inherited some data wrangling and modeling {Jupyter/Zeppelin} notebook code from someone else, like the resident data scientist. The code works on test data, when you run the cells in the right order (skipping cell 22), and you believe that the insight gained from this work would be a valuable game changer. But now how do you take this experimental code into production, and keep it up-to-date with a regular retraining schedule? And what do you need to do after that, to ensure that it remains reliable and brings value in the long term? These will be the questions this talk will answer, focusing on 2 main themes: 1. What does running an ML model in production involve? 2. How to improve your development workflow to make the path to production easier? This talk will draw examples from real projects at Yelp, like migrating a pandas/sklearn classification project into production with pyspark, while aiming to give advice that is not dependent on specific frameworks, or tools, and is useful for listeners from all backgrounds. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
David Liu - Addressing multithreading and multiprocessing in transparent and Pythonic ways
Addressing multithreading and multiprocessing in transparent and Pythonic ways [EuroPython 2018 - Talk - 2018-07-27 - PyCharm [PyData]] [Edinburgh, UK] By David Liu With the increase in computing power, harnessing and controlling one’s code out of the single-threaded realm becomes an ever-increasing problem, coupled with the desire to stay in the Python layer. With the recent tools and frameworks that have been published, escaping the GIL cleanly is much easier than before, allow one’s Python code to effectively utilize multi-core and many core architectures in the most Pythonic ways possible. In this talk, learn about how to utilize static multiprocessing for process pinning, and effectively balancing thread pools with a monkey-patched import of threading modules. Overview: Introduction to multithreading and multiprocessing in Python History of multithreading+multiprocessing in Python, classic frameworks Problems that can occur (oversubscription, nested parallelism issues, process hopping, pool resource on shared machines) Python accessing bigger hardware over the last few years (28+ cores, etc) When to stay in the GIL, and when to escape it The advantages and safety of the GIL Python-level exiting of the GIL; analysis of when to return to single-threaded, and when threading is a deceivingly bad idea Accountability of frameworks that natively exit the GIL The new multithreading and multiprocessing libraries and techniques static multiprocessing module (smp) (and monkey patching of multiprocessing) thread pool control with command line calls of Python ( python -m tbb -p 8) Putting it all together Examples of using static multiprocessing on a large machine to stop oversubscription Example of pseudo-daemon process on 4-core machine by processor pinning Thread pool control on a simple NumPy example Summary - Best practices for using above methods to control multithreading+multiprocessing What needs to be done in the space (frameworks and things that need to be exposed) Problems that still exist in the area Q&A License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Stefan Baerisch - The Boring Python Office Talk Automate Powerpoint, Excel, and PDF with Python
The Boring Python Office Talk - Automate Powerpoint, Excel, and PDF with Python [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Stefan Baerisch We will have a quick tour of the many ways Python gives us to handle DOCX, XLSX, PPTX, and PDF and automate some boring office tasks. Many things are more interesting than office file formats like DOCX, XLSX, PPTX, and PDF. Still, while working with office formats does not seem to be the most fun, it is useful. But we can do better than just useful. With the Python and some great libraries, it is possible to have Python do much of the work you would have to do otherwise: Create and modify PDF files. Create Powerpoints presentations from scripts. Create Excel files, from simple tables to charts and reports. Combine information in Word documents. In this talk, we will have a look at a usual working day for Bob and Ann, two fictional office works. Both Bob and Ann work office jobs, but while Bob does all of his work by hand, but Ann knows Python. We will look at different tasks that Bob wants to do, such as preparing an Excel report, building a Powerpoint presentation, or rearranging a PDF. Then, we will look how Ann use Python and some exciting libraries to automate these task. During the talk, we will use Bob and Ann to consider different task related to office file formats. We will then look at the Python libraries that are available. Then, using this library, we will see how an otherwise boring task can be automated. The goal of the task is to showcase the libraries to Python offers to work with standard office formats and provide you with a starting point for your own office automation. After this talk, you will know how to automate at least some of your daily office tasks. You may also be bored because Python is doing so much of your work for you. If you know basic Python programming, you will be right at home. There will be some use of Pandas, but it is not required. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Rivo Laks - Creating Solid APIs
Creating Solid APIs [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Rivo Laks Increasingly, our apps are used not by humans but by other apps - via their APIs. Thus it is increasingly important that your APIs are well-designed and easy to consume for other developers. Adding a few API endpoints to your application for internal consumption is easy. Creating APIs that other developers will love to use is a much harder problem. You'll need to think about solving variety of topics such as versioning, authentication, response structure, documentation and more. There are existing good practices for each of them, but often developers who haven't done a lot of API work aren't familiar with them. My talk will show how to find reasonable solutions for those problems. I will talk about importance and intricacies of good documentation and why auto-generating it from your code is useful. I'll show how to make use of familiarity by using standards such as JSON API and show benefits brought by its standardized response structure that makes lives of 3rd-party developers easier. Authentication will be discussed, including introduction to OAuth2. I'll talk about when OAuth2 is a good choice and when not, as well as dig into some trickier parts of it. We'll then move on to versioning and how you can change your API without breaking all existing apps. Finally we'll wrap it all up by looking at some major APIs that are using the same principles. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Pavlin Gergov - How async and await ended up in Python
How async and await ended up in Python [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Pavlin Gergov We're going to talk about regular functions, iterables, iterators, function execution and yield - generator functions. We will send values and play with generators a bit. A quick look at asyncio will be followed by async and await, what a coroutine is and how to write async code with Python. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Neil Gall - System testing with Pytest, Docker, and Flask
System testing with Pytest, Docker, and Flask [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Neil Gall The composability of fixtures in pytest is an improvement over traditional xUnit setup/teardown, reducing the incentive to commit testing crimes such as multi-stage and stepwise tests. This is great out of the box for unit tests, but I'm going to show how to combine the power of pytest fixtures with Docker to build high-level integration tests for microservices or other complex systems with multiple components. I'll then build on that to show how to embed mock web services written with Flask right into the test code. With a sample Java application that makes use of some external resources to offer a data processing service I'll first quick an overview of Pytest, Docker, and Flask. Then I'll mix some pre-built code with live test coding to demonstrate how to build high-level system tests which spin up the application and its dependencies in Docker. I'll then mock one of the external dependencies using Flask, allowing the test to control and verify interaction between the system components. Finally I'll show how to wrap the Flask application in a WSGI middleware that lets the test inspect interaction with the mocked service. From a learning and development point of view, building your own is better than re-using someone else's code so I'll show how the support code for these features is relatively simple and how the audience can build it themselves to exactly meet their own needs. And I'll do it all with a sense of fun, a joke or two and maybe a little storytelling. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Keith Harrison - Creating a Culture of Software Craftsmanship
Creating a Culture of Software Craftsmanship [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Keith Harrison This time it’ll be different. It’s a green field project and you’ve learned from your mistakes. You’re not going to make the same ones again. Fast forward several months and you’re in a mess. A change in one place causes bugs in a completely different place. Adding a simple feature means making changes all over your application. Progress is getting slower and slower. You’re lost in complexity. Why does this keep happening and what can we do about it? This talk will try to answer those questions. I’ll show how complex software really is, define the different types of complexity found in software, explain the issues complexity causes and discuss different techniques we can use to manage it. This talk is suitable for anyone who has worked or will work on a software development project. No development experience is required. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Chase Stevens - Exploring the Python AST Ecosystem
Exploring the Python AST Ecosystem [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Chase Stevens Materials are available at https://github.com/hchasestevens/europython-2018 This session will introduce attendees to Python's rich ecosystem of abstract syntax tree tooling and libraries, with an emphasis on practical applications in static analysis and metaprogramming. Attendees should be fully comfortable with Python syntax and semantics, but familiarity with the ast module itself will not be necessary. The talk will begin with a conceptual overview of ASTs, including a brief look at Python's built-in introspection capabilities. It will introduce tools for AST visualization (astor, showast, python-ast-explorer), creation (asttools, meta), and transformation to source code (codegen). How the AST can be used for static analysis will be covered; this will include discussion of Python's built-in facilities (NodeVisitor) as well as of the 3rd party tools astsearch, astpath, and bellybutton. The talk will demonstrate the advantages and limits of these tools in comparison to other static analysis tooling (pylint, mypy); particular attention will be paid to how these tools can be incorporated into attendees' workflows and existing codebases and projects. Tooling for Python AST manipulation and metaprogramming will be the final topic covered, focusing on the use of the NodeTransformer built-in. The talk will cover practical applications and examples of metaprogramming, such as metaprogramming for DSLS (pony, xpyth), runtime code manipulation (patterns, yield-from), and others (e.g. assertion rewriting in pytest). While the talk will touch only briefly on each of the applications discussed, by the end of the session attendees should have a firm grasp of the kinds of problems the AST can be used to solve, what existing AST tooling can accomplish, and what resources are available for the development of their own AST tools. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Andy Fundinger - A Taxonomy of Decorators: A E
A Taxonomy of Decorators: A-E [EuroPython 2018 - Talk - 2018-07-27 - Moorfoot] [Edinburgh, UK] By Andy Fundinger This talk will briefly go over the various decorator syntaxes before breaking up the common usages of decorators into 5 categories. Effectively, these are design patterns for decorators. The usages to be considered are: A - Argument Changing Decorators -- Decorators that change a function's arguments, including changing its signature B - Binding Decorators -- Decorators that implement the Descriptor Protocol, such as the builtins: @property, @classmethod, and @staticmethod C - Control Flow Decorators -- Decorators that change when or whether the function will be called, such as @retry or @lrucache D - Descriptive Decorators -- Decorators that do not change the function, but create a reference to it elsewhere, like pytest.mark and flask.app.route E - Execution Decorators -- Decorators that retrieve source code and/or AST and alter 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Victor Stinner - Python 3: ten years later
Python 3: ten years later [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Victor Stinner Draft of the talk: Growing populary of the Python programming language Defacto language in the scientific world, replacing other closed source and more specialized but limited language Favorite programming language used as the first language to learn programming Port Python 2 code to Python 3 Port Python 2 code to Python 3 No: "Add support for Python 3", don't loose Python 2 support Port Python 3 code to Python 2 Python changes to make the transition smoother: PEP 414: u"syntax" reintroduced in Python 3.3 PEP 461: bytes % args, Python 3.5 More "Py3k" warnings added to Python 2.7.x Linters like flake8 detect some issues six, futures, modernize, 2to6, etc. Analysis of the transition Good: At Pycon US 2014, Guido van Rossum announced that the Python 2.7 support was extended from 2015 to 2020 to give more time to companies to port their applications to Python 3. Bad: 2to3: "drop Python2 support at once", don't work when you have dependencies. If done again, would it be different? Yes, obviously. Python 4 will be different than Python 3: no more "break the world" release, but a "regular deprecation period" release, as any other release. Break things, one by one :-) Bugs that won't be fixed in Python 2 anymore Some bugs cannot be fixed without breaking the backward compatibility Unicode Support Python 2 I/O stack bugs: rely on libc stdio.h Security: hash DoS, enabled by default in Python 3.3, Python 3.4 now uses SipHash subprocess is not thread-safe in Python 2. Python 2 subprocess has many race conditions: fixed in Python 3 with a C implementation which has less or no race condition. Handling signals while forking in complex. threading.RLock is not "signal safe" in Python 2 Python 2 requires polling to wait for a lock or for I/O. Python 3 uses native threading API with timeout and has asyncio. Python 3 uses a monotonic clock to not crash on system clock update (ex: DST change). Python 3 has a better GIL. Python 2 inherits file descriptors on fork+exec by default. Python 3 don't: PEP 446. Functions can fail with OSError(EINTR) when interrupted by a signal, need to be very careful everywhere. SIGCHLD when a child process completes, SIGWINCH when using ncurses. Python 3.5 restarts the interrupted system call for you. Performance Python 3.6 is now faster than Python 2.7 https://speed.python.org/ Evolutions of the Python language Python 3.5 PEP 492: async/await "keywords" for asyncio. (Really keywords in Python 3.7.) PEP 461: bytes % args and bytearray % args PEP 465, a new matrix multiplication operator: a @ b. PEP 448: Generalized unpacking: head, *tail = list mylist = [1, 2, **other_list] mydict = {"key": "value", **other_dict} Python 3.6 PEP 515: million = 1_000_000 name = "World"; print(f"Hello {name}!") PEP 526, syntax for variable annotations. PEP 525, asynchronous generators. PEP 530: asynchronous comprehensions. Bury Python 2? "Python 3 only" https://pythonclock.org/ http://www.python3statement.org/ Fedora 23, Ubuntu 17.10: no python2 (/usr/bin/python) in the base system 2017, April: IPython 6.0 2017, December: Django 2 License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Sven Hendrik Haase - Rust and Python - Oxidize Your Snake
Rust and Python - Oxidize Your Snake [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Sven-Hendrik Haase Rust is a safe and modern systems programming language that is easily able to call and be called from Python. As such, it is a prime candidate for replacing C for writing Python modules that have to be fast or that have to interact with other native code. Rust is extremely fast and makes it very hard to get concurrency wrong. Many ways of making Python call into lower level have appeared over the years such as CFFI, ctypes, boost.python, cython, SWIG. All of them are cumbersome in their own ways. PyO3 is a Rust library that makes it easy and simple to write native Python modules with minimal glue code and no crazy tooling required. It even works cross-platform without problems. The talk shows some sample code of PyO3-based modules and compares it with the code of the alternatives as well as the alternative's cross-platform support and tooling. The goal is for the audience to be informed about a new safe and modern way of writing native Python modules. The audience doesn't need any prerequisites except for a healthy interest in native code and Python modules. C knowledge is optional. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Paul Keating - Writing good error messages
Writing good error messages [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Paul Keating Anyone who has ever conducted an elementary programming course, or even answered a question on StackOverflow, will know that reading error messages is a skill that beginners have to learn. It is less widely appreciated that writing good error messages is also a skill that must be learnt. This talk is in two parts. The first covers the commonest error message gaffes: • Insufficiently explicit messages. • Issuing the same message for two different conditions. • Suppressing the stack trace. • Polluting the stack trace. The second part describes a way to ensure usable, actionable error messages, even when the writer of the message is not a professional coder. This was developed for an environment where superusers code up most of the dozens of data validation rules and the accompanying messages, and the application in which Python is embedded suppresses the stack trace. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Emmanuelle Delescolle - A tale of refactoring
A tale of refactoring [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Emmanuelle Delescolle A couple years ago I was approached by a client to help them improve the performance and maintainability of their code. That code was filled with very long functions, some of them with very similar code and the project was really hard to understand as a whole. My first reflex was to refactor this code code to make it more understandable. In my opinion, it did fit part of my assignment as understandable code is easier to maintain but it was also very helpful later in letting me make small changes with full knowledge of what was going to be affected by those changes. Large methods and functions is something that creeps into our code whether we plan for it or not. This talk is about one way to deal with it. This talk will be based on code provided by the GildedRose Refcatoring Kata: https://github.com/emilybache/GildedRose-Refactoring-Kata Prerequisites: - Basic knowledge of Python - Basic knowledge of OOP Goals: - Demonstrate one approach for refactoring code - Show how to leverage Python's dynamic nature to make code simpler License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Ben Nuttall - Programming paradigms for physical computing and IoT
Programming paradigms for physical computing and IoT [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Ben Nuttall A look at the GPIO Zero library for Raspberry Pi yields the blueprint for a Pythonic API for programming the behaviour of interconnected devices. GPIO Zero provides a multi-paradigm programming interface to GPIO devices: - procedural (polling) - procedural (blocking) - event-driven (callbacks) - declarative Start with simple scripts to control LEDs and buttons on a breadboard, learn to prototype ideas and move on to declaring interaction between more advanced devices in the home and beyond. These options for device programming, along with the extensibility of the library, provide the means to program complex behaviour using simple Pythonic 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alec MacQueen - Python and GraphQL
Python and GraphQL [EuroPython 2018 - Talk - 2018-07-27 - Lammermuir] [Edinburgh, UK] By Alec MacQueen GraphQL query language is gaining popularity and seeing more adoption. This is mainly due to the efficiency with which consumers can get their data, the ease with which you can document and explore your API and the powerful tooling that has been built around the query language. This talk is for novices and experts of GraphQL alike and aims to cover the basics of the query language, how to implement it using Flask and SQLAlchemy and to take a deeper dive into how Python’s type-hinting can be used to generate your GraphQL schema. I’ll also be talking about some of the tooling that can be used to provide consumers and developers working on your API with a great development experience. Next I'll cover some ways you can use these tools to empower your development process and get you developing 'API First'. To get the most out of this talk you should have a general understanding of APIs, Python frameworks and Python ORMs. However, my aim is to make it as accessible as possible for developers of all experience levels. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Robert Smallshire - Domain Driven Design Patterns in Python
Domain-Driven Design Patterns in Python [EuroPython 2018 - Talk - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Robert Smallshire Domain-Driven Design (DDD) is an approach to software development that emphasises high-fidelity modelling of the problem domain, and which uses a software implementation of the domain model as a foundation for system design. This approach helps organize and minimize the essential complexity of your software. DDD has been used with success within the traditional enterprise programming ecosystems of Java and .NET, but has seen only limited adoption in the Python community. In this talk we introduce Python programmers to the core tactical patterns of DDD and show how they can be realised in idiomatic Python, freeing the most valuable parts of your system – the domain model – from onerous dependencies on particular databases or application frameworks. In this talk we share what we've learned from applying DDD in Python to large projects. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Raphael Pierzina - The Challenges of Maintaining a Popular Open Source Project
The Challenges of Maintaining a Popular Open-Source Project [EuroPython 2018 - Talk - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Raphael Pierzina In this talk, I will give an insight into what it means to maintain a popular project for me personally, what it involves and what we as a community can do to help out and finally why I think it's an important discussion to have. Cookiecutter is a command-line utility that creates projects from templates. It is free and open-source software distributed under the terms of a permissive BSD-3 license. With around 180 individual contributors, more than 1000 public templates on GitHub alone, and multiple talks at conferences, it is fair to say that there is a small community around it. But who are the people behind the project and what is it that they are doing? It's been three years since I was granted the commit bit by the core team. I have learned a lot about FOSS communities and also about myself. At times I struggle with balancing my day job as a full-time Software Engineer and maintaining Cookiecutter and other FOSS projects in my spare time. By now I'm OK with not responding to issues immediately and closing pull requests. However it took me quite a while to get to this point. Maintaining FOSS projects can be incredibly rewarding and fun, but it can also be quite frustrating. It involves so much more than writing code or merging PRs, and yet sometimes it feels like that's what most people think. The goal of this talk is to start a conversation around this topic and hear what other EuroPython attendees think about it and their challenges as contributors or maintainers. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Naomi Ceder - Python Software Foundation Session
Python Software Foundation Session [EuroPython 2018 - Talk - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Naomi Ceder The Python Software Foundation (PSF) is the organization behind Python itself. It holds the IP rights, runs PyCon US and tries to help the Python community world-wide to run events, user groups, workshops or Python related programming projects by giving out grants. This year, we’re again having a PSF Members meeting at EuroPython, where the PSF reports on its activities, new plans and organizational changes. The meeting is open to everyone, so if you want to learn more about the PSF activities, please join in. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marc Andre Lemburg - EuroPython 2019: Help us build the next edition!
EuroPython 2019: Help us build the next edition! [EuroPython 2018 - EuroPython session - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Marc-Andre Lemburg 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marc Andre Lemburg - EPS General Assembly 2018
EPS General Assembly 2018 [EuroPython 2018 - EuroPython session - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Marc-Andre Lemburg 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alex Grönholm - Automating testing and deployment with Github and Travis
Automating testing and deployment with Github and Travis [EuroPython 2018 - Talk - 2018-07-27 - Kilsyth] [Edinburgh, UK] By Alex Grönholm Maintaining an open source project can be a drag. Especially when you have dozens of them. Besides being tedious , making a new release can be a very error prone process. Maybe you forgot to run the full test suite, forgot to update the release version or tag the release on VCS or maybe you bungled up the upload to PyPI. Fortunately there are things you can do to eliminate entire categories of human errors in the release process – by automating them. This talk uses a trivial project as an example to present a release pipeline, from packaging and testing to deployment, that only requires you to push a git tag to your Github repository. Automation then takes care of the rest and you end up with a new release on PyPI (yay!). This talk is mostly useful for open source developers using Github to house their projects, as it heavily leans on Travis, its continuous integration provider . You also need to be at least somewhat familiar with Python packaging and testing in order to follow along. Familiarity with common tools like pytest and tox helps but is not strictly required. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Vincent Warmerdam, Bas Harenslak - Winning card games with 1000+ CPUs
Winning card games with 1000+ CPUs [EuroPython 2018 - Talk - 2018-07-27 - Fintry [PyData]] [Edinburgh, UK] By vincent warmerdam, Bas Harenslak Vincent was playing a card game against his girlfriend and he kept loosing. So he wanted to train a bot to play on his behalf. This is our story. We’re using AWS Lambda to get better at a card game named SushiGO. We make a small genetic algorithm in Python that uses AWS Lambda as a backend. The talk consists of these parts: Quick Explanation of the rules of the SushiGo Card Game Translation of real life to an algorithm Explain why this problem needs a lot of CPU Explain why AWS Lambda fits the simulation use-case How to quickly hack Concurrency in Python How to deploy lambda very quickly with chalice Experimentation Results This talk will discuss an algorithm that we’ve tried to improve in three ways: Applying simple maths to make the search algorithm better Throwing lots (lots!) of CPU’s against the problem by leveraging AWS Lambda and python concurrency We will conclude by discussing whether or not AWS Lambda is suitable for a gridsearch/grid simulation (hint, it’s not meant for this task, but it actually kind of works very well). License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Omar Gutiérrez - From linear algebra to machine learning
From linear algebra to machine learning [EuroPython 2018 - Talk - 2018-07-27 - Fintry [PyData]] [Edinburgh, UK] By Omar Gutiérrez Math is a crucial skill for people who are interested in Data Science and Machine Learning. Until now, most of the people who are doing Data Science have a strong background in math, usually, people with master or Ph.D. degrees. However, this fact seems to change in the next years, after the hype of Machine Learning we are facing a process of democratization. Now the door of Data Science is open for everyone. To truly madly deeply understand how the machine learning algorithms work we need to understand some mathematical concepts. In this tutorial, I would like to share my experience in the process of learning some of those concepts. What I want to do is build a bridge between those concepts and Python, more specifically, SciPy and NumPy and TensorFlow. Basically is just another tutorial about vectorization, in this case, oriented to understand and implement machine learning algorithms and the mathematical foundation that supports it. Outline Review of linear algebra: A brief review of essential linear algebra, concepts and the explanation with NumPy: scalars, vectors, matrices, tensors, multiplication of vectors, inner products, vector spaces, etc. Review of machine learning: A brief review of essential machine learning, concepts that are related to mathematical concepts: dimensionality reduction, principal component analysis, etc. Optimization: Analytical vs. numerical solutions. This part has too many formulas, well, not too many. Vectorization: Numpy and TensorFlow. Small practical cases: I want to show how we can solve the XOR problem with only one neuron Explain the math behind recurrent neural networks. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Marcel Raas - Change music in two epochs
Change music in two epochs [EuroPython 2018 - Talk - 2018-07-27 - Fintry [PyData]] [Edinburgh, UK] By Marcel Raas This talk is about applying deep learning to music. We will look at the raw music data and discover the following: How to detect instruments from a piece of music How to detect what is being played by what instrument How to isolate instruments in multi-instrument (polyphonic) music Instead of applying it to existing music we will generate our own music using some simple musical rules. The benefit of this is that we are in control of the complexity and we know exactly what is being played. We start out simple and then start adding more instruments, different timbres, etc. As we go up in complexity, we shall see how to adapt our models to be able to deal with it. This gives interesting insights in what structures in deep nets work well. I will show: How to build a simple synthesizer using numpy How to create an unlimited data set of improvisation that sounds musical How to use this data set for detecting instruments using deep learning How to filter out one instrument when multiple synthesizers are playing at once License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Kevin Lemagnen - Walking the Random Forest and boosting the trees
Walking the Random Forest and boosting the trees [EuroPython 2018 - Talk - 2018-07-27 - Fintry [PyData]] [Edinburgh, UK] By Kevin Lemagnen Deep Learning is all the rage, but ensemble models are still in the game. With libraries such as the recent and performant LightGBM, the Kaggle superstar XGboost or the classic Random Forest from scikit-learn, ensembles models are a must-have in a data scientist’s toolbox. They’ve been proven to provide good performance on a wide range of problems, and are usually simpler to tune and interpret. This talk focuses on two of the most popular tree-based ensemble models. You will learn about Random Forest and Gradient Boosting, relying respectively on bagging and boosting. This talk will attempt to build a bridge between the theory of ensemble models and their implementation in Python. Notebook: https://github.com/klemag/europython2018_walking_the_random_forest License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Douglas Finch - Air Quality & Python: Developing Online Analysis Tools
Air Quality & Python: Developing Online Analysis Tools [EuroPython 2018 - Talk - 2018-07-27 - Fintry [PyData]] [Edinburgh, UK] By Douglas Finch Poor surface air quality has a range of implications for human health and the economy. Without concerted mitigation efforts, trends in urbanisation and aspirations for progressive economic growth will result in poorer levels of air quality. Analysing and interpreting the incoming data streams from heterogeneous air quality measurement stations is critical for tackling the problem and for developing early warning systems. I am using Python to develop a set of online analysis tools (ukatmos.org) to enable the public to quickly and easily plot air quality data in many ways, effectively freeing up information that is already publicly available but in awkward formats and often involves development of code. We anticipate these tools will also support data science classes at school, and can speed up scientific research by minimizing effort in repeating analyses. This talk will cover how the tools integrate numerous Python libraries (e.g. Pandas and NumPy), the Django web framework, the Plot.ly tools for creating interactive graphs, and SQL to address the large data volumes. Developing these Python tools in an adaptive and scalable way allows it to grow as more data become available, e.g. satellite observations. Adaptability also includes evolving user requirements. This project will also be developed into a Python library allowing the user to easily use the online analysis tools from an offline Python 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Philip Jones - Quart a asyncio alternative to Flask
Quart a asyncio alternative to Flask [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Philip Jones Flask is a great web mirco-framework, that is best utilised with event-loop concurrency. Sadly with Flask the event-loop framework can't be asyncio, although some extensions (Flask-Aiohttp) have tried. Quart is the solution as it shares the Flask API and is based on asyncio. In addition Quart goes beyond Flask adding HTTP/2 and websockets. This talk will outline why event-loop concurrency is a good choice for web servers, why asyncio is a good choice and then give an overview of Quart, demonstrating features that go beyond the Flask framework. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Petr Viktorin - Bytecodes and stacks: A look at CPython’s compiler and its execution model
Bytecodes and stacks: A look at CPython’s compiler and its execution model [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Petr Viktorin So, you wrote some Python code. What needs to happen before it starts running? And once it's running, how does Python keep track of what it's doing? I'll talk about CPython's tokenization, parsing, bytecode and its serialization and cache, the stack-based virtual machine, line number tables, and code, frame and function objects. Don't worry if you've never heard of these concepts. While even experts should learn something new, the talk is aimed at anyone who's worked on a Python project or two. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Joshua Lowe - EduBlocks - Making the transition to Python easier!
EduBlocks - Making the transition to Python easier! [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Joshua Lowe Looking for ways to make the transition from block based programming to Python easier, then look no further! In this talk 14 year old Josh will introduce you to his project called EduBlocks, which is a drag and drop version of Python 3 that he has created to help teachers introduce programming languages, like Python, to children at an earlier age. The goal of the project is to make the transition from block based programs like Scratch to Python easier for students and teachers, as presently there is no drop-in solution that bridges this gap. Josh will share his journey so far with you, from how he came up with the idea when he was only 11 years old, the developments along the way, the exciting plans for the future and how schools today in over 72 different countries around the world are making use of EduBlocks on the Raspberry Pi and micro:bit. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Jeethu Rao - Faster Python startup
Faster Python startup [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Jeethu Rao The cPython’s startup speed generally quite fast compared to other similar dynamic language interpreters. Despite this, the interpreter’s startup time increases linearly with the number and size of imported python modules. Although interpreter startup speed isn't a significant concern in long running servers, it does matter for the command line and other frequently launched applications. One of the oldest tricks in the book, when it comes to performance optimizations is to perform frequent and expensive operations fewer times and reuse results from previous invocations. We noticed that the overhead of reading and un-marshalling .pyc files at startup can be eliminated if we could directly embed code objects and their associated object graph from .pyc files into the data segment of the cPython binary. This technique is quite similar to the approach taken by image based languages like Smalltalk in the past. Implementing this for cPython is made simpler because marshaled code objects in .pyc files contain a subset of the types of objects that marshal format supports. With this approach, loading a module included in the python binary is as cheap as dereferencing a pointer, albeit at the cost of increased binary size. This talk will discuss the approach taken to implement the aforementioned idea for Python 3.6 and the challenges faced in implementing it. It will also talk about benchmark results from the improvements and possible future directions for this work. Although this talk delves into cPython internals, no prior experience with cPython internals is required to follow along. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
EuroPython 2018 - Sprint Orientation
Sprint Orientation [EuroPython 2018 - - 2018-07-27 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Dan Taylor - Get Productive with Python in Visual Studio Code
Get Productive with Python in Visual Studio Code [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Dan Taylor In this demo driven session, we’ll show you how to use the cross-platform, free, and open source Visual Studio Code for all your Python development needs. From editing, to linting, to debugging and more, you will learn how to get started, as well as tips and tricks to save you time in your everyday development lifecycle. If you’re an experienced Python developer, you will learn how to take advantage of all of Visual Studio Code’s capabilities to maximize your productivity. If you’re a new Python developer, you will learn more about Python and how to use Visual Studio Code to get up and running quickly. We will start by showing how to create a new application, configure linting, manage virtual environments, and run code. Then we’ll show how to use more powerful features like debugging, unit testing and Visual Studio Live Share for collaborative editing and debugging with your co-workers. Finally, we’ll show how you can install additional extensions to set up your keyboard bindings, manage docker containers, deploy to the cloud, and 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alexandre Figura - Integration Tests with Super Powers
Integration Tests with Super Powers [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Alexandre Figura You are maybe like me: I never learned at school how to write tests. My teachers gave me at first a broad overview of computer history. Then, they explained me some basic design patterns. And to finish, I often had to write more or less basic programs, to validate and demonstrate my skills. Not the kind of code I would be really proud of today: the procrastinator monkey living in my head at this time was more thinking about planning my summer holidays, rather than writing Ninja code! And to make things worse, my studies focused on network and system engineering. Not software architecture. Funny story, because I decided to become programmer a couple of years later... What I realize now is that I don't have as much time as before to learn. And in a world driven by business, where time is money, and where tradeoffs are the rule, there is rarely enough money to write both shiny new features and a complete test suite. People who practice Test-Driven Development know how complicated it can be to write proper tests. TDD is often discouraging at first: the learning curve is steep. But this problem also exists in the testing world in general. Because writing good tests is hard, many beginners get headaches trying to reach this goal. How to convince project managers to have more time for writing tests in these conditions... But "le jeu en vaut la chandelle" as we say in French ("the juice is worth the squeeze"). Well tested applications are not only easier to maintain and extend. They also have in general a better API. That's what we will see in this talk, by focusing on how to write integration tests. Our journey will begin with a presentation of different testing strategies. We will then jump to the practical part, using Pytest, interface testing , dependency injections and stubs, amongst many others. And because we want to add nice buzzwords on our resume after EuroPython, we will finish this talk by automating the whole with Docker Compose. License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
Alex Willmer - Rehabilitating Pickle
Rehabilitating Pickle [EuroPython 2018 - Talk - 2018-07-27 - Smarkets] [Edinburgh, UK] By Alex Willmer Pickle is a compact serialisation protocol for Python objects. It could be a convenient way for Python programs and distributed systems to communicate. Unfortunately pickle is widely considered to be unsafe, and it has lead to several vulnerabilities over the years. As the Python manual warns The pickle module is not secure against erroneous or maliciously constructed data. Never unpickle data received from an untrusted or unauthenticated source. Does this have to be the case? Can we use Pickle safely? This talk will be a deep dive into what an attacker can do with a maliciously constructed pickles. I’ll show what defences you can implement against the common attacks, especially those that gain arbitrary code execution. I will present new research into other attacks, and mitigations. Finally I will review a few less known alternatives to pickle. This talk will expand on a https://www.youtube.com/watch?v=5omAT9sqguE&list=PLWsDEQH0HiPZUhtqGczfDnNdiJMhWpmWd&index=9&t=13m10s PyLondinium 2018 lightning 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://ep2018.europython.eu/en/speaker-release-agreement/
Watch
EuroPython 2018 - Lightning talks on Friday, July 27
Lightning talks [EuroPython 2018 - - 2018-07-27 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch
EuroPython 2018 - Closing
Closing Session [EuroPython 2018 - - 2018-07-27 - Smarkets] [Edinburgh, UK] License: This video is licensed under the CC BY-NC-SA 3.0 license: https://creativecommons.org/licenses/by-nc-sa/3.0/ Please see our speaker release agreement for details: https://ep2018.europython.eu/en/speaker-release-agreement/
Watch