List of videos

Michał Bultrowicz - TDD of Python microservices
Michał Bultrowicz - TDD of Python microservices [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/tdd-of-python-microservices) A framework-agnostic approach to creating Python microservices with a tests-first approach. I'll show how to utilize Docker and Swagger to create service and contract tests that run your service as an independent process, as if it was running in production, giving you and your team a higher degree of confidence when introducing changes. A little bit of a broader microservice, TDD and work management context will also be given. ----- These will be my ideas on how to help a microservice-based (HTTP) project by integrating testing into the development process (TDD). I'll approach the testing pyramid presented in Martin Fowler's "Microservice Testing" as well as the test variants in "Building Microservices" (O'Reilly) and I'll show a way of how they can be translated to real-life Python. The main focus will be on "service tests" (aka. out-of-process component tests) and contract tests. They both can be run relatively fast on a development machine and can give fast feedback to the developer, preventing many kinds of problems. Service tests run the whole application process without any internal modifications, but have to present the service with a fake "outside world". I'll show how to fake external HTTP services with Mountebank (similar to WireMock). Instead of faking other systems (like databases) we can quickly spin up the real deal as a Docker container from within the tests. Contract tests check if the contract (interface) of your service with the outside world is kept, so no external services should be broken by the changes you are introducing. It can also work the other way around, proving that your collaborators are keeping their part of the deal. In both cases, Swagger (a RESTful API description scheme) and a few clever tricks can be used for significant advantage.
Watch
Joaquin Berenguer - Server for IoT devices and Mobile devices using Wifi Network,
Joaquin Berenguer - Server for IoT devices and Mobile devices using Wifi Network, [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/server-for-iot-devices-and-mobile-devices-using-wifi-network) The server is developed in Python 3.4, using MySQL5.6 The mobile device application is developed using Kivy. The application in the IoT device is developed in C. The IoT device is a hardware device using ATSAMD21 from Atmel, and wifi is made using ESP8266. The security used is sha256, standard in Python. And the IoT device using the crypto device ATECC508A, that generate also sha256. ----- The server is developed in Python 3.4, the information is stored in a MySQL 5.6 database. All IoT devices, Mobile Devices and Windows or Linux Desktop are registered in the database. All type of messages that are understood by every type of device, is also registered. A map between which device could access which device is also stored in the database. With this info, any mobile registered could send a message to a device. The message arrives to the server that resend the message to the IoT device, receive the answer and resend to the Mobile device. The Mobile device and the IoT device, could be anywhere, as the server is public, have the registration of every device connected. The mobile device application is developed using Kivy. The application in the IoT device is developed in C. The IoT device is a hardware device using ATSAMD21 from Atmel, and wifi is made using ESP8266. The security used is sha256, standard in Python. And the IoT device using the crypto device ATECC508A, that generate also sha256. The server start a thread for every device connected, the communication between thread is made using queues. During the presentation, the server is going to be presented, and IoT device is shown, no demo is going to be made. A library to manage the database, is used for easy access to the database, and have database independence, also will be shown. Prerequites: Python 3.4, sha256, threading, queue, mysql.connector, relational database.
Watch
Patrick Mühlbauer - Split Up! Fighting the Monolith
Patrick Mühlbauer - Split Up! Fighting the Monolith [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/split-up-fighting-the-monolith) Having to deal with a monolith, an application which became far to big over the time, can be quite bothersome. On the other hand if you split it up and have to deal with lots of smaller components, you might end up in dependency hell. But not only the splitting of the monolith and the management of the dependencies afterwards can be a problem, but also the packaging of you python components itself. ----- Do you know this situation, where you and your team are facing this big monolith? An application which has grown far too big over the years. Every time when you make a change, you have to fear the code might break at a totally different place, because lots of things are closely intertwined. But what to do if you are at such a point? Maybe you start thinking about microservices but then questions like "Are they really the right thing for us?" and "How do we get there?" arise. In my talk I will show you how we are dealing with our monolith. A collection of multiple python packages without clear boundaries, forming the actual application - all living in a single monorepo. I will talk about how we split up the whole thing, making it more flexible for us and also easier to use individual components by other teams. All this, of course, comes with a price: You have to think more about the dependencies between you components. You have to think about how you can efficiently test everything, making sure your final application is still working correctly. Don't loosing yourself in dependency hell and packaging all components correctly becomes quite a challenge. This talk will: - show you bad patterns to avoid, so that you don't end up in the above situation in the first place - give you ideas what to consider when tackling your monolith - explain how to package your python components and how to mange your dependencies
Watch
Takuro Wada - 3D Modeling and Printing by Python
Takuro Wada - 3D Modeling and Printing by Python [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/3d-modeling-and-printing-by-python) Creating 3D model for 3D printing is pretty hard for non 3D CG designer or non 3D CAD engineer. But recently, so many 3D software (like Maya, Blender, Fusion360 and so on) provides Python API to manipulate 3D data in those software. So in this session, I will introduce Python API of Blender and Autodesk Fusion 360 and share some basic knowledge and tips when you use these API. I will also introduce my past projects with those APIs. ----- ### Abstract - Creating 3D model for 3D printing is pretty hard for **non 3D CG designer or non 3D CAD engineer**. - Recently, so many 3D software (like Maya, Blender, Fusion360 and so on) provides Python API to manipulate 3D data in those software. Once you learn these Python API, you can generate 3D model by Python and 3D print those generated model. - In this session, I will introduce Python API of some softwares and share some basic knowledges and tips when you use these API. I will also introduce my past projects with those APIs and my products. ![][1] ### Goal - Introduce 3D model generation and 3D printing with Python to audience ### After this session, you will - Acquire the basic knowledge of 3D data structure - Understand basic concepts of Python API provided by 3D softwares - Acquire knowledge to start your 3D model generation project by Python - Know past 3D model generation projects by Python ### Prerequisite - Basic knowledge of Python - Interests for 3D modeling and 3D printing by Python [1]: http://takuro.ws/img/euro_python.jpg
Watch
Sophia Davis - Peeking into Python’s C API
Sophia Davis - Peeking into Python’s C API [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/peeking-into-pythons-c-api) Ever wondered how Python works under the hood? One way to learn about Python-the-C-program is by exploring the C API for writing Python bindings to native C libraries. In this talk, we will walk through a simple example of making a C library callable from Python code and vice versa. Along the way, we will encounter some essential features of Python: reference counting, memory management, and the inner- workings of objects and modules. ----- We all love Python. It’s so elegant and easy to use as a programming language that we forget about the giant, complicated C program executing our strings of white-space sensitive code. For many Python programmers, this side of Python is just a big black box. It works well, so thankfully we don’t *need* to go messing around inside... but what if you *want* to look into the inner workings of this powerful tool? One way to dive into the C-program-side of Python is by exploring the C API for writing Python bindings to native C libraries. In this talk I will explore the basics of this API as I recount my journey to make a simple C library callable from Python code, and allow C code to invoke objects defined in pure Python. Along the way, we will encounter some essential features of Python: reference counting, memory management, and the inner-workings of objects and modules.
Watch
Ryan Lahfa - Free your papers, researchers!
Ryan Lahfa - Free your papers, researchers! [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/free-your-papers-researchers) Research is financed from public money and researchers publish papers. But, papers are often unavailable to everyone except if you pay money for it, which seems wrong! What can we do as developers? Well, we can help researchers to open their papers! ----- And of course, how do we do it? Python, of course! Dissemin is a website using the Django framework which aims to promote a global Open Access policy, it offers to researchers a way to deposit legally their papers inside of a repository (Zenodo for example). We will see how the researcher world works quickly, and what are the challenges of assisting researcher to make papers available to everyone!
Watch
Björn Meier - NetworkX Visualization Powered by Bokeh
Björn Meier - NetworkX Visualization Powered by Bokeh [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/networkx-visualization-powered-by-bokeh) Visual data exploration, e.g. of social networks, can be ugly manual work. The talk will be an introduction for the combined usage of NetworkX and Bokeh in a Jupyter Notebook to show how easy interactive network visualization can be. ----- During some work with social network analysis my favoured tool to study the networks was NetworkX. It provides a wide set of features and algorithms for network analysis, all in Python. But the functionality to visualize networks is not very strong and not to mention the missing interactive manipulation. However during the exploration of data: exporting, feeding an extra tool for visualization and then manipulating data manually was a tedious workflow. As I also had the optional target of presenting networks in a browser, I improved this workflow by creating a Flask web application providing interfaces to my networks. On the browser side I created a javascript client based on D3.js. In retrospective the required programming effort in Python and also in Javascript was too much for such a task. And exactly this target, interactive visualization in a browser (and as bonus in a Jupyter Notebook), can be achieved quiet easy now with Bokeh. The talk will be a step by step introduction, starting with the basic visualization of a network using Bokeh, NetworkX and a Jupyter Notebook. Next, how to create interactions with your network which will be used to change a network structure, e.g. a leaving person. As we want to see directly the impact of these changes in a network I will finally show how to update networks and visualize directly how the importance of the remaining people changes. And all this can be achieved with Python and maybe a bit of Javascript. (There was no video for the first few minutes of this talk).
Watch
Alexandre Savio - Nipy on functional brain MRI
Alexandre Savio - Nipy on functional brain MRI [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/nipy-on-functional-brain-mri) This is an introductory talk to modern brain image analysis tools. I will show how to use nipy tools to process one resting-state fMRI subject, perform intra-subject registration, ICA analysis to extract and visualize resting-state networks. If the time allows me I will introduce an anatomical brain atlas and how to perform non-linear registration to do atlas-based segmentation. ----- This is an introductory talk to modern brain image analysis tools. I will show how to use nipy tools to process one resting-state fMRI subject, perform intra-subject registration, ICA analysis to extract and visualize resting-state networks. If the time allows me I will introduce how to perform non-linear registration to to atlas-based segmentation. The outline of the talk: 1. Present the COBRE dataset and show its characteristics. 2. Use nibabel to open a NifTI file and see the matrix/volume parameters. 3. Use nilearn.plotting to show the anatomical image. 4. Use nipy to co-register the anatomical image to the fMRI image. 5. Use nilearn to perform CanICA and plot ICA spatial segmentations. If time allows: 7. Present a brain anatomical atlas and its template. 8. Present the tools needed for non-linear registration. 9. Show the result of an atlas-based segmentation result. 10. Use nilearn to calculate the resting-state functional connectivity matrix of the subject. 11. Plot it with Bokeh.
Watch
Michele Simionato - How to migrate from PostgreSQL to HDF5 and live happily ever after
Michele Simionato - How to migrate from PostgreSQL to HDF5 and live happily ever after [EuroPython 2016] [22 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/how-to-migrate-from-postgresql-to-hdf5-and-live-happily-ever-after) This talk is for people who have a lot of floating numbers inside PostgreSQL tables. I will bring as an example my personal experience with a scientific project that used PostgreSQL as storage for a rather complex set of composite multidimensional arrays and ran into all sorts of performances issues, both in reading and writing the data. I will explain how I solved all that by dropping the database in favor of an HDF5 file, while keeping the application running and the users happy. ----- This talk is for people who have a lot of floating numbers inside PostgreSQL tables and have problems with that. I will narrate my experience with a scientific project that used PostgreSQL as storage for a rather complex set of composite multidimensional arrays and ran into all sorts of performances issues, both in reading and writing the data. I will discuss the issues and the approach that was taken first to mitigate them (unsuccessfully) and then to remove them (successfully) by a complete rethinking of the underlying architecture and eventually the removal of the database. I will talk about the migration strategies that were employed in the transition period and how to live with a mixed environment of metadata in PostgreSQL and data in an HDF5 file. I will also talk about concurrency, since the underlying application is distributed and massively parallel, and still it uses the purely sequential version of HDF5. Questions from the audience are expected and welcome. The talk is of interest to a large public, since it is mostly about measuring things, monitoring and testing a legacy system, making sure that the changes do not break the previous behavior and keeping the users happy, while internally rewriting all of the original code. And doing that in a small enough number of years!
Watch