EuroPython 2015 – Bilbao, 20-26 July



EuroPython 2015 – Bilbao, 20-26 July

1 0


europython2015

Presentation for CERN IT group meeting about EuroPython 2015

On Github switowski / europython2015

EuroPython 2015

Bilbao, 20-26 July

Where

Euskalduna Conference Centre and Concert Hall

Pintxos (Tapas)

Fun fact #2

Streets in Bilbao have names both in Spanish and in Basque. Open Street Maps displays names in one language and Google Maps is using the other one.

We came back with a lot of...

...knowledge about interesting talks that we would like to share today

Scaling MySQL with Python

MySQL 5.6 comes with some interesting features like:

  • Managing replications
  • Failover setup
  • Orchestration of multiple machines
  • Improved replications

MySQL version 5.6 and up comes with MySQL fabric that can be used to easily orchestrate machines (especially if you are using virtual machines) and setup failover solutions. Also another interesting thing is that since this version, the replication mechanism was changed: it no longer keeps track in a binary log, but each master/slave contains a list of transactions, so slaves can replicate not only the last operations, but they can catch up with past operations (they just look what transactions were not yet synchronized and synchronize them).
Python for IT specialists' tasks automation

Using various tools and text expanders for:

  • Translating phrases
  • Checking you IP
  • Pretty formatting of code
  • Automatic image processing when you upload a file to a folder
  • etc.

Nice presentation about how to make your life easier with some automation tools and text expanders. Speaker talks about using Alfred for: translating phrases, checking you IP, checking weather or money conversion rates, pretty formatting of code, automatic image processing when you upload a file to a folder, etc. He shows various tools for Mac but also gives alternatives for Linux and Windows.
Fun fact about Guido #1

His favorite text editor is ...

It Works on My Machine: Writing Python Code for Any Environment

  • Don't use hardcoded directory separators
  • Use six library
  • If six doesn't work, use you own conversion.py file

Another nice talk from a guy working for Amazon AWS. He talks about how to write code that will work nicely on various machines (for example, don't use hard-coded directory separators - because they are different on Linux: "dir/file" and on Windows "dir\file") and on different Python versions - six is a good library that allows you to prepare to move from Python2 to Python3 (you can also write your own conversion.py file that contains some conditional imports that you can later use in your project).
Writing quality code

Tools and techniques for measuring the quality of the code:

  • Cyclomatic complexity
  • Halstead metrics
  • Maintainability index
  • radon
  • pylint
  • Good practices for code reviews

Speakers talks about various metrics that can help to measure the "quality" of the code and gives examples of the tools that could help you with getting those metrics (you don't want to calculate them each time by hand). The second part of his talk is about code review - why it is important and what are the best practices for code review.
Fun fact about Guido #2

His favorite exception is ...

KeyboardInterrupt

Code is not text! How graph technologies can help us to understand our code better.

Pattern based review tool for identifing issues and bugs:

Diferent way how to understand code using graph techniques. https://ep2015.europython.eu/conference/talks/code-as-data-surprising-insights-we-get-when-stopping
Big Data Beautiful Visualization on the Browser with Bokeh

Interactive visualization library for large datasets.

  • D3.js
  • IPython Notebook

https://ep2015.europython.eu/conference/talks/big-data-beautiful-visualization-on-the-browser-with-bokeh
Distributed Workflows with Flowy

Library for building and running distributed, asynchronous workflows on different backends (Amazon SWF, Redis, Local).

def process_video(embed_subtitle, find_chapters, ...):
    def workflow(video_URL, subtitle_URL):
        new_URL = embed_subtitle(video_URL, subtitle_URL)
        webm_URL = encode_video(new_URL, 'webm')
        mpeg4_URL = encode_video(new_URL, 'mpeg4')
        ad_tags = target_ads(subtitle_URL)
        chapters = find_chapters(video_URL)
        thumbnails = [extract_thumbnail(video_URL, c)
                      for c in chapters]
        return video_URL, webm_URL, mpeg4_URL, thumbnails, ad_tags
    return workflow

https://ep2015.europython.eu/conference/talks/big-data-beautiful-visualization-on-the-browser-with-bokeh
Less Known Packaging Features and Tricks

Save your time and avoid packaging-induced-pain.

How many of you knows what MANIFEST.in is? Have you ever released package without needed file? Check your manifest and include it in your CI tools. Another tips are useful if you are creating package for various python versions or operating systems. Do not parse Python version yourself! Save yourself some troubles and use selectors to specify dependencies.
Mashing up py.test, coverage.py and ast.py to Take TDD to a New Level

Do you ♥ TTD but you hate waiting?

The usual developer problem when a testuite gets big. Should I run the whole testsuite when I change only a small fraction of code? People tend to re-run only failing tests but can one be sure that passed tests are not failing again? Testmon monitors code changes and executes only affected tests. code line -> list of tests pytest-watch
Fun fact about Python

It is time to write code for Python 2.7 3.5.

  • matrix multipliers (@)
  • type hints
  • PEP492 - async
EuroPython 2015 Bilbao, 20-26 July