EuroPython 2016 - Bonus Content

EuroPython 2016

This is a follow up post on EuroPython 2016, discussing the conference experience outside of the scheduled talks. You can read the original post here

Corridor Track

Besides the scheduled conference talks, there is much to be gained from meeting interesting new people and talking to sponsors in the breakout and expo areas. There was even a Pokemon Go competition to see who would be the trainer in the conference centre's gym by the end of the conference (whatever that means).

One of my highlights from the expo area was STX Next's coding challenge, which consisted of 4 different stages, starting with the one below which was the password to a Wi-Fi hotspot called try-except (answers on a postcard), and later consisted of sed and bytecode puzzles, culminating in an epic code clean-up/linting/pep8 challenge that I only just managed to complete before the deadline.

Can you work out what the password is?

Most Striking Lightning Talks

I've been to other events with lightning talks before, but I've never been to a lightning talk compèred by The Lightning Talk Man (known as Harald Armin Massa by day) and Harry Percival (author of Test Driven Development with Django). They set a strict rule of 5 minutes per talk, and signal to the audience to start clapping with 2 fingers once there are only 30 seconds left and another signal to clap fully when the time is up. During the short changeover between each lightning talk they also provide light entertainment with bizarre stories about squirrels, groan-inducing jokes and even a Salt-n-Pepa rap when the mood is right.

  • Announcement of the Django Code of Conduct documentation becoming open-source
  • Multi-line editing in IPython 5.0.0! Have you ever started writing a for loop or if statement and realised after writing the nested code that you need to go back and change the first line? No need to Ctrl+C and start again, thanks to prompt-toolkit you can now go up and down multi-line statements and edit your heart out!
  • Overview of f-strings in Python 3.6 (see PEP-498) and a library that will automatically turn %-string formatted code to f-strings
  • Reverse debugger with pypy revdb - step backwards from breakpoints/exceptions!
  • py3status and xrandr - use the command line to control your display screen settings
  • Word clouds of commonly used words by Star Wars characters derived from mining a movie scripts database. Can you guess which characters these word clouds belong to?

Darth Vader C3PO Jar-Jar Binks

Tools I didn't know existed

  • django-salmonella : provides CMS UI for rawidfields to speed up CMS loading time by avoiding queries for Foreign Key fields
  • vmprof : a profiler that is now included in the latest version of PyCharm. It provides a call tree with a timing for each call and can also show a heatmap of how long each line inside a certain function contributed to the function's overall execution time.
  • pytest-nodev: a library for test-driven code search and reuse - write a test for some functionality and this tool will collect together all standard library functions (or specified functions) and find one(s) that will pass the test using pytest!
  • Jupyter Notebook : Ok, so I did know what IPython Notebooks were before - I just didn't know what cool stuff you could do with it. In the IPython in depth workshop, I learnt there is a wide range of magical commands that you can play around with in IPython other than just writing Python code. These mainly consist of cell magics - checkout the %%timeit examples in the Python Under the Hood section. Rather scarily, you can even run other languages such as javascript, perl, and ruby using script magics. You can also insert pictures, audio and video, and turn your notebooks into presentation slides using nbconvert. In fact there are some O'Reilly books that have been written from a notebook, and I was so inspired that this blog post was originally written in an IPython notebook format! Check out this link for other cool IPython notebooks.
# Use the `!` to run shell commands from IPython
!which python
# /usr/local/bin/python
print("Hello World")
puts "Hello from Ruby #{RUBY_VERSION}"
# Hello from Ruby 2.3.0

Stuff on my reading list

I will leave you with some of my conference 'homework', some interesting articles and tutorials that I would like to get round to over the weekend. Thanks again to the EuroPython 2016 committee, Python Software Foundation and YPlan for giving me the opportunity to take part in such an awesome learning experience!