List of videos

Alex Willmer - CloudABI: Capability based security on Linux/Unix

Alex Willmer - CloudABI: Capability based security on Linux/Unix [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/capability-based-security-on-unix-with-cloudabi) Take POSIX, add capability-based security, then remove anything that conflicts. The result is CloudABI, available for BSD, Linux, OSX et al. A CloudABI process is incapable of any action that has a global impact It can only affect the file descriptors you provide. As a result even unknown binaries can safely be executed - without the need for containers, virtual machines, or other sandboxes. This talk will introduce CloudABI, how to use it with Python, the benefits, and the trade-offs. ----- [CloudABI](https://nuxi.nl/) is a new POSIX based computing environment that brings [capability-based security](https://en.wikipedia.org/wiki/Capability-based_security) to BSD, Linux, OSX et al. Unlike traditional Unix, if a CloudABI process goes rogue it _cannot_ execute random binaries, or read arbitrary files. This is achieved by removing `open()` & any other API able to acquire global resources. Instead a CloudABI process must be granted _capabilities_ to specific resources (e.g. directories, files, sockets) in the form of file descriptors. If a process only has a descriptor for `/var/www` then it's _incapable_ of affecting any file or folder outside that directory. This talk will - Review the security & reusability problems of Linux & Unix processes - Introduce capability-based security - Summarize the design of CloudABI - its benefits & trade-offs - Demonstrate how to write Python software for CloudABI & run it - Point out the pitfalls & gotchas to be aware of - Discuss the current & future status of CloudABI CloudABI began life on FreeBSD. It also runs DragonFly BSD, NetBSD, PC-BSD, Arch Linux, Debian, Ubuntu, & OS X. The API & ABI are kernel agnostic - a CloudABI binary can run on any supported kernel. The design is evolved from [Capsicum](https://www.cl.cam.ac.uk/research/security/capsicum/), a library that allows processes to drop access to undesired syscalls at runtime. CloudABI applies this at build time to make testing & lock- down easier.

Watch
Daniele Procida - Minds, machines and Python

Daniele Procida - Minds, machines and Python [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/minds-machines-and-python) Are we looking in the wrong direction for artificial intelligence and machine learning? I'll discuss an older but perhaps more satisfying approach, that has been neglected in recent years. It begins with questions in logic and language, and can be explored using easy techniques. I'll use simple Python programs to explore three key notions in this AI research: **loops**, **self-reference** and **tangled hierarchies**, themselves directly reflected in important programming concepts. ----- In recent years, we've seen interesting and spectacular successes in artificial intelligence and machine learning, made possible by leaps in computing power and techniques able to harvest vast quantities of data. The results are uncanny. We see them everywhere, from the personal assistants built into smartphones to the neural networks that do an astounding job of recognising images. However, they're also susceptible to the criticism that they represent not intelligence but a mere simulation of it, and that producing a convincing simulacrum has become more important than a genuine search for intelligence or learning. At the same time, another, perhaps deeper, approach has become neglected in recent decades, along with the questions it asks about the nature of mind, intelligence and learning. This approach begins with fundamental questions in logic and language, and can be explored using some of the simplest programming techniques. In this talk, I'll use simple Python programs to explore three key notions in this strand of artificial intelligence research: *loops*, *self-reference* and *tangled hierarchies*. The way these concepts directly reflect important concepts in programming suggests that for the programmer, this approach could be more interesting and satisfying, and simply more **fun,** than using huge ontologies and big data to create mere simulacra of intelligence. The examples I use will be concrete and easy to understand, even for novice programmers.

Watch
Radomir Dopieralski - Making robots walk with Python

Radomir Dopieralski - Making robots walk with Python [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/making-robots-walk-with-python) You will see several different walking robots controlled with Python in different ways, and learn how they were built and programmed. ----- Making a robot walk is not easy, especially when all it has for brains is a small microcontroller which you have to program in C. During this talk you will see different ways in which such a robot can be controlled in Python, either by using remote control, with the Python program running on a stationary computer, by putting a small computer, such as a Raspberry Pi on it, or by programming it with Micropython, a version of the Python language designed for microcontrollers. I will also explain the basic problems with walking robots and how Python can be used to overcome them. Finally, I will show some of the robots I have built.

Watch
Shahriar Tajbakhsh - Go for Python Programmers

Shahriar Tajbakhsh - Go for Python Programmers [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/go-for-python-programmers) A side-by-side walkthrough of basic Go history, syntax, semantics and tools compared to Python. ----- There's been quite a bit of hype around Go for some time. In particular within the Python community, we've seen some engineers moving their stack from Python to Go or starting their new project in Go. This talk is **not** about whether you should move from Python to Go. Instead, this talk is for those who've been hearing all about all the hype but haven't yet had a chance to take a proper look at Go. We'll first _very_ briefly look at Go and Python's history. Then we'll go through a high-level side-by-side walkthrough of basic Go syntax and semantics compared to Python. Finally, we'll have a brief look at a subset of the ecosystem and tools available to Go and Python programmers for certain tasks such as testing, code formatting, documentation generation etc. By the end, you will not be a Go programmer but you'll have a high- level feel for how the Go language operates.

Watch
Stephane Wirtel - Exploring our Python Interpreter

Stephane Wirtel - Exploring our Python Interpreter [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/exploring-our-python-interpreter) During the last CPython sprints at PyCon US (Montreal), I started to contribute to the CPython project and I wanted to understand the beast. In this case, there is only one solution, trace the code from the beginning. From the command line to the interpreter, we will take part to an adventure. The idea behind is just to show how CPython works for a new contributor. ----- During my last CPython sprint, I started to contribute to the CPython code and I wanted to understand the beast. In this case, there is only one solution, trace the code from the beginning. From the command line to the interpreter, we will take part to an adventure * Overview of the structure of the project and the directories. * From the Py_Main function to the interpreter. * The used technics for the Lexer, Parser and the generation of the AST and of course of the Bytecodes. * We will see some bytecodes with the dis module. * How does VM works, it's a stack machine. * The interpreter and its main loop of the Virtual Machine. The idea behind is just to show how CPython works for a new contributor to CPython. From the command line, we will learn that Python is a library and that we can embed it in a C project. In fact we will see the Py_Main function to the ceval.c file of the interpreter. But there is no magic in the CPython code, we will travel in the lexer and the parser of CPython, and why not, by the AST for one Python expression. After the AST, we will visit the Compiler and the Bytecodes for the interpreter. Of course, we will learn there is the peepholer where some basic instructions are optimised by the this component. And of course, the interpreter, this virtual machine is really interesting for the newbiew, because it's a big stack where the bytecodes are executed one by one on the stack and the ceval.c file.

Watch
Juan Manuel Santos - Salting things up in the DevOps' World: things just got real

Juan Manuel Santos - Salting things up in the DevOps' World: things just got real [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/salting-things-up-in-the-devops-world-things-just-got-real) SaltStack is a thriving configuration management system written in Python that leverages YAML and Jinja2 which, by now, probably needs no introduction. This talk will explore Salt beyond the minimum required setup, targeting developers/sysadmins already using Salt, and those considering making the switch from other systems but wishing to dive deeper first. Attendees should be familiar with configuration management systems and practices, and comfortable using and reading YAML and Jinja syntax. ----- There is much more to Salt than the basics. This talk will go beyond the minimum required setup and will take a look at Salt under the hood, which will appeal not only to system administrators, but will also be more interesting to developers and to the DevOps community in general as the talk progresses. Topics include: * Introduction and basics review (master/minions, matching, grains, pillar) * Salt Mine * Syndic node * State modules vs. runner modules * The Reactor * The Event System * Salt Beacons * Salt API Attendees should be familiar with configuration management systems and practices, and also feel comfortable using and reading YAML and Jinja syntax. This talk is targeted to developers or sysadmins already using Salt, and to those who are considering switching to it from other systems but wish to dive deeper before making that decision. After the talk, attendees will have a better grasp of the more advanced possibilities that Salt brings, and be ready to apply them to their use cases.

Watch
Zuria Bauer/Daniel Domene López - How to improve your diet and save money with Python

Zuria Bauer/Daniel Domene López - How to improve your diet and save money with Python [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/how-to-improve-your-diet-and-save-money-with-python) Optimization in Python (also known as mathematical programming) can be performed by minimization (or maximization) of an objective function within a model that can include discrete variables subject to a set of constrains. At this talk, chemical engineering students of the University of Alicante will introduce the audience to the possibilities of optimization, presenting Pyomo and showing real world examples such as how to improve your diet and save money at fast food restaurants. ----- Process optimization in industry has become essential in order to maximize the resources available and reduce energy consumption. Optimization problems become interesting when dealing with restrictions (linear or nonlinear) and integer variables (modeling the discrete decisions). Python ecosystem presents different libraries to solve optimization problems, some of them are CVXOpt, CVXPy, PulP, OpenOpt, or Pyomo. Among them, Pyomo results interesting because: - It can be used for Mathematical modeling in Python similarly to AMPL (and GAMS) - It communicates with the main solvers used in this field such as GLPK, Gurobi, CPLEX, CBC and PICO - It's free and open source Python library (BSD license), being developed by Sandia National Laboratories, USA. - It supports Python 3 and it is easy to install. The talk will be divided in three parts: 1. _Introduction to Mathematical Programming/Optimization (15 min):_ visual introduction to optimization concepts including restrictions and non linearties (linear Programming, Nonlinear Programming, ILP, MIP, MINLP). 2. _Introduction to the Pyomo sintax and a quick note for the installation (20 min):_ showing how to improve their diet and save money when ordering food in fast food restaurants. 3. _Optimization problems in engineering (10 min):_ showing more advanced optimization examples that include decision variables.

Watch
Theo Crevon - Automate, contribute, repeat.

Theo Crevon - Automate, contribute, repeat. [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/automate-contribute-repeat) At Ableton we love music and we love open-source. Ansible is an amazing tool which allows us to free more time for music by automating boring and repetitive tasks, and to contribute back to the open-source community with ease. Here's an opportunity to share our love for it, our experience with it, and our contributions to it with you. ----- Computers are never as convenient as when they work for us. If you agree with this motto, then Ansible, a deployment and automation tool written in Python, might come in handy. At Ableton, Ansible is involved in every aspect of deployment and automation. From local machine setup, to vm creation and deployment in our self-hosted datacenter, to our services in the immensity of the cloud. Because it is dead simple to use, can deal with any number of hosts in parallel and has robust compatibility with Unix as well as Windows systems, you will probably never have to write a shell script again. Because it is written in Python and exposes a clean, extensible and easy to adapt design and architecture; contributing features to the project and fixing the bugs you might encounter during the journey is extremely easy. At Ableton we love music and we love open-source. Ansible is an amazing tool which allows us to free more time for music by automating boring and repetitive tasks, and to contribute back to the open-source community with ease. Here's an opportunity to share our love for it, our experience with it, and our contributions to it with you. Automate, contribute, repeat.

Watch
Vaidik Kapoor - Understanding Non-blocking IO

Vaidik Kapoor - Understanding Non-blocking IO [EuroPython 2015] [21 July 2015] [Bilbao, Euskadi, Spain] As an engineer working on any web stack, you may have heard about Blocking and Non-Blocking IO. You may as well have used any framework or library that supports Non-Blocking IO. After all, they are very useful as you don't want to block execution of other tasks while one task is waiting to complete a network call to another service (like HTTP call to an API or may be a TCP call to your database). Non- Blocking IO while doing tasks and not wait for IO. This also helps us handle a lot many connections than we possibly could with Blocking IO. Python supports Non-Blocking IO, but we always use some existing 3rd party library that hides all the gory details and makes it all look like black magic to the uninitiated. But there is nothing like black magic. This presentation will be an introductory talk focused at explaining how Non-Blocking IO works, which is the basis of libraries like Gevent, Tornado and Twisted. We will learn about how Non-Blocking IO can be implemented using the most basic modules that form the base for the above mentioned libraries. Hopefully after this talk, Non-Blocking IO will not be an unsolved mystery for you anymore.

Watch