List of videos

Honza Král - Designing a Pythonic Interface

Honza Král - Designing a Pythonic Interface [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/designing-a-pythonic-interface) When designing an abstraction for a complex system (an ORM-like library in our case) you face a lot of design decisions and challenges. This talk details how we chose to tackle those when designing elasticsearch-dsl. ----- The json query language for elasticsearch, as well as its other APIs, can be very daunting to new users and can be a bit cumbersome when working with python. That is why we created elasticsearch-dsl - a sort of ORM for elasticsearch. We will go through the design philosophy and obstacles found during the development - trying to make a more pythonic interface for elasticsearch while maintaining access to all of the features of the underlying query language. The focus of the talk is more on the library and interface design than on elasticsearch and its query language itself, that is used only to demonstrate the principles.

Watch
vincent warmerdam - The Joy of Simulation: for Fun and Profit

vincent warmerdam - The Joy of Simulation: for Fun and Profit [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/the-joy-of-simulation-for-fun-and-profit) In this talk discusses some joyful exercises in simulation. I'll demonstrate it's usefulness but moreover I'll discuss the sheer joy. I'll discuss how to generate song lyrics, I'll discuss how to get better at casino games, how to avoid math, how to play monopoly or even how to invest in lego minifigures. No maths required; just a random number generator. ----- In this talk discusses some joyful exercises in simulation. I'll demonstrate it's usefulness but moreover I'll discuss the sheer joy you can experience. I'll go over the following points (the short list): - I'll show how you can avoid math by simulating; I'll calculate the probability that two people in the live room have the same birthday. - I'll show how simulation can help you get better at many games. I'll start with simple card games and with the game of roulette. Most prominently I'll discuss how to determine the value of buying an asset in the game of monopoly (See blogpost: http://koaning.io/monopoly- simulations.html). - I'll demonstrate how you can simulate Red Hot Chilli Pepper lyrics. Or any other band. Or legalese. - I'll demonstrate the results of a scraping exercise which helped me to determine the value of investing in Lego Minifigures (See blogpost: http://koaning.io/lego-minifigs-stochastics-profit.html). Depending on the level of the audience I might also discuss how biased simulation can help you solve optimisation problems or even introduce bayesian statistics via sampling. I'll gladly leave this decision to the EuroPython committee.

Watch
Sebastian Witowski - Writing faster Python

Sebastian Witowski - Writing faster Python [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/writing-faster-python) Presentation on how you can write faster Python in your daily work. I will briefly explain ways of profiling the code, discuss different code structures and show how they can be improved. You will see what is the fastest way to remove duplicates from a list, what is faster than a _for_ loop or how “asking for permission” is slower than “begging for forgiveness”. ----- Did you know that Python preallocates integers from -5 to 257 ? Reusing them 1000 times, instead of allocating memory for a bigger integer, can save you a couple of milliseconds of code’s execution time. If you want to learn more about this kind of optimizations then, … well, probably this presentation is not for you :) Instead of going into such small details, I will talk about more _"sane"_ ideas for writing faster code. After a very brief overview of how to optimize Python code (rule 1: don’t do this, rule 2: don’t do this yet, rule 3: ok, but what if I really want to do this ?), I will show simple and fast ways of measuring the execution time and finally, discuss examples of how some code structures could be improved. You will see: - What is the fastest way of removing duplicates from a list - How much faster your code is when you reuse the built-in functions instead of trying to reinvent the wheel - What is faster than the good ol’ _for_ loop - If the lookup is faster in a list or a set (and when it makes sense to use each) - How the “It's better to beg for forgiveness than to ask for permission” rule works in practice I will NOT go into details of _"serious"_ optimization, like using different Python implementation or rewriting critical code in C, etc.

Watch
Mike Müller - Conda - Easier Installs and Simpler Builds

Mike Müller - Conda - Easier Installs and Simpler Builds [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/conda-easier-installs-and-simpler-builds) Learn about `conda`, the package installer from the scientific community. It offers very interesting features that can improve your installation experience considerably. The talk gives an overview of the basic usage of `conda`. It covers the topics installation and building of packages. `conda` can be combined with `pip` to use all PyPi packages. Its cross-platform and multi-languages features combined with power environments can help to improve your productivity. ----- The BSD license `conda` is a package installer for Python and other languages. While it originates form the scientific Python community, it can be really useful for all Python programmers. Installation of Python packages has become much simpler over the last years. The use of `pip` and `virtualenv` simplify the installation of Python packages a lot. However, they are specific to Python. The Python-agnostic `conda` has advantages for packages with C or Fortran extension that are very common for scientific libraries. `conda` is cross-platform. According to different statistics, the most Python users work on Windows. Often is especially complicate to get extensions with many dependencies installer on this platform. `conda` facilities the installation for Windows considerably. This talk introduces the basic usage of `conda` to install packages. This includes the basic commands for searching and installing of packages. Furthermore, the talk demonstrates the creation of environments for different Python versions and combinations of packages. The building of a packages is simple. The talk shows how to build recipes that contain declarations of dependencies . `conda` can work together with `pip`. This allows to use all packages from the Python Package Index ( PyPI). The talk explains the concept of channels that allow to get packages from different sources.

Watch
Fabio Pliger - EuroPython 2016 Recruiting Session

Fabio Pliger - Recruiting session [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/recruiting-session) The recruiting sponsors will present their companies and their job offers in short talks.

Watch
Dougal Matthews - Effective Code Review

Dougal Matthews - Effective Code Review [EuroPython 2016] [19 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/effective-code-review) Developers usually state that finding defects is the primary motivation for doing code reviews. However, research has shown that the main benefits of code reviews are; knowledge transfer, team awareness and finding alternative solutions. Code reviews when done well are more than just finding defects; it should be a discussion and conversation with other developers about finding the best solutions. We will talk about re-framing code review to encourage open discussions. ----- This talk is for everyone that is already involved in regular code review and those hoping to start. I will talk through the code review process with the aim of making it a better and more useful experience for both the authors and the reviewers. The talk will follow the following rough outline: - Introduction - Why do code reviews - What are we aiming to get out of it - Submitting code for review - How can you help reviewers? - What should you avoid doing? - Removing ownership of the code - Reviewing code - How should you give feedback? - What should you look for? - How can you encourage people to review more? - How to avoid and remove bike-shedding - Code review tools and how they impact on the process. - Wrap up and conclusion

Watch
Ankit Bahuguna - Query Embeddings: Web Scale Search powered by Deep Learning and Python

Ankit Bahuguna - Query Embeddings: Web Scale Search powered by Deep Learning and Python [EuroPython 2016] [18 July 2016] [Bilbao, Euskadi, Spain] (https://ep2016.europython.eu//conference/talks/query-embeddings) Query Embeddings is an unsupervised deep learning based system, built using Python and open source libraries (Annoy, keyvi etc.) which recognizes similarity between queries and their vector representations, for a web scale search engine integrated within Cliqz browser [https://cliqz.com/en]. It improves recall for previously unseen queries and is one of the many key components of our search stack. The framework be utilized by other low latency systems involving vector representations. ----- A web search engine allows a user to type few words of query and it presents list of potential relevant results within fraction of a second. Traditionally, keywords in the user query were fuzzy-matched in realtime with the keywords within different pages of the index and they didn't really focus on understanding meaning of query. Recently, Deep Learning + NLP techniques try to _represent sentences or documents as fixed dimensional vectors in high dimensional space_. These special vectors inherit semantics of the document. Query embeddings is an unsupervised deep learning based system, built using Python, Word2Vec, Annoy and Keyvi (https://github.com/cliqz- oss/keyvi) which recognizes similarity between queries and their vectors for a web scale search engine within Cliqz browser. (https://cliqz.com/en) ![][1] The goal is to describe how query embeddings contribute to our existing python search stack at scale and latency issues prevailing in real time search system. Also is a preview of separate vector index for queries, utilized by retrieval system at runtime via ANNs to get closest queries to user query, which is one of the many key components of our search stack. ![][2] Prerequisites: Basic experience in NLP, ML, Deep Learning, Web search and Vector Algebra. Libraries: Annoy. [1]: https://sites.google.com/site/netankit/1.png [2]: https://sites.google.com/site/netankit/3.png

Watch
Architecture of a cloud hosting service using python technologies: django, ansible and celery

Abraham Martin - Architecture of a cloud hosting service using python technologies: django, ansible and celery [EuroPython 2015] [23 July 2015] [Bilbao, Euskadi, Spain] The talk will show the architecture and inners of a cloud hosting service we are developing in the University of Cambridge based on python technologies, mainly django, ansible, and celery. The users manage their hosts using a web panel, developed in django, with common options: ability to create a vhost, associate domain names to vhosts, install packages, recover from backups, make snapshots, etc. Interaction between the panel and the hosts are made using ansible playbooks launched asynchronously by celery tasks. The VM architecture has been designed to be VM platform agnostic and to provide disk replication and high availability. The University of Cambridge central IT services (http://www.ucs.cam.ac.uk/) also provides other services to the rest of the university like domain name registration, authentication, authorisation, TLS certificates, etc. We link all these other services with the hosting service by using APIs while keeping a microservices architecture approach. Thus, enabling the use/link of other services within the same hosting service web application.

Watch
Harry Percival - How to build a spreadsheet with Python

Harry Percival - How to build a spreadsheet with Python [EuroPython 2015] [22 July 2015] [Bilbao, Euskadi, Spain] Do you know how a spreadsheet works? Can you imagine building one, from scratch, in Python? This talk will be a whirlwind overview of how to do just that. Based on the source code of Dirigible, a short- lived experiment in building a cloud-based Pythonic spreadsheet (now [open-sourced](https://github.com/pythonanywhere/dirigible- spreadsheet), for the curious). We'll start from scratch, with a simple data representation for a two- by-two grid, and then gradually build up the functionality of our spreadsheet: - Cell objects, and the formula/value distinction - Evaluating cells, from simple arithmetic up to an Excel-like dialect - Building up the dependency graph, and the ensuing fun times with recursion (arg!) - Integrating custom functions and user-defined code. Showing and explaining code examples, and alternating with live demos (don't worry, I've done this before!) And it's all in Python! You'll be surprised at how easy it turns out to be, when you go step-by-step, each building on the last... And I promise you'll be at least a couple of moderately mind-blowing moments :)

Watch