0.64
PyCon UK 2019
pyconuk-2019
2019-09-13
2019-09-17
5
00:05
https://pretalx.com
Europe/London
Assembly Room
Introduction
Talk
2019-09-13T09:00:00+01:00
09:00
00:30
Friday Introduction
pyconuk-2019-2544-introduction
Daniele Procida
en
Friday Introduction
false
https://pretalx.com/pyconuk-2019/talk/MPGPVU/
https://pretalx.com/pyconuk-2019/talk/MPGPVU/feedback/
Assembly Room
Reproducible Science: The Good, The Bad, The Ugly and The Untold
Talk
2019-09-13T09:30:00+01:00
09:30
01:00
Coming soon...
pyconuk-2019-2583-reproducible-science-the-good-the-bad-the-ugly-and-the-untold
Dr. Tania Allard
en
Coming soon...
false
https://pretalx.com/pyconuk-2019/talk/DKQLGQ/
https://pretalx.com/pyconuk-2019/talk/DKQLGQ/feedback/
Assembly Room
Astro Pi: Python on the International Space Station
Talk
2019-09-13T10:30:00+01:00
10:30
00:30
A collaboration between the Raspberry Pi Foundation and the European Space Agency put two Raspberry Pi computers augmented with sensor boards and camera modules on the International Space Station in 2015.
pyconuk-2019-2402-astro-pi-python-on-the-international-space-station
Ben Nuttall
en
A collaboration between the Raspberry Pi Foundation and the European Space Agency put two Raspberry Pi computers augmented with sensor boards and camera modules on the International Space Station in 2015. Every year we run a series of competitions for kids in schools around Europe to design science experiments using the available sensors.
Mission Zero is a low-barrier challenge where students can run a 1 minute Python program in space to display a message to the astronauts. They have access to the sensors for conditional logic but cannot record data or take photos.
Mission Space Lab is a more involved challenge, including planning an experiment, writing and testing code which will run for 3 hours in space, either studying life in space or life on earth (which includes taking photos of Earth out of the ISS window). MSL teams get to keep the data and photo they record in their experiment and are to write a report analysing their findings.
A small tech team at the Raspberry Pi Foundation maintain the operating system used in flight and work in collaboration with ESA and partners to keep the operation of the Pis running smoothly on the ISS LAN.
As well as sharing details of the OS maintainance and devops for the Astro Pis, I'll share photos taken from space and show findings from student experiments using opencv, tensorflow, scikit-learn, ephem and more.
false
https://pretalx.com/pyconuk-2019/talk/3ZRJS8/
https://pretalx.com/pyconuk-2019/talk/3ZRJS8/feedback/
Assembly Room
You are in a maze of twisty little passages
Talk
2019-09-13T11:30:00+01:00
11:30
00:30
You are a robot tasked with mapping a maze, but a lot of these rooms look weirdly similar. What do you do? A light hearted introduction to some neat algorithms.
pyconuk-2019-1866-you-are-in-a-maze-of-twisty-little-passages
David R. MacIver
en
You are a poor little robot, lost in a maze. Your mission, you should choose to accept it (robots don't get to turn missions down) is to map out the maze.
But there's a problem! Maybe it's your tiny robot sensorium not being good enough, but you can't tell the difference between most of these rooms! How can you possibly map the maze when all of these rooms look basically the same?
Fortunately, there's an algorithm for that.
In this talk I'll teach you a little bit about a neat area of theoretical computer science called *formal language inference*. You probably don't *need* to know anything about this area, but it's a lot of fun, and will serve as a nice approachable introduction to some foundational computer science.
This talk will be accessible with minimal technical background. Some very basic maths and Python might be helpful to know, but certainly no computer science degree required.
false
https://pretalx.com/pyconuk-2019/talk/8XZNDS/
https://pretalx.com/pyconuk-2019/talk/8XZNDS/feedback/
Assembly Room
Sans I/O programming patterns – what, why, and how
Talk
2019-09-13T12:00:00+01:00
12:00
00:30
Programmers have plenty of powerful, flexible libraries – and yet we often end up reinventing the wheel. Why? Because they’re not reusable – code gets trapped by its I/O model.
In this talk, we’ll look at the benefits and techniques for writing “sans I/O” code.
pyconuk-2019-2258-sans-i-o-programming-patterns-what-why-and-how
Alex Chan
en
This talk looks at the “sans I/O” programming pattern. I’ll talk about the problems of writing code that mixes I/O and business logic, how you can write your code in a sans I/O way, and the benefits of doing so. We’ll also look at some examples of code that uses this pattern, so you can see how to use it in your codebase.
This pattern isn’t revolutionary or life-changing, but it does give you a codebase that's nicer to work with.
false
https://pretalx.com/pyconuk-2019/talk/8HMJJL/
https://pretalx.com/pyconuk-2019/talk/8HMJJL/feedback/
Assembly Room
Asynchronous Web Development with Flask
Talk
2019-09-13T12:30:00+01:00
12:30
00:30
A common misconception is that traditional frameworks such as Flask and Django are incompatible with asynchronous web servers. In this talk I'm going to show you how to write an asynchronous web application using Flask.
pyconuk-2019-1843-asynchronous-web-development-with-flask
Miguel Grinberg
en
Asynchronous web servers are hot these days, but to have access to this technology in Python most people will tell you that you need to use one of the new asyncio based web frameworks. Unfortunately none of those frameworks have the robustness, extension ecosystem or developer community of more traditional options such as Flask or Django.
So here is one of the best kept secrets in the Python world: Did you know that asyncio is not the only way to implement asynchronous servers, and that some of the alternatives to asyncio are fully compatible with your favorite WSGI web frameworks, including Flask, Django and many others?
In this talk I'm going to show you how to write a fully asynchronous web application using Flask. All the techniques I'll show are also applicable to Django and most other WSGI web frameworks!
false
https://pretalx.com/pyconuk-2019/talk/8CXAGR/
https://pretalx.com/pyconuk-2019/talk/8CXAGR/feedback/
Assembly Room
Technical Debt Remediation in a Massive Python Codebase
Talk
2019-09-13T14:30:00+01:00
14:30
00:30
The Quartz engineering team at Bank of America hosts one of the world's largest python codebases. Changes in core components of the platform can have high impact.
pyconuk-2019-2343-technical-debt-remediation-in-a-massive-python-codebase
Irit Katriel
en
How do you safely make changes in a library that thousands of applications are using? Why would a one-line bugfix take months or years to roll out? These are the day to day problems we face in the Quartz engineering team at Bank of America, which hosts one of the world's largest python codebases. In this talk Irit Katriel, one of the Quartz technical leads, will describe some of the unique maintenance challenges she and her team have tackled.
false
https://pretalx.com/pyconuk-2019/talk/DHYMLQ/
https://pretalx.com/pyconuk-2019/talk/DHYMLQ/feedback/
Assembly Room
Training my dog with Python
Talk
2019-09-13T15:00:00+01:00
15:00
00:30
This talk will cover a range of topics around a tool I have built to enhance work sessions with my dog.
pyconuk-2019-2381-training-my-dog-with-python
Vince Knight
en
This talk will culminate in describing a Django Rest Framework I have built to keep track of the behaviours ("tricks") that my dog has learnt for the sport of discdog which involves acrobatic catches of frisbees. The tool also generates a particular sequence of these behaviours (a "routine") which ensures our training sessions always serve the purpose of being mentally stimulating.
I will start by describing some modern concepts of dog behaviour and present their parallels to higher education pedagogy (my day job is an educator).
Following this I will describe the sport of discdog and show some videos and photos of what it entails. (This is the cool part of the talk.)
I will then describe the tool that has been built and describe how it assists with our training.
This talk should be of interest to people who don't dislike dogs, like cool things and/or want to see how someone who is not a web developer used the Django Rest Framework to improve a part of their life.
Depending on how much time I have to work on the tool there's a chance that there will be some machine learning as well (because "machine learning", who knows maybe even some blockchain). That's a joke, there will not be blockchain.
false
https://pretalx.com/pyconuk-2019/talk/HTBP7D/
https://pretalx.com/pyconuk-2019/talk/HTBP7D/feedback/
Assembly Room
More Than You Ever Wanted To Know About Python Functions
Talk
2019-09-13T15:30:00+01:00
15:30
00:30
Let's talk about functions, methods, callables and closures - what they are, what you can do with them ... and what's inside.
Afterwards you'll know more about callables, along with techniques both practical and so extreme your colleagues will never let you merge them to master.
pyconuk-2019-2427-more-than-you-ever-wanted-to-know-about-python-functions
Mark Smith
en
What exactly _are_ functions? Let's talk about functions, methods, callables and closures - what they are, what you can give them, what they can give you, what you can do with them ... and what's inside.
You probably think you already know everything about functions, but you probably don't!
**Input & Output**: How do you get things in and out of functions? I'll cover parameters and the myriad of ways they can be specified, provided and accessed - including helpful hints to avoid common mistakes! I'll cover return values, briefly, along with variable scopes and exceptions.
**Closures**: What are they, how do they work and how they can affect memory usage.
**Methods**: How does a method differ from a function, when are they made, how do they work (where does `self` come from?) and how to access the function inside every method.
**\_\_magic\_\_**:Make your own callables from any object!
**Introspection**: Using modern Python techniques, what can you find out about a function, and what can you do with that information?
**Bytecode**: What happens if you open up a function and look at its insides? Can you change it and put it back together again? (Spoiler: Yes, you can.)
By the end of this talk, I guarantee* you'll know more about callables than when you walked in, along with techniques both practical and so extreme your colleagues will never let you merge them to master.
(*This guarantee is legally non-binding and cannot be redeemed in any way.)
false
https://pretalx.com/pyconuk-2019/talk/NXNPMX/
https://pretalx.com/pyconuk-2019/talk/NXNPMX/feedback/
Assembly Room
How to write readable tests
Talk
2019-09-13T17:00:00+01:00
17:00
00:30
So often, our tests are much harder to understand than the rest of our code. This is a shame! Find out how to write tests that act as living documentation from which you can gain deeper understanding of your system.
pyconuk-2019-2358-how-to-write-readable-tests
David Seddon
en
Have you ever found yourself scratching your head when reading an automated test? Even if we take pride in our application code, it’s all too easy for us to neglect readability in our tests.
But tests can be more than just a safety net that nobody reads unless they break. In this talk, I’ll show you how to write Python tests that you will love, and keep coming back to.
Topics will include:
- Showing what matters and hiding the rest
- Don’t Repeat Yourself in tests, too
- Using custom dataclasses
- Arrange, Act, Assert
- Telling a story
- Showing your working
- Sentinels
false
https://pretalx.com/pyconuk-2019/talk/PJRZXZ/
https://pretalx.com/pyconuk-2019/talk/PJRZXZ/feedback/
Assembly Room
Lightning talks
Something Else
2019-09-13T17:30:00+01:00
17:30
01:00
Lightning talks.
pyconuk-2019-2545-lightning-talks
Mark Smith
en
Short talks.
false
https://pretalx.com/pyconuk-2019/talk/WKYUSG/
https://pretalx.com/pyconuk-2019/talk/WKYUSG/feedback/
Ferrier Hall
Optimizing Input: Building your own customized keyboard
Talk
2019-09-13T11:30:00+01:00
11:30
00:30
Keyboards, the main way we interact with computers, have remained unchanged for a century, despite being free from mechanical necessity. Alternatives made possible by recent technology can optimize the way we input text and interact with our devices.
pyconuk-2019-2413-optimizing-input-building-your-own-customized-keyboard
Daniel Rios
en
As computer users, we spend copious amounts of time in front of screens, but, as writers and editors of text, we tend to ignore or overlook the way we most directly interact with our development environments, the keyboard.
The keyboard standard set by QWERTY has remained unchallenged for about a hundred years, despite being free from the mechanisms that dictated the way mechanical typewriters had to be built. Recent developments in electronics manufacturing, laser cutting, and 3D printing have allowed a community of keyboard makers to flourish and challenge the status quo. This talk will set out to upend preconceived notions of input, and will present alternative keyboard layouts, both virtual and physical.
We will start by covering the history of keyboard layouts, and how the physics of staggered keys created the standard QWERTY layout that we still use today. Next, we will move on to software-based alternate layouts that can be installed on existing computers, usually with minimal effort. We will then make the jump from bits and bytes to switches and diodes, exploring the way a keyboard works. Further, we will discuss microcontrollers used and developed by the keyboard community, and, finally, end on the open-source software used to program and configure these devices. As a grace note we will see a demo of a custom-built keyboard using a PyBoard as a microcontroller.
false
https://pretalx.com/pyconuk-2019/talk/8VC9EY/
https://pretalx.com/pyconuk-2019/talk/8VC9EY/feedback/
Ferrier Hall
Code walk this way
Talk
2019-09-13T12:00:00+01:00
12:00
00:30
How can you help Pythonistas learn a new code base more quickly and level up their Python skills? One way is with a 'code walk' — talking through a code base while reading the code together. I will talk about how I like to structure a code walk and its benefits.
pyconuk-2019-2455-code-walk-this-way
Mary Chester-Kadwell
en
How can you help Pythonistas learn a new code base more quickly and level up their Python skills? One way is with a 'code walk' — talking through a code base while reading the code together.
Over the last five years I have spent a lot of time doing 'code archaeology' i.e. trying to understand how and why someone else's code works! Of all the techniques I've come across, code walking is one of the most unusual, but it has excited me the most, and I want to share my ideas on how to do it with you.
I will talk about how you could structure a code walk, starting with the overall structure of a code base and how it interacts with other components, to highlight what is more or less important, what is standard, and what is special or weird, and drilling down into the code to discover typical usage, entry points, core code, the flow of execution, and more.
I'll also mention some of the benefits that a code walk might bring to your team, such as helping beginners to level up, bringing new starters on board, helping old hands structure their knowledge into digestible chunks, and kick starting communication amongst team members.
false
https://pretalx.com/pyconuk-2019/talk/98UHZP/
https://pretalx.com/pyconuk-2019/talk/98UHZP/feedback/
Ferrier Hall
Static Typing in Python
Talk
2019-09-13T12:30:00+01:00
12:30
00:30
In this talk, we'll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional "type hints" and various tools to aid in adding types to Python code.
pyconuk-2019-2357-static-typing-in-python
Dustin Ingram
en
Python is well-known as a programming language without static types. This means that you don't need to say what a given variable will hold, or whether your function will return a string or an integer (or sometimes one, and sometimes another!). This has historically made Python a very flexible and beginner-friendly language.
In this talk, we'll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional "type hints" and various tools to aid in adding types to Python code. We'll see what this means for Python, for Python programmers, and what the future has in store for Python's type system.
This talk is for Python programmers who either don't know what static typing is, don't know why why they might want it, or who do have some understanding, but aren't sure what benefits they might get by adding type annotations to their code.
Attendees should know that there is a distinction between typed and untyped code, and understand what some types (list, int, string, etc) are, but don't need to know exactly what static typing is or have direct experience with typed code.
After watching this talk, attendees should understand that Python is untyped by default but can be typed. They should understand the class of problems that adding type annotations seeks to alleviate, and some tools they can use to add and check type annotations.
false
https://pretalx.com/pyconuk-2019/talk/QQP9QB/
https://pretalx.com/pyconuk-2019/talk/QQP9QB/feedback/
Ferrier Hall
Awesome live API docs for under-resourced teams
Talk
2019-09-13T14:30:00+01:00
14:30
00:30
Since all software dev teams are under-resourced, let's see how to get pretty good "living" docs with as little effort as possible. These allow the API to be used directly from the docs. We'll look at a real open source app built with Flask, Swagger and SwaggerUI.
pyconuk-2019-2450-awesome-live-api-docs-for-under-resourced-teams
Emanuil Tolev
en
Once upon a time, a non-profit had a website. Not just any website - this website allowed thousands of companies and other non-profits to upload data into it. For this purpose, the website employed some delicious XML processing and a file upload form. For many years, all was seemingly well.
But the non-profit was growing restless - people expected more than needing to login all the time and upload new and changed records. Some of their data partners had many thousands of records which could never be uploaded by hand. So the non-profit sought the (cough) wise counsel of its technical partner Cottage Labs, and ordered the creation of an API.
This is where our journey begins - a team of 3 developers who could only be part-time on this project but had lofty 'live API docs' ambitions. Come and see how they achieved whatever good they managed, and how you could do do better if you were to start upon a similar path today.
false
https://pretalx.com/pyconuk-2019/talk/LVNR7V/
https://pretalx.com/pyconuk-2019/talk/LVNR7V/feedback/
Ferrier Hall
Syntactic sugar vs maintainability
Talk
2019-09-13T15:00:00+01:00
15:00
00:30
Is it ever worth committing coding sins for the greater good? We'll look at techniques which can make your code easier to use at the cost of being harder to maintain, and when the effort is worth the reward.
pyconuk-2019-1788-syntactic-sugar-vs-maintainability
Richard Terry
en
There are plenty of ways in which you can use and abuse the power of python to make your library code easier for your users to work with. I'm going to talk you through some techniques to design clean and simple library interfaces for your users, and explain how they can make things both easier and harder at the same time.
Using real world examples we'll touch on topics such as automatic registration using metaclasses; changing base classes at runtime to save your users a line of code; and the joys and pitfalls of monkey patching things which should probably never be monkey patched.
By the end of the talk you'll know why doing these things is usually a bad idea, and why I think it's worth doing them anyway.
false
https://pretalx.com/pyconuk-2019/talk/GHRAJT/
https://pretalx.com/pyconuk-2019/talk/GHRAJT/feedback/
Ferrier Hall
Regexplained - Understanding the theory of Regular Expressions
Talk
2019-09-13T15:30:00+01:00
15:30
00:30
This talk aims to break down Regular Expressions to their base concept as finite automata.
Attendees will leave this with an understanding of the theory of Regular Expressions,
allowing them to better understand and construct complex regexes.
No prior knowledge of regexes or finite automata is required.
pyconuk-2019-1963-regexplained-understanding-the-theory-of-regular-expressions
Samathy Barratt
en
Many people see Regular Expressions as being a messy collection of unintelligible symbols
which somehow match strings. However, Regular Expressions come from a
theoretical computer science concept in the family of finite automate, or
finite state machines. Understanding how to visually and mentally represent a regular expression
as a finite automata can help to understand how they work, how they match
strings and what one can and can't do with them.
This talk is suitable for attendees of any computer science background and
experience level, having seen a regex before would be useful but not essential.
Attendees will leave this talk with a better understanding of how to visualise a
regex as a state machine. Attendees can use this knowledge to help them better
construct and understand powerful regexes.
false
https://pretalx.com/pyconuk-2019/talk/MDL9VK/
https://pretalx.com/pyconuk-2019/talk/MDL9VK/feedback/
Ferrier Hall
Philosophy of Refactoring
Talk
2019-09-13T16:30:00+01:00
16:30
00:30
Many of us can recite the advantages of well factored code, yet in practice it is easy to let standards slide. This talk explores the *mindset* one should adopt to have a well factored codebase, complete with examples of how this looks in practice.
pyconuk-2019-2366-philosophy-of-refactoring
Jacob Unna
en
At Deloitte we frequently switch between clients, which means we must be prepared to work with a new tech stack at short notice. When learning a new technology it may be natural to try and gain a *knowledge* of its syntax, standard library and idioms. Yet an overarching *understanding* of how to factor problems into well-conceived functional units is even more important.
This talk will explain how to tame a difficult problem by adopting a rigorous philosophy towards separation of concerns, a topic that is relevant to any language but particularly important in the Python community, which places great emphasis on beauty and readability.
Examples of how factoring can be improved will be provided with the code posted on GitHub, but the take home message is around the *mindset* required to write well factored code, not the tooling.
Let *human beings*, with their limitless *creativity* but *poor short term memory*, operate on a single level of abstraction. Let *machines*, with their capacity to *handle data* but *lack of original thought*, do the legwork of building a coherent application.
false
https://pretalx.com/pyconuk-2019/talk/PJCYDP/
https://pretalx.com/pyconuk-2019/talk/PJCYDP/feedback/
Lower Hall
DjangoGirls Setup Helpdesk
Something Else
2019-09-13T16:30:00+01:00
16:30
01:00
Help with laptop setup for DjangoGirls workshop
pyconuk-2019-2740-djangogirls-setup-helpdesk
Ann Barr
en
We'll have coaches on hand to help setup your laptop ready for Saturday's workshop.
false
https://pretalx.com/pyconuk-2019/talk/3SSVNY/
https://pretalx.com/pyconuk-2019/talk/3SSVNY/feedback/
Lower Hall
Board Games and Manual Technology Evening
Something Else
2019-09-13T19:30:00+01:00
19:30
02:30
Not a screen or keyboard in sight!
pyconuk-2019-2627-board-games-and-manual-technology-evening
SandyBecky Smith
en
Everybody is welcome, whatever level of experience you have.
If you've never played/knitted/crocheted before, come along and see what it's all about. If you've been playing/knitting/crocheting for years, come and show us what it's all about!
false
https://pretalx.com/pyconuk-2019/talk/D9ZVRG/
https://pretalx.com/pyconuk-2019/talk/D9ZVRG/feedback/
Room B
Step Into the AI Era: Deep Reinforcement Learning Workshop
Workshop
2019-09-13T10:30:00+01:00
10:30
01:30
By engaging in the revolution of AI and deep learning, reinforcement learning has also evolved from being able to solve simple game puzzles to beating human records in Atari games. It has also opened up the possibility of using reinforcement learning in making real life decisions.
pyconuk-2019-2405-step-into-the-ai-era-deep-reinforcement-learning-workshop
Charlotte FeatherCheuk Ting Ho
en
In this workshop we would introduce some deep reinforcement learning (DRL) algorithms. The exercises will involve implementing them in python with deep learning libraries, specifically keras and tensorflow, to play games in Open AI Gym and simulated Atari. We will also explore real life usecases, like in robotic and business.
In the first section, we will touch on the basic in reinforcement learning and implement using crossentropy method to play a simple games, on top of implementing the basic tabular crossentropy method, we will also implement deep crossentropy method which keep track of the policy when it becomes too large.
Most of the problem in the real world are model-free setting, i.e. we don’t know what the final result will be like for our intermediate actions. In the second section, we will introduce Q-learning and SARSA, two model-free policies which involve understanding of Bellman equations. We will also start introducing experience replay buffer which is essential to speed up learning.
In the last section, we will explore using DQN (Deep Q-Network), which is a network develop by Google Deep Mind involve using CNN as an agent to play Atari game. Experience replay buffer will also be implemented to speed up learning.
As the end of the workshop, participants should be able to understand the concept of the deep reinforcement learning algorithms that we covered, implement them in python with keras and tensorflow, and potentially able to implement DRL in their work and projects.
We expect the participants to have basic knowledge in deep learning (especially CNN) and experience in using keras and tensorflow. We also expect participants to be able to have the required environment set up in their machine or their cloud platform (whichever they prefer) given the Docker image. Setup guide will be release prior to the workshop.
false
https://pretalx.com/pyconuk-2019/talk/SLMPZN/
https://pretalx.com/pyconuk-2019/talk/SLMPZN/feedback/
Room C
Demystifying Neural Networks
Workshop
2019-09-13T10:30:00+01:00
10:30
01:30
Let's write a (tiny but working) Neural Network library from scratch!
Well, almost from scratch, we will still use `NumPy`.
And we will try to do it in less than 1000 lines of code.
pyconuk-2019-2362-demystifying-neural-networks
Michal Grochmal
en
We see many talks that explain neural networks (NNs), that describe the
different architectures and the problems for which each architecture is best.
We are **not** going to talk about that here. Instead, we will talk about the
implementation of NNs, about how we make NNs work in code - not by using a
library but by writing it ourselves.
Have you ever experimented with `pytorch`? With `Tensorflow`? With `PySpark`?
Have you built and trained a NN with one of these libraries? The process of
doing so is simple: You describe the overall NN architecture, feed the data,
and then execute a training procedure which runs for a while. This training
process "magically" produces a trained NN (be it well trained or badly
trained), which can then be used for predictions.
The process of getting a trained NN begs a question: *what* is the magic that
trains the NN into a predictive tool? Several resources explain NNs as a bunch
of circles connected by arrows, that is a good conceptual representation of a
NN but has no similarity with the actual implementation of the NN or of its
training procedure. Below the hood the implementation of a NN and its training
makes no circles or arrows, instead it is a clever sequence of matrix
multiplications.
We will go through the conceptual representation of a NN and then expand it and
describe the implementation. We will look at some mathematical concepts and
then we will see how to implement those concepts in `NumPy`. We will use
`NumPy` but we will see that we can substitute the `NumPy` parts of our code
with GPU or distributed processing.
The objective is to understand how NN libraries are programmed, and understand
where the GPU (`Tensorflow`, `pytorch`) or the distributed processing
(`PySpark`) is used within a NN library. We want to demystify NN libraries, to
prove that it is possible to write a simple NN library in less than 1000 lines
of code.
P.S. `NumPy` matrix multiplication (`np.dot`) knowledge is required.
false
https://pretalx.com/pyconuk-2019/talk/RTB7BQ/
https://pretalx.com/pyconuk-2019/talk/RTB7BQ/feedback/
Room D
Logging Rethought 2: The Actions of Frank Taylor Jr.
Talk
2019-09-13T11:30:00+01:00
11:30
00:30
We build services, potentially used by millions of people. And despite all the testing we do, some interactions with these services will not work out the way we hope. Wouldn’t it be great to reconstruct what let to a problem and analyze if the problem occurred at other times?
pyconuk-2019-2047-logging-rethought-2-the-actions-of-frank-taylor-jr-
Markus Holtermann
en
In this talk I want to look at structured logging. What are the benefits of it over plain text logging. How can it be used effectively?
Logging, by itself, can help to trace bugs. Structured logging adds additional, post-logging capabilities when used correctly. Because log events are structured data, they can be analyzed much more efficiently and effectively than plain text log messages. Furthermore, one can even build graphs and diagrams to nicely visualize what’s happening in a service.
false
https://pretalx.com/pyconuk-2019/talk/WJGTWP/
https://pretalx.com/pyconuk-2019/talk/WJGTWP/feedback/
Room D
Python in Medicine: A toolkit for exploring neonatal ventilator data
Talk
2019-09-13T12:00:00+01:00
12:00
00:30
Modern ventilators generate large amounts of pressure and flow data that clinicians cannot realistically monitor over long periods of time. A toolkit for segmentation and extracting breath-wise features would provide a means for summarising this information and investigating the relationship of different ventilator and patient characteristics to individual breaths.
pyconuk-2019-1935-python-in-medicine-a-toolkit-for-exploring-neonatal-ventilator-data
David ChongGusztav Belteki
en
Mechanical ventilation is an essential therapy during intensive care for patients who are unable to breathe alone. Modern mechanical ventilators (breathing machines) generate large amount of data about the airway pressure and flow used during lung inflations and the volume of ventilator inflations (breaths). These data are displayed on the ventilator screen in real time but traditionally they are not downloaded or stored in the longer term. The newest models of ventilators allow for downloading these raw data with a high sampling rate (100 Hz or more). These data can be used to analyse how the ventilator has been performing and how it has been interacting with the patient. However, analysis of these large datasets requires computational tools.
Using Python, we have developed a toolkit to analyse these high throughput data obtained from neonatal ventilators in more detail. The toolkit allows for segmenting the ventilator data streaming continuously from the medical device into individual ventilator inflations (breaths). It also extracts important features of these inflations such as duration of different parts (lung inflation time, deflation time etc) and the presence or absence of ventilator-patient interactions. We would like to use these tools to develop quantitative indicators of how comfortable the baby has been during the mechanical ventilation. Such indicators would be of great interest to clinicians.
false
https://pretalx.com/pyconuk-2019/talk/S8ZQQS/
https://pretalx.com/pyconuk-2019/talk/S8ZQQS/feedback/
Room D
The dos and don'ts of task queues
Talk
2019-09-13T14:30:00+01:00
14:30
00:30
Let’s talk about our experience with Celery and intentions to switch to RQ which failed. We’ll show our setup of larger apps than the ones presented in doc examples together with useful tips&tricks on the orchestration of such apps.
pyconuk-2019-2152-the-dos-and-don-ts-of-task-queues
Petr Stehlík
en
At Kiwi.com we heavily rely on task queues and asynchronous execution of code to process large amounts of requests coming to our back-ends. With the separation of our codebase to microservices, we can quickly try new tools and different approaches to process these large volumes of requests. The microservice we’ll be talking about is making unreliable slow 3rd party services reliable and asynchronous with a bit of business logic sprinkled on top of it. We’ll tell a failure story of ours but resulting in a valuable lesson.
Most of our services use Celery and it’s the go-to tool for new services as well but we wanted to be different with this new microservice. RQ is the next best choice for task queues and it is presented as simpler and more straightforward than Celery. That can definitely be true but after 3 weeks of research, development and struggling we found out the unpleasant truth about being simple and making the right choices. We won’t talk about comparing the frameworks but rather about the approach on how to experiment with new things in your environment. After that, we’ll present our current setup which can take upon any number of tasks*. How we orchestrate the app and continuously integrate and deploy and what fun things await ahead of us in the development.
*Conditions may apply.
false
https://pretalx.com/pyconuk-2019/talk/HJM7JE/
https://pretalx.com/pyconuk-2019/talk/HJM7JE/feedback/
Room D
Automating Code Review As Much As Possible
Talk
2019-09-13T15:00:00+01:00
15:00
00:30
While the best code is no code at all, we do need to deal with the rest of it
pyconuk-2019-2437-automating-code-review-as-much-as-possible
Qasim K
en
Code review is essential for security, sharing knowledge, and preventing bugs. It can also take up a lot of time, especially if you want to be thorough - at one point I was spending more time reviewing than actually coding.
Fortunately, there is a wide range of tools that are very good at taking much of the common and tedious checking off your hands. Using these can leave us free to focus on the big picture, whether reviewing someone else's code or checking over your own.
Naturally, I ended up spending more time wrangling with these tools than actually coding, but I did learn which ones were worthwhile for which situation.
In this talk we'll look at the tools available to check the code style, find bugs, or detect security issues, and find out how to best use (or avoid) them to speed up development both now and in the long-run.
false
https://pretalx.com/pyconuk-2019/talk/TVSVX8/
https://pretalx.com/pyconuk-2019/talk/TVSVX8/feedback/
Room I
Flask-restplus workshop for beginners
Workshop
2019-09-13T10:30:00+01:00
10:30
01:30
Small workshop how to build your first api's using flask restplus. Hands-on! Please make sure you have python 3.6+ and pip installed!
This will be the link to the workshop code: https://github.com/wbbraam/pyconFlaskRestplus
pyconuk-2019-1923-flask-restplus-workshop-for-beginners
Wietse BraamAlp Inan
en
This workshop is based on a workshop we gave within the infrastructure department of ING. We gave this workshop to teach people the ease of using python for API building.
During this workshop we will teach you how to build a simple API and test it. Flask has been known as a good and simple option to build your python based api's. Flask-restplus however gives you some of the much needed extra's that will make your life even easier.
At the end of this workshop, you will be able to write python code to build and model your very own api's. And spin up the flask server with an included swagger interface to test and document your API's.
false
https://pretalx.com/pyconuk-2019/talk/VKJJVG/
https://pretalx.com/pyconuk-2019/talk/VKJJVG/feedback/
Room J
Intro to integrating search into your Django app
Workshop
2019-09-13T10:30:00+01:00
10:30
01:30
A hands-on tutorial for people who want to start learning about and integrating search & discovery into their apps.
pyconuk-2019-2452-intro-to-integrating-search-into-your-django-app
Emanuil Tolev
en
We'll start with a few basic things to keep in mind about full-text search, product search, catalogues, result relevance and user experience. We'll then go through a series of steps together that will leave you with a minimal working Django example you can take back and apply to your work projects. Time is limited, so the focus will be on getting you to see and go through a simple approach you can copy easily later to produce useful prototypes for your work. Only open source will be used - Elasticsearch for the search back-end. This is an intro workshop, so only basic data modelling, search and aggregations/facets are covered.
For anyone building something that needs search, the presenter will be available at the conf outside of this session for 1:1 discussions on what you're trying to do with search & discovery, how it might help or what excites you about the possibilities it opens up.
false
https://pretalx.com/pyconuk-2019/talk/KCWURZ/
https://pretalx.com/pyconuk-2019/talk/KCWURZ/feedback/
Jail
Just Visiting
Something Else
2019-09-13T10:30:00+01:00
10:30
03:00
A visit to Her Majesty's Prison, Cardiff
pyconuk-2019-2736-just-visiting
David Spademan
en
During PyCon UK 2019 there will be a visit to HMP Cardiff. The application is open to conference delegates only.
The visit will take place on Friday 13 September from 11:00 to 13:30. We will leave the conference at 10:30 immediately after the Keynote. The walk to the prison will take ~13 minutes.
The visit will be hosted by a representative of HMPPS New Futures Network and will include a tour of training workshops, a presentation about education in prison and employing those coming out of prison.
Due to limited spaces completing the form does not guarantee a place on the visit. You will receive an email following the application deadline of Friday 6 September.
For more information email David Spademan at pyconukprisonvisit@gmail.com
Sign up at https://forms.gle/KEB2RcKgxYNDhANy5
false
https://pretalx.com/pyconuk-2019/talk/TW9CEG/
https://pretalx.com/pyconuk-2019/talk/TW9CEG/feedback/
Assembly Room
Introduction
Talk
2019-09-14T09:00:00+01:00
09:00
00:30
Saturday Introduction
pyconuk-2019-2546-introduction
Daniele Procida
en
Saturday Introduction
false
https://pretalx.com/pyconuk-2019/talk/PRWPCE/
https://pretalx.com/pyconuk-2019/talk/PRWPCE/feedback/
Assembly Room
Leadership and Identity in the Pan-African Python movement
Talk
2019-09-14T09:30:00+01:00
09:30
01:00
In this talk, I will be discussing three lessons about leadership that I learned during my time chairing Pycon Africa 2019. I will also be sharing how personal and group identity played a consistent and significant role throughout the process.
pyconuk-2019-2580-leadership-and-identity-in-the-pan-african-python-movement
Marlene Mhangami
en
Coming soon...
false
https://pretalx.com/pyconuk-2019/talk/79GTCG/
https://pretalx.com/pyconuk-2019/talk/79GTCG/feedback/
Assembly Room
Depression in the Workplace; Let's talk.
Talk
2019-09-14T10:30:00+01:00
10:30
00:30
Depression affects a surprising amount of people, and despite the common belief that your personal issues shouldn't come to work with you, it does. This talk will touch on what depression is, how it affects someone's life and ways to communicate with someone who suffers from it.
pyconuk-2019-1776-depression-in-the-workplace-let-s-talk-
Chloe Parkes
en
:wave:
This is to raise awareness of depression. Typically the advice given and conversations had with people who suffer from depression are not particularly helpful; this is generally due to people being misinformed.
I will go through what depression is, and how it affects someone in the real world. This involves delving into my personal depression, compared against the symptoms which are on the NHS website and explaining how they have an effect. It's emphasised that it affects people differently - But by explaining how it actually affects someone who is actively suffering from it, it's more real.
I'll then go over things such as what to say, but a little more focus on what not to say. Such as: avoiding recommending solutions, when you're not a medical doctor or psychologist; giving people space; being open for sharing (if you want to be), but not pressuring it.
I've given this talk at my workplace; the comments were that it was raw, and really resonated with people.
false
https://pretalx.com/pyconuk-2019/talk/YDBBKR/
https://pretalx.com/pyconuk-2019/talk/YDBBKR/feedback/
Assembly Room
Robotic Microscopy for Everyone
Talk
2019-09-14T11:30:00+01:00
11:30
00:30
The OpenFlexure Microscope is an open-source, 3D-printed motorised microscope targeted towards medical applications in sub-Saharan Africa. This talk will introduce our work with local innovation hubs, research institutions, and clinics to develop control software that encourages contributions across all communities, from school pupils to professors.
pyconuk-2019-1991-robotic-microscopy-for-everyone
Joel Collins
en
The OpenFlexure Microscope has applications ranging from a low-cost educational tool all the way up to a research-grade laboratory instrument. Previously, everyone used their own set of hastily-written control scripts, leading to duplicated effort and an interface that was difficult for non-programmers to use.
In response, we have been rebuilding our Python-based control software from the ground up, with our collaborators in Cambridge and Tanzania. By introducing a new common core, a comprehensive plugin system, and a Flask-based web API, we have been able to draw on the expertise of a diverse community to create a highly customisable software stack for controlling the device in any setting.
Our work has particularly focused on low-cost Malaria diagnosis, allowing automated analysis on a network of microscopes. Where trained microscopists are in short supply, this automation helps existing technicians diagnose more patients, and facilitates better training. Our developments have also enabled school pupils to develop microscope control scripts as part of outreach projects, and will soon see the microscope used in university-level teaching labs.
Open-source hardware is poised to revolutionise countless industries such as research, local manufacturing, and education. However, developing scientific instrumentation poses a unique set of challenges revolving around synchronisation, data transmission, and resource management. By building a software stack designed from the start to be extensible, we are building a strong community across each of these areas, where every contribution can directly benefit all applications around the globe.
false
https://pretalx.com/pyconuk-2019/talk/Z3EC7X/
https://pretalx.com/pyconuk-2019/talk/Z3EC7X/feedback/
Assembly Room
Clean Architectures in Python
Talk
2019-09-14T12:00:00+01:00
12:00
00:30
What is a good software architecture? Why should we bother structuring the code and spending time testing it? The clean architecture is a good way to structure an application to make it easy to develop, debug, maintain, and change.
pyconuk-2019-2444-clean-architectures-in-python
Leonardo Giordani
en
Architectural considerations are often overlooked by developers or completely delegated to a framework. We should start once again discussing how applications are **structured**, how components are **connected** and how to **lower coupling** between different parts of a system, to avoid creating software that cannot easily be maintained or changed.
The “clean architecture” model predates Robert Martin, who recently brought it back to the attention of the community, and is a way of structuring applications that leverages layers separation and internal APIs to achieve a very tidy, fully-tested, and loosely coupled system. The talk introduces the main ideas of the architecture, showing how the layers can be implemented in Python, following the content of the book “Clean Architectures in Python” edited by Leanpub. The book recently reached 8,000 downloads and many readers found it useful to start learning how to test software and how to structure an application without relying entirely on the framework.
false
https://pretalx.com/pyconuk-2019/talk/THXL7L/
https://pretalx.com/pyconuk-2019/talk/THXL7L/feedback/
Assembly Room
Code Styles Aren’t Black and White
Talk
2019-09-14T12:30:00+01:00
12:30
00:30
We all have a code style. We all have opinions how code should look. We all seem to love (and hate) having long arguments about which code styles are better. What if there was a way out of the bikeshedding?
pyconuk-2019-1925-code-styles-aren-t-black-and-white
Mika Naylor
en
Code styles are important to us. So important that we’re willing to spend lots of time and energy debating the various intricacies of our favourite ones, over and over again. Do these arguments really warrant the amount of energy, IRC messages and forum posts that we’ve wasted on them?
A code style is a set of idioms and patterns that we deploy, either consciously or unconsciously, that is concerned with making code readable to us as writers, reviewers and maintainers. When we read code, we want to understand it functionally. However, code styles vary between projects and developers. Unfamiliar code styles hide bugs, slow down the process of understanding code and can even lead to a breakdown in comprehension. Inconsistency in code styles is therefore a problem. As Python developers, we fortunately have the PEP-8 style guide to help us. But a guide is still just a guide, not a set of rules, and even a guide can be followed inconsistently.
What if there was a solution both to the endless bikeshedding *and* a way of producing a consistent code style across all the Python code we write as a community?
In this talk, I’d like to discuss what code styles are and why they’re important to us, how Palaeolithic humanity was having arguments about line lengths, the values of standardisation in industrial production, and to suggest an approach out of the code style conundrum.
false
https://pretalx.com/pyconuk-2019/talk/UV33DC/
https://pretalx.com/pyconuk-2019/talk/UV33DC/feedback/
Assembly Room
Data Scientist Career Path: How to find your way through the data science maze
Talk
2019-09-14T14:30:00+01:00
14:30
00:30
The demand of data science is huge and employers are investing significant time and money in Data Scientists. During this talk we will share our experiences, and provide a survival guide to help get you started in your data science career.
pyconuk-2019-2685-data-scientist-career-path-how-to-find-your-way-through-the-data-science-maze
Solveiga Vivian-GriffithsNatalie Jakomis
en
Organisations and individuals are “always on”, leaving digital traces of everything, all the time everywhere. And someone needs to handle that information, meaning that people with the skills and curiosity to find meaning from swimming in data are an object of desire for many industries including finance, retail and ecommerce.
The data science job outlook continues to be on the upward trajectory as the influx of data isn’t likely to cease anytime soon and enterprises will need individuals with the skills to parse through data tangle and help increase its value.
This talk will offer a data science survival guide and cover – ‘What I wish I’d known about data science’, We will share our insights and most valuable lessons learned on breaking into the field of data science and launching a career.
false
https://pretalx.com/pyconuk-2019/talk/CYBVCZ/
https://pretalx.com/pyconuk-2019/talk/CYBVCZ/feedback/
Assembly Room
The Fastest Way to Learn Data Science
Talk
2019-09-14T15:00:00+01:00
15:00
00:30
It's not about what you know it's about what you can do
pyconuk-2019-1777-the-fastest-way-to-learn-data-science
Rebecca Vickery
en
Over the last few years, I have changed career from a data analyst to a data scientist primarily working in Python. Having limited time for study I needed to develop some techniques to enable me to learn in the most efficient way possible. In this talk, I will be sharing the techniques that I used to accelerate, not only my technical python skills but also my own personal growth in confidence, resilience and communication that have helped me to become both a better learner and a better data scientist. I will explain why when developing a career as a data scientist in business, it is not so much about what you know but about what you can do.
false
https://pretalx.com/pyconuk-2019/talk/FP3GN8/
https://pretalx.com/pyconuk-2019/talk/FP3GN8/feedback/
Assembly Room
Lies, Damned Lies, and Statistics
Talk
2019-09-14T15:30:00+01:00
15:30
00:30
We are exposed to the use of statistics in everyday life, but it is quite easy to fall victim of statistical fallacies. This talk will help you recognise these fallacies, so you can protect yourself from the misuse of statistics, ultimately becoming a better citizen.
pyconuk-2019-2316-lies-damned-lies-and-statistics
Marco Bonzanini
en
Statistics show that eating ice cream causes death by drowning. If this sounds baffling, this talk will help you to understand correlation, bias, statistical significance and other statistical techniques that are commonly (mis)used to support an argument that leads, by accident or on purpose, to drawing the wrong conclusions.
The casual observer is exposed to the use of statistics and probability in everyday life, but it is extremely easy to fall victim of a statistical fallacy, even for professional users. The purpose of this talk is to help the audience understand how to recognise and avoid these fallacies, by combining an introduction to statistics with examples of lies and damned lies, in a way that is approachable for beginners.
Agenda:
- Correlation and causation
- Simpson’s Paradox
- Sampling bias and polluted surveys
- Data visualisation gone wild
- Statistical significance (and Data dredging a.k.a. p-hacking)
false
https://pretalx.com/pyconuk-2019/talk/XFGGN7/
https://pretalx.com/pyconuk-2019/talk/XFGGN7/feedback/
Assembly Room
**Young Coders** Show and Tell
Something Else
2019-09-14T16:30:00+01:00
16:30
00:30
Children's Day Show and Tell
pyconuk-2019-2554--young-coders-show-and-tell
Ben Nuttall
en
Children's Day Show and Tell
false
https://pretalx.com/pyconuk-2019/talk/DQ3SQX/
https://pretalx.com/pyconuk-2019/talk/DQ3SQX/feedback/
Assembly Room
UKPA AGM
Something Else
2019-09-14T17:00:00+01:00
17:00
00:30
Annual General Meeting of the UK Python Association
pyconuk-2019-2553-ukpa-agm
Owen Campbell
en
Annual General Meeting of the UK Python Association
false
https://pretalx.com/pyconuk-2019/talk/XXTKMY/
https://pretalx.com/pyconuk-2019/talk/XXTKMY/feedback/
Assembly Room
Lightning talks
Something Else
2019-09-14T17:30:00+01:00
17:30
01:00
Lightning talks
pyconuk-2019-2552-lightning-talks
Mark Smith
en
Short talks
false
https://pretalx.com/pyconuk-2019/talk/BLJDUS/
https://pretalx.com/pyconuk-2019/talk/BLJDUS/feedback/
Ferrier Hall
**Young Coders** Will it rain in Cardiff this weekend?
Workshop
2019-09-14T09:30:00+01:00
09:30
00:45
A hands-on workshop building a simple barometer which can be used to predict the weather. We will use a Raspberry Pi and the SenseHat to make a mini weather station to not only look at the current weather but to predict the weather ahead.
pyconuk-2019-2705--young-coders-will-it-rain-in-cardiff-this-weekend-
Spencer Organ
en
A hands-on workshop building a simple barometer which can be used to predict the weather. We will use a Raspberry Pi and the SenseHat to make a mini weather station to not only look at the current weather but to predict the weather ahead.
false
https://pretalx.com/pyconuk-2019/talk/GQV8WF/
https://pretalx.com/pyconuk-2019/talk/GQV8WF/feedback/
Ferrier Hall
**Young Coders** Mission to Mars Rover Microbit Radio Control
Workshop
2019-09-14T10:15:00+01:00
10:15
00:45
This workshop utilises rovers used in Software Cornwall's work experience.
pyconuk-2019-2706--young-coders-mission-to-mars-rover-microbit-radio-control
Robert Wiltshire
en
This workshop utilises rovers used in Software Cornwall's work experience. Instead of Arduinos the rovers have a Microbit hacked in utilising the radio capabilities. Students, in pairs, have to program another Microbit as the radio control for the rover. Basic code is given to get the rover moving forwards but they have to create the rest of the other movements themselves.
The exercise takes about 45 minutes depending on experience. Those students that finish early are asked to help those who haven't completed.
false
https://pretalx.com/pyconuk-2019/talk/8MY7VN/
https://pretalx.com/pyconuk-2019/talk/8MY7VN/feedback/
Ferrier Hall
**Young Coders** Geometries & Python Turtle
Workshop
2019-09-14T11:30:00+01:00
11:30
00:45
Understanding geometry and python can be learnt alongside.
pyconuk-2019-2707--young-coders-geometries-python-turtle
Aaron Balan
en
Understanding geometry and python can be learnt alongside. Python helps to learn the characteristics of different shapes and learning geometry helps leaping through the challenges of learning python loops and other aspects. In this workshop we will learn how to build simple shapes and progress to build parabolic curves and discuss the characteristics of these geometries through the steps we follow in python coding. We will use python turtle for this.
false
https://pretalx.com/pyconuk-2019/talk/HTHFFU/
https://pretalx.com/pyconuk-2019/talk/HTHFFU/feedback/
Ferrier Hall
**Young Coders** Astro Pi Mission Zero
Workshop
2019-09-14T12:15:00+01:00
12:15
00:45
Write a program for the Raspberry Pi Sense HAT and send it to space!
pyconuk-2019-2708--young-coders-astro-pi-mission-zero
Ben Nuttall
en
Write a program for the Raspberry Pi Sense HAT and send it to space as part of the Astro Pi Mission Zero challenge
false
https://pretalx.com/pyconuk-2019/talk/GTG7ZV/
https://pretalx.com/pyconuk-2019/talk/GTG7ZV/feedback/
Ferrier Hall
**Young Coders** Gettin' GUI with it
Workshop
2019-09-14T14:00:00+01:00
14:00
01:00
Creating graphical user interfaces (GUI) with Python. Connect up LEDs and Buttons to your GUI and make it control your world.
pyconuk-2019-2709--young-coders-gettin-gui-with-it
Martin O'Hanlon
en
Creating graphical user interfaces (GUI) with Python. Connect up LEDs and Buttons to your GUI and make it control your world.
false
https://pretalx.com/pyconuk-2019/talk/83RZK8/
https://pretalx.com/pyconuk-2019/talk/83RZK8/feedback/
Ferrier Hall
**Young Coders** Make stuff with junk
Workshop
2019-09-14T15:00:00+01:00
15:00
00:30
Take what you learned and use it to build a project out of electronics, arts and craft
pyconuk-2019-2710--young-coders-make-stuff-with-junk
Laura Sach
en
Take what you learned and use it to build a project out of electronics, arts and craft
false
https://pretalx.com/pyconuk-2019/talk/9RJLBP/
https://pretalx.com/pyconuk-2019/talk/9RJLBP/feedback/
Ferrier Hall
**Young Coders** Presentation prep
Workshop
2019-09-14T15:30:00+01:00
15:30
01:00
Get ready to present your project on the main stage
pyconuk-2019-2711--young-coders-presentation-prep
Laura Sach
en
Get ready to present your project on the main stage
false
https://pretalx.com/pyconuk-2019/talk/JKUELM/
https://pretalx.com/pyconuk-2019/talk/JKUELM/feedback/
Marble Hall
A tour of data viz in Python
Poster
2019-09-14T13:15:00+01:00
13:15
00:15
On my poster I’ll do a tour of libraries available for visualising data using Python by showing and discussing examples.
pyconuk-2019-2446-a-tour-of-data-viz-in-python
Éléonore Mayola
en
The use of visual communication enables viewers to receive and memorise complex information. For that reason data visualisation is crucial to present the result of an analysis or a study. It is also a good tool to explore a dataset and get new insights.
Luckily many libraries are available for us to visualise data in Python! I’ll introduce the main ones and discuss which are more suited for what usage.
The links to the code examples will be shared and the examples will be demoed on my laptop.
false
https://pretalx.com/pyconuk-2019/talk/APBVXQ/
https://pretalx.com/pyconuk-2019/talk/APBVXQ/feedback/
Marble Hall
NeXus Constructor: Visualising the Configurations of Neutron Experiments with Qt for Python
Poster
2019-09-14T13:30:00+01:00
13:30
00:15
The NeXus data format provides a way of describing neutron, muon and x-ray experiments. In this poster we illustrate how our NeXus Constructor tool utilises Python and Qt in order to allow programming-unsavvy researchers to visualise and modify the contents of these files with minimal assistance.
pyconuk-2019-2403-nexus-constructor-visualising-the-configurations-of-neutron-experiments-with-qt-for-python
Jack HarperDolica Akello-Egwel
en
[NeXus](https://www.nexusformat.org/) is a data format that aims to define a common standard for storing data from neutron, muon and x-ray experiments in HDF5 files. It is being used by scientific facilities worldwide including our [pulsed neutron and muon facility](https://www.isis.stfc.ac.uk) at the Rutherford Appleton Laboratory in Oxfordshire.
Neutron facilities are typically comprised of separate beamlines which run experiments in parallel. The NeXus file for an experiment contains a description of the relevant beamline and its constituent components. Another important characteristic of the NeXus format is that it describes the position, orientation and shape of the components that are used in a particular experiment. This information is essential if we are to carry out meaningful analysis on experiment data.
Historically, neutron beamline instrument layouts had to be configured by manually editing a file. This approach was sufficient as the layout of the components seldom changed, however, in modern instruments, there are various moving components that can be configured differently for each experiment.
To tackle this problem, we have begun development of the [NeXus Constructor](https://github.com/ess-dmsc/nexus-constructor), a GUI tool which creates component geometry and outputs to JSON. The JSON file is in turn used to configure the software which writes a NeXus file using data acquired during the experiment. The NeXus Constructor’s main purpose is to make editing the description of the geometry of an instrument straightforward for the scientists that use and maintain them.
To create the NeXus Constructor, we have used [h5py](https://www.h5py.org/) and [Qt for Python](https://wiki.qt.io/Qt_for_Python). Our tool is making use of a 3D view in the recently added Qt3D module to display the instrument components with their geometry information. Using Qt's high level tools we are able to transform components in the 3D view and update them in real-time.
false
https://pretalx.com/pyconuk-2019/talk/BZGLBP/
https://pretalx.com/pyconuk-2019/talk/BZGLBP/feedback/
Marble Hall
Active Learning with Bayesian Nonnegative Matrix Factorization for Recommender Systems
Poster
2019-09-14T13:45:00+01:00
13:45
00:15
In most of the systems, collecting data is not always free. In this poster session, I will show an approach for a matrix completion problem that learns a distribution of data where information is incomplete or collecting it has a cost.
pyconuk-2019-2055-active-learning-with-bayesian-nonnegative-matrix-factorization-for-recommender-systems
Gönül Aycı
en
In most of the systems, collecting data is not always free. In this poster session, I will show an approach for a matrix completion problem that learns a distribution of data where information is incomplete or collecting it has a cost. Active learning is a method of analyzing the observed data such that choosing the next observation will give the most information about the variable to be predicted. However, when observations are costly, one needs strategies to obtain informative data to arrive at accurate predictions with less data. I will show results for comparing various observation sequence selection strategies on the matrix completion problem. We used Gibbs Sampling and Variational Bayes as inference mechanisms on the MovieLens dataset. For this study, we totally use the Python programming language. I will also show our results using Python Heatmap.
false
https://pretalx.com/pyconuk-2019/talk/G8FU93/
https://pretalx.com/pyconuk-2019/talk/G8FU93/feedback/
Lower Hall
Django Girls Workshop
Workshop
2019-09-14T09:30:00+01:00
09:30
06:30
To run a Django Girls workshop in line with the Django Girls organiser's manual for up to 60 women/non-binary attendees apply online via our website (https://djangogirls.org/pyconuk/).
pyconuk-2019-1857-django-girls-workshop
Ann Barr
en
To run the workshop Saturday 14th September 9.30-16.30.
The goal of the workshop is to give programming beginners the chance to learn how to create a website and also to find out more about the UK Python community.
Django Girls is a crash course that is aimed at total beginners. You don’t need to know anything about programming, we just expect you to bring your own laptop, to be able to commit to the all-day workshop on Saturday 14th September and to have a sufficient understanding of English so you’re able to follow our English tutorial. You will work through the tutorial in a small group of three attendees and one coach so you’ll be able to do it at your own pace. If you’d like to join us, please apply below.
false
https://pretalx.com/pyconuk-2019/talk/TVYVSN/
https://pretalx.com/pyconuk-2019/talk/TVYVSN/feedback/
Lower Hall
Conference Dinner
Something Else
2019-09-14T19:30:00+01:00
19:30
02:30
Conference Dinner
pyconuk-2019-2737-conference-dinner
Daniele Procida
en
**Menu**
Mostly Lavender Ice Cream
false
https://pretalx.com/pyconuk-2019/talk/P7KB7D/
https://pretalx.com/pyconuk-2019/talk/P7KB7D/feedback/
Room A
Get to grips with pandas and scikit-learn
Workshop
2019-09-14T10:30:00+01:00
10:30
01:30
This session will be an exposition of data wrangling with pandas and machine learning with scikit-learn. It will cover a classification project, from importing the data to evaluating model performance.
This hands-on workshop is aimed at a "beginner" Data Science audience (but small experience in python is preferable).
pyconuk-2019-2257-get-to-grips-with-pandas-and-scikit-learn
Sandrine Pataut
en
We hear a lot about Machine Learning, but it’s just one part of a bigger process. Before applying any algorithm to a data set, discovery and preparation are needed. This hands-on workshop will cover an end-to-end classification project, from importing the data to evaluating model performance. After this tutorial, you will have completed a step by step Machine Learning workflow.
**Part one:** ***Grab your spade and dig in!***
<br/>Pandas is a popular tool that will allow us to efficiently conduct Exploratory Data Analysis. After loading the data set we’ll use in this workshop, we’ll have a first look at it with Pandas and start cleaning it. We’ll also use visualisation to gain more insights and continue to prepare our data.
**Part two:** ***Where the Ma(th)gic happen.***
<br/>In this part, we’ll introduce the powerful scikit-learn library. We'll split the data into training and testing sets and start pre-processing. Then we’ll choose, tune and train a Machine Learning model and finally evaluate its performance using cross-validation and a confusion matrix.
During this workshop, we will fill in a pre-prepared Jupyter notebook together, explaining each step to get a good understanding of the process. You will also have a guided exercise notebook to reinforce your learning on unseen data.
To get the most out of this workshop you will need Python 3, pandas, matplotlib, scikit-learn and jupyter installed. Please refer to the documentation of your operating system of choice or search on the Internet how to install the packages.
false
https://pretalx.com/pyconuk-2019/talk/GFJSPF/
https://pretalx.com/pyconuk-2019/talk/GFJSPF/feedback/
Room B
Implementing a simple API using Django REST Framework
Workshop
2019-09-14T10:30:00+01:00
10:30
01:30
Django REST Framework “… is a powerful and flexible toolkit for building Web APIs.” This workshop will give you a overview so you can get started your own APIs, and you can explore just how powerful it is.
pyconuk-2019-2684-implementing-a-simple-api-using-django-rest-framework
Miles CookDevang Mehta
en
This workshop will take delegates through the simple creation of an API and a few examples.
For the best experience, attendees should bring a laptop and be prepared to install a few things inside a virtual machine. (It's OK if that's not possible as I will be showing everything from my own laptop too).
It would also be very useful to install everything in advance of the workshop. Full instructions are at: https://github.com/devangmehta123/pycon-uk-2019/
false
https://pretalx.com/pyconuk-2019/talk/ZCP9L3/
https://pretalx.com/pyconuk-2019/talk/ZCP9L3/feedback/
Room C
Let's make a talk
Workshop
2019-09-14T10:30:00+01:00
10:30
01:30
How do you write a talk? In this practical workshop you will find out. You’ll receive some guidance, techniques and principles, but there will also be time to prepare a lightning talk and present it.
pyconuk-2019-1826-let-s-make-a-talk
Gail Ollis
en
This workshop is intended for people who are thinking of presenting for the first time or are fairly new to presenting. It will cover planning, preparing and delivering your talk and will include hands-on exercises to give you the opportunity to practice all three in a safe and supportive environment. We will end with lightning talks, prepared in the workshop and delivered to a small, friendly audience.
No laptops allowed. This workshop focuses on the essentials of communicating to an audience so we will be using the very simplest of tools (provided, but bring your favourite marker pens if you wish).
Numbers are limited so that I can help during the preparation and there is time for everyone to present at the end. If you do not wish to present when the time comes you will not be pressured to. This session will NOT be recorded.
false
https://pretalx.com/pyconuk-2019/talk/YSHHNQ/
https://pretalx.com/pyconuk-2019/talk/YSHHNQ/feedback/
Room D
Unleashing Python from the Computer Science Curriculum
Talk
2019-09-14T10:30:00+01:00
10:30
00:30
Python is very well established in Secondary School Computer Science lessons but it also has a wider appeal across the whole curriculum. Join my journey in introducing Python across different areas of a secondary school curriculum and how it helped a school with no IT and CS teachers.
pyconuk-2019-2317-unleashing-python-from-the-computer-science-curriculum
Spencer Organ
en
Many Secondary schools still face a lack of Computer Science teachers and giving students opportunities to code away from CS lessons is very important. Over the last six years I have aimed to embed coding opportunities across the curriculum for students in my school. At the heart of this has been providing opportunities to use and develop Python skills. From being a small after school Raspberry Pi club this has grown into social skills groups, maker club, lessons and cross curricular work in Science and Art.
false
https://pretalx.com/pyconuk-2019/talk/AVNA8S/
https://pretalx.com/pyconuk-2019/talk/AVNA8S/feedback/
Room D
One weird trick for improving your communication
Talk
2019-09-14T11:30:00+01:00
11:30
00:30
The best advice I've been given on technical communication is "understand what you want to achieve before you think about what you want to say". I'm going to discuss why I think this is important, with examples ranging from planning meetings to writing documentation.
pyconuk-2019-1862-one-weird-trick-for-improving-your-communication
David Sim
en
"Before you think about what you're going to say or write, think about what you want the people listening or reading to do as a result." This sounds obvious, but I've found that keeping it in mind can make a big difference to how well I communicate in a technical or business setting.
I'm going to talk about specific ways that following this advice can help you to plan a meeting, write an email, prepare a talk or write your docs, and generally get more useful stuff done in less time.
false
https://pretalx.com/pyconuk-2019/talk/TYLR3C/
https://pretalx.com/pyconuk-2019/talk/TYLR3C/feedback/
Room D
Extracting tabular data from PDFs with Camelot & Excalibur
Talk
2019-09-14T12:00:00+01:00
12:00
00:30
Extracting tables from PDFs is hard. The Portable Document Format was not designed for tabular data. Sadly, a lot of open data is shared as PDFs and getting tables out for analysis is a pain. Camelot and Excalibur can help you extract tabular data fr
pyconuk-2019-1865-extracting-tabular-data-from-pdfs-with-camelot-excalibur
Vinayak Mehta
en
Extracting tables from PDFs is hard. The Portable Document Format was not designed for tabular data. Sadly, a lot of open data is shared as PDFs and getting tables out for analysis is a pain. A simple copy-and-paste from a PDF into a text file or spreadsheet program doesn't work.
This talk will briefly touch upon the history of the Portable Document Format, discuss some problems that arise when extracting tabular data from PDFs using the current ecosystem of libraries and tools and demonstrate how Camelot and Excalibur solve this problem better and in a scalable manner. These easy-to-use packages automatically detect and extract tables from PDFs and give you access to the extracted tables in pandas DataFrames. You can also download them as CSVs or Excel files.
false
https://pretalx.com/pyconuk-2019/talk/GMXKPX/
https://pretalx.com/pyconuk-2019/talk/GMXKPX/feedback/
Room D
Rapid prototyping scalable Python services using AWS Chalice
Talk
2019-09-14T12:30:00+01:00
12:30
00:30
Looking to deploy Python code on AWS Lambda? Getting started with serverless can be a bit daunting at times with creating the functions, configuring them, configuring api gateways and what not. In this talk you will learn about the magic of rapid serverless api development using AWS Chalice.
pyconuk-2019-1856-rapid-prototyping-scalable-python-services-using-aws-chalice
Mashhood Rastgar
en
One of the best part of serverless is that you dont need to think much about the provisioning and deployment of your service once you are ready to deploy, and Chalice framework makes that a reality when working with Python. With its super simple CLI which scaffolds and deploys on AWS Lambda within minutes, and its helpful utility libraries you can create fast, scalable services in Python in no time.
We will demonstrate on how to get started using this simple framework, and what are some of the challenges to consider when working with serverless on AWS Lambda. How does local development work and what are some of the things to look out for when building using Chalice.
false
https://pretalx.com/pyconuk-2019/talk/JDAAJF/
https://pretalx.com/pyconuk-2019/talk/JDAAJF/feedback/
Room D
Dev On Wheels: The Ultimate Computer Game
Talk
2019-09-14T14:30:00+01:00
14:30
00:30
Come and witness the live action video game of a graduate software developer’s journey. But not just any graduate. This is Tom, dev_on_wheels!
pyconuk-2019-2254-dev-on-wheels-the-ultimate-computer-game
Tom Easterbrook
en
Tom zooms round Bournemouth University in his four-wheeled chariot collecting course credits and the occasional salted caramel hot chocolate power up. As this episode comes to its close we will review the game, its highs and lows, its characters and storylines before the final credits roll on the closing graduation scene.
false
https://pretalx.com/pyconuk-2019/talk/TKXRBD/
https://pretalx.com/pyconuk-2019/talk/TKXRBD/feedback/
Room D
Writing Beautiful Python. An overview of PEP 8
Talk
2019-09-14T15:00:00+01:00
15:00
00:30
Writing code that looks nice can be hard. Why do we need nice looking code anyway? In this talk I'll give you a tour of PEP 8 (The Style Guide for Python Code) and show you how you can force yourself to write code that looks nice.
pyconuk-2019-1973-writing-beautiful-python-an-overview-of-pep-8
Luke Spademan
en
What is beautiful code? What makes code beautiful? Why should I write beautiful code? These might be question you are currently asking yourself. In this talk I will not only answer these question but also give you a tour of PEP 8 (the official style guide for python). During this 'tour' I will show you examples of both well formatted and badly formatted code and will explain the difference and why they are important.
It can be hard to memorise all these 'rules'. Luckily for you, you don't have to. There are two types of tools I will go over that help you write nice looking code:
* A Linter will notify you of badly formatted code.
* An auto formatter will reformat you code on save to comply with the standards).
At the end of the this talk you will have to tools and knowledge necessarily to go forth and right beautiful code.
false
https://pretalx.com/pyconuk-2019/talk/QKHKHF/
https://pretalx.com/pyconuk-2019/talk/QKHKHF/feedback/
Room I
**Young Coders** Anagrams & Python
Workshop
2019-09-14T09:30:00+01:00
09:30
00:45
We will be making anagrams and playing with our friends as a game
pyconuk-2019-2712--young-coders-anagrams-python
Avni Balan
en
In this workshop we will be making anagrams and playing with our friends as a game.
false
https://pretalx.com/pyconuk-2019/talk/7PVCMM/
https://pretalx.com/pyconuk-2019/talk/7PVCMM/feedback/
Room I
**Young Coders** Cracking Codes with Python
Workshop
2019-09-14T11:30:00+01:00
11:30
00:45
What is encryption? How does it work?
pyconuk-2019-2713--young-coders-cracking-codes-with-python
Luke Spademan
en
What is encryption? How does it work? In this workshop you will write a computer program to crack some codes and find the meaning of some secret messages, and maybe encrypt some secret messages of your own.
false
https://pretalx.com/pyconuk-2019/talk/SVMLU9/
https://pretalx.com/pyconuk-2019/talk/SVMLU9/feedback/
Room I
**Young Coders** Mutating Monsters
Workshop
2019-09-14T12:15:00+01:00
12:15
00:45
Making a pokemon style monster generator and evolver using turtle
pyconuk-2019-2714--young-coders-mutating-monsters
Patrick Barry
en
Making a pokemon style monster generator and evolver using turtle. Based on an updated version of my code here: https://github.com/cromlyngames/stos-valley. (It was a project I created to teach myself python)
The idea is to take people through sketching the monster on grid paper, to measuring lengths and angles off that, to drawing them electronically via turtle, setting up a couple of simple evolution rules and letting the computer mutate them.
false
https://pretalx.com/pyconuk-2019/talk/TEXVBX/
https://pretalx.com/pyconuk-2019/talk/TEXVBX/feedback/
Room I
**Young Coders** Hackathon & presentation prep
Workshop
2019-09-14T14:00:00+01:00
14:00
02:30
Hackathon for intermediate track of the children's day
pyconuk-2019-2715--young-coders-hackathon-presentation-prep
Ben Nuttall
en
Take what you've learned and use it to build a project for the presentations on the main track
false
https://pretalx.com/pyconuk-2019/talk/L7DUNN/
https://pretalx.com/pyconuk-2019/talk/L7DUNN/feedback/
Room L
TDD in Python with pytest
Workshop
2019-09-14T14:30:00+01:00
14:30
01:30
Test-Driven Development is a methodology that can greatly improve the quality of your software. I strongly believe that developing software without following as much as possible a test-driven approach leads to massive delays and greater issues when requirements change (always, that is).
pyconuk-2019-2448-tdd-in-python-with-pytest
Leonardo Giordani
en
In this workshop we will develop a very simple Python project following TDD with the help of the pytest framework. We will work together, and no previous knowledge of testing or the testing framework is required. A minimum knowledge of Python is required, but the project will be very simple, so that we can focus on learning the testing methodology.
The workshop is specifically tailored for beginners, as I will review the basic rules of TDD and implement a very simple application.
I successfully run the workshop at London PyLadies Meetup, PyCon UK, PyCon IE, and Pycon IT
Attendees, please clone the repository at https://github.com/lgiordani/pytest_workshop and follow the instructions. Please do it before the workshop.
false
https://pretalx.com/pyconuk-2019/talk/F8HXLK/
https://pretalx.com/pyconuk-2019/talk/F8HXLK/feedback/
Assembly Room
Introduction
Talk
2019-09-15T09:00:00+01:00
09:00
00:30
Sunday Introduction
pyconuk-2019-2547-introduction
Daniele Procida
en
Sunday Introduction
false
https://pretalx.com/pyconuk-2019/talk/JDPPNG/
https://pretalx.com/pyconuk-2019/talk/JDPPNG/feedback/
Assembly Room
Do we have a diversity problem in Python community?
Talk
2019-09-15T09:30:00+01:00
09:30
01:00
Python community cares about diversity. So do we still have a problem in, especially gender, diversity? We will look at some data and see if there’s a true problem, discuss what the problem may be and how to fix it.
pyconuk-2019-2352-do-we-have-a-diversity-problem-in-python-community-
Cheuk Ting Ho
en
The diversity statement quoted as follows: “The Python Software Foundation and the global Python community welcome and encourage participation by everyone. Our community is based on mutual respect, tolerance, and encouragement, and we are working to help each other live up to these principles. We want our community to be more diverse: whoever you are, and whatever your background, we welcome you.”
Diversity, big deal! As an active members and event organisers (and also on the minority side of the gender) in the Python community, we have alway been concern by the question of: Do we truly have a problem in diversity? Especially, gender diversity. We would like to find out the truth, by data science, and see if we can find a clue why and how we can fix it.
First, we will show the research others did regarding the representation of women in the R and Python communities [1]. Then, we will show the research that we did based on our experience and statistic. Including static analysis of the speakers diversity (regarding gender) at major PyCon and PyData conferences. Finally, as we all care about diversity and want improvements, we would like to find out the reason and what we can do about it. We would propose what we, the minorities and allies, could do against this seemingly unbalance situation and make the community better.
This talk is for all that who cares about diversity in our community.
[1] https://reshamas.github.io/why-women-are-flourishing-in-r-community-but-lagging-in-python/
false
https://pretalx.com/pyconuk-2019/talk/NUSLBQ/
https://pretalx.com/pyconuk-2019/talk/NUSLBQ/feedback/
Assembly Room
Choosing the right Deep Learning Framework: A Deep Learning Approach
Talk
2019-09-15T10:30:00+01:00
10:30
00:30
This talk will demonstrate how deep learning can be used to identify a deep learning framework such as TensorFlow or PyTorch that would best help a developer build out deep neural networks based on how they write and the problems they solve.
pyconuk-2019-1881-choosing-the-right-deep-learning-framework-a-deep-learning-approach
Nick Acosta
en
Deep Learning Frameworks allow for the easy construction of neural networks and have made Python the go-to language for Artificial Intelligence development. However, the most popular one, TensorFlow, is still in the midst of putting out just its 2nd major release, and many others are equally as new. Because of the intense pace of innovation in the field deep learning, these frameworks are changing as rapidly as networks they are helping to build. If a developer chooses to use a deep learning framework because of a particular feature that it has, it could quickly change drastically or become unavailable all-together. This session will cover the data collected and methods used to align developers with a deep learning framework that is most suitable to their code and allow audience members to receive recommendations via samples of their own Jupyter Notebooks.
false
https://pretalx.com/pyconuk-2019/talk/HDW7HZ/
https://pretalx.com/pyconuk-2019/talk/HDW7HZ/feedback/
Assembly Room
Don't Cross The Streams: An Introduction to Virtual Environments
Talk
2019-09-15T11:30:00+01:00
11:30
00:30
Let's learn about virtual environments - why it's useful, how it works, getting started.
pyconuk-2019-1873-don-t-cross-the-streams-an-introduction-to-virtual-environments
Hannah Hazi
en
What are virtual environments? How can they help us when developing in Python? In this session we'll find out how to get started and then dig down into how virtualenv works under the hood. There will also be a whistle-stop tour of the various options for package management in Python, and a chance to learn from my mistakes!
This session is mainly intended for people who haven't used a virtual environment before or those who want to learn about how they work.
false
https://pretalx.com/pyconuk-2019/talk/QTEQF3/
https://pretalx.com/pyconuk-2019/talk/QTEQF3/feedback/
Assembly Room
What does PEP 517 mean for packaging?
Talk
2019-09-15T12:00:00+01:00
12:00
00:30
Packaging Python code is a thorny area, but it's getting better.
PEP 517 is a dry, technical specification for an important step:
allowing packagers to choose alternatives to setuptools.
I'll talk about how projects can take advantage of this, and the
fun of writing your own packaging tools.
pyconuk-2019-2379-what-does-pep-517-mean-for-packaging-
Thomas Kluyver
en
Packaging has never been an easy topic in Python. PEP 517 was
hammered out over several hundred emails - sometimes heated - on
the distutils-sig mailing list. The goal: to dethrone distutils and
setuptools as the single blessed way of making Python packages.
The precise, formal language of a specification isn't exactly made
for bedtime reading. So in this talk, I'll unpack what it means for
people who want to put their code on PyPI. I was part of the discussion
to create the proposal, I've written a PEP 517 backend and a
library for frontends, so I've seen the gory details.
I'll set the context of what there was before PEP 517, and why
people wanted something better. Then I'll describe how the PEP
came about, and how it envisages different tools working together.
I'll show practical examples of how you can take advantage of PEP 517
enabled tools like Flit or enscons for packaging your own project,
and some of the difficulties existing projects might encounter in the
transition. Finally, I'll briefly go into how and why you might write
your own tools around PEP 517: either backends to build packages, or
frontends to use those packages.
false
https://pretalx.com/pyconuk-2019/talk/Z8DH3F/
https://pretalx.com/pyconuk-2019/talk/Z8DH3F/feedback/
Assembly Room
Machine Learning on the Edge
Talk
2019-09-15T12:30:00+01:00
12:30
00:30
An introduction to the Jetson Nano Developer kit by a data scientist
pyconuk-2019-2442-machine-learning-on-the-edge
Frank Kelly
en
This talk will describe my journey of experimentation with the Jetson Nano Developer Kit, which is a low cost, single board computer about the size of the Raspberry Pi with super machine learning powers onboard.
As an industrial engineer and data scientist with limited "small factor" computing experience, I'll explain how I got on getting it set up, with my review of the spec and features of this device. Once all running and with the correct dependencies, we will move on to how to start training and inference with deep learning models in Python and both Tensorflow and PyTorch, followed by use of Jetson.GPIO to interface with micro sensing units.
After introducing the device, suitable peripherals and its configuration steps, the talk will include a live demo showing the sensing and inference capabilities and also will report on the outcome of a couple of home projects where I deployed the Jetson Nano and watched it learn, infer and interact with the real world.
I'll conclude with a summary on this type of "edge machine learning" device- and my view on whether this new distributed computing paradigm will represent a threat to cloud-based machine learning in the medium to long term.
false
https://pretalx.com/pyconuk-2019/talk/WGMV7M/
https://pretalx.com/pyconuk-2019/talk/WGMV7M/feedback/
Assembly Room
Research Software Engineers: Who, What, Why and a Django API
Talk
2019-09-15T14:30:00+01:00
14:30
00:30
This talk will describe my experience of leaving academic research to become a Research Software Engineer (RSE). As an example of the kind of work RSEs do, I’ll describe a recent project that used Django, a REST API and a mobile app built with Ionic.
pyconuk-2019-1999-research-software-engineers-who-what-why-and-a-django-api
Teri Forey
en
Research Software Engineering is a relatively new career path that is quickly spreading through UK universities. The goal is to improve the standard of software development in academia, a never-ending and sometimes thankless task!
Having moved into an RSE post just over a year ago, I’ll briefly describe the up-downs and roundabouts that this career choice has led me on. I’ll also present my favourite RSE project so far: building a Django web app, REST API and Ionic mobile app aimed at improving patient safety in hospitals. As well as discussing the technical aspects, I’ll also describe how a project like this works as an RSE and how that may differ from academia and industry.
Hopefully this talk will inspire others that taking a career sidestep can be the right decision, and that maybe an RSE is the path for them.
false
https://pretalx.com/pyconuk-2019/talk/W9VFE3/
https://pretalx.com/pyconuk-2019/talk/W9VFE3/feedback/
Assembly Room
Automated report writing using data from a relational database
Talk
2019-09-15T15:00:00+01:00
15:00
00:30
As part of the Development Consent Order submission for large infrastructure (Highways scheme), a book of reference needs to be submitted. The user previously needed to export spreadsheets from a database and populate the document manually. We have automated this process on a jupyter notebook.
pyconuk-2019-2248-automated-report-writing-using-data-from-a-relational-database
Dani Papamaximou
en
Introduction:
The book of reference lists all affected plots of land and associated parties in a legal document of a specific format. The user previously needed to export spreadsheets from a database and populate the document manually by locating the relevant plots of land on a map and retrieving postcode and locality data.
Part 1: Presentation of the problem.
As the amount of information increases and plots of land can have multiple uses, users and owners during period of time, manipulating this amount of information manually is time consuming. In collaboration with our internal client we have developed an interactive notebook where the client can search for relevant
parties and extract all information available.
Part 2: Development.
The typical structure of this relational database will be presented.
The 'query' consists of a .csv file containing the relevant Site IDs. A site ID can correspond to one plot of land with many buildings, multiple uses, and different owners and interested parties. As a result, we end up with a rather complex relational system through which we have to navigate. Using the site ID we join the tables connected to the initial table and we filter according to keywords. An example of this process will be presented.
The process that we developed to loop through the site IDs and store the data to be saved in a document will be presented.
We preferred pyodbc instead of a typical SQLAlchemy engine, as we wanted to connect and get data from the database and not modify any of the existing records.
Part 3: What can go wrong?
This part details the difficulties we encountered in compiling all this information in 5 word documents (Parts 1- 5). Problems encountered include:
1) How to insert in the same cell, different rows from a different Dataframe.
2) Typos, ampersands, spaces, and null values.
3) Bold and italics in the same sentence (with entries from different
Dataframes).
The methods we used to solve these problems will be presented.
Part 4: The future.
The next step is to upscale: enable all the users to automate the reports for the book of reference required for their projects. The engineers will still be responsible for reviewing the information, however a lot of time which could have been spent in report writing is saved.
false
https://pretalx.com/pyconuk-2019/talk/8QLRDA/
https://pretalx.com/pyconuk-2019/talk/8QLRDA/feedback/
Assembly Room
Is Django too Complicated?
Talk
2019-09-15T15:30:00+01:00
15:30
00:30
When you start a new project, typically the choice between a big framework like Django and a microframework like Flask comes up. This talk will show you that the difference is not as big as one might think and that Django is suitable for projects of all sizes.
pyconuk-2019-2435-is-django-too-complicated-
Daniel Hepper
en
At 77k lines of code, Django is a heavy-weight among Python web frameworks. Django comes with lots of batteries included: it has its own ORM, a custom template language, miscellaneous middlewares, and other stuff that sounds not only quite a handful but also a bit dated at a time where everyone is talking about microservice architecture. It is easy to come to the conclusion that Django is too complicated, especially for beginners, who might be better served learning a micro-framework.
This talk will show you that this conclusion might be misinformed and that Django is actually a great choice for beginners. We will look at a minimal Django app that is as nimble as an equivalent written in Flask, and you will learn how to pick out the juicy bits from the smorgasbord of features that Django provides.
false
https://pretalx.com/pyconuk-2019/talk/8MASEP/
https://pretalx.com/pyconuk-2019/talk/8MASEP/feedback/
Assembly Room
So you want to be a manager
Talk
2019-09-15T16:30:00+01:00
16:30
00:30
Many developers will eventually make the choice of becoming a manager, the goal of this talk to help them make that decision.
pyconuk-2019-2396-so-you-want-to-be-a-manager
Gil Goncalves
en
This talk will be about helping people understand what the job of a manager is, make a decision on whether they should be managers, and that there are more ways to advance than just to become a manager.
This talk is aimed at developers of all levels, but this will be more interesting to those who are considering making a career change/are being promoted into a manager role or those who may look into becoming a manager in the future.
Many developers will eventually make the choice of becoming a manager, the goal of this talk to help them make that decision.
false
https://pretalx.com/pyconuk-2019/talk/ZHSZYB/
https://pretalx.com/pyconuk-2019/talk/ZHSZYB/feedback/
Assembly Room
What do travel, food & health websites have in common? Auditing websites & apps for privacy leaks
Talk
2019-09-15T17:00:00+01:00
17:00
00:30
Organizations with digital products that lack even the most basic data security practices are living in a utopian world where people leave their safe open and never expect a burglar to walk in.
pyconuk-2019-2409-what-do-travel-food-health-websites-have-in-common-auditing-websites-apps-for-privacy-leaks
Konark Modi
en
With the advent of SaaS, companies are relying more on more on third-party services for CDNs, analytics, recommendations, loyalty, advertisements, email marketing etc. But not so much effort is being put in ensuring what data is being shared with these third-parties.
As an example:
It is a common practice to load fonts from third-party CDNs. But is it necessary for the website to share sensitive data like users' booking IDs in order to load the fonts from a CDN?
These data leaks are bad in itself, but in the GDPR-era, companies could face huge penalties for such accidental leaks.
At PyCon UK I would like to showcase our work, on how we are creating Babel: a Network analyses framework built on top of http://mitmproxy.org/. Think about this as Local-Sheriff but outside the browser.
It cuts down all the clutter of using network inspecting tools and provides a search interface to users which shows the ugly world of data collection, third-parties and how using your app, sensitive data is being shared with companies.
Everything is done locally, and no data is sent out to our servers. (Actually they don't even exist)
Insights that the Babel presents:
* Hostnames that application connects to.
* Classifies them as First-Party and Third-parties used by the application.
* Using data from open-source project WhoTracksMe to map third-party domains to company names.
* Local search interface to look for PII and how it is being shared with different companies.
* URLs being shared with third-parties via network headers / query parameters.
* URLs that contain sensitive data, are they behind a login page or not.
* Values like EmailID etc being shared with third-parties.
* Configuration to flag, pre-defined list of values, hostname that are not supposed to be transferred.
* Identifiers which do not look like PII, but can be used for tracking the user on the internet. Example cookie synching, long-term user identifier.
* Adoption of basic security headers via observatory.mozilla.org
Takeaways for the audience:
* Common pitfalls while using third-parties and how apps end up accidentally leaking sensitive data.
* How can they audit partners before implementing them in production.
* How they can audit their own apps and bring in privacy checks as part of their software life cycle.
false
https://pretalx.com/pyconuk-2019/talk/L3HSWT/
https://pretalx.com/pyconuk-2019/talk/L3HSWT/feedback/
Assembly Room
Lightning talks
Something Else
2019-09-15T17:30:00+01:00
17:30
01:00
Lightning talks
pyconuk-2019-2550-lightning-talks
Mark Smith
en
Short talks
false
https://pretalx.com/pyconuk-2019/talk/VBHLRB/
https://pretalx.com/pyconuk-2019/talk/VBHLRB/feedback/
Ferrier Hall
Writing micro-services in Python... Sure! But which framework?
Talk
2019-09-15T10:30:00+01:00
10:30
00:30
When googling "python micro-service framework", there are plenty of "Hello world" examples out there for **many** (micro-)frameworks.
But how do they scale in the "real" world? How can I connect framework X to a database or what do you need to do to use OAuth2 with framework Y?
pyconuk-2019-2320-writing-micro-services-in-python-sure-but-which-framework-
Emma Delescolle
en
This talk was inspired by Aaron Bassett's EuroPython 2018 talk "Hello to the World in 8 Web Frameworks micro, batteries included & async". It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to "real" life use-cases.
In order to learn about that, I went through several steps:
- I decided on 4 micro-services I wanted to build and that were somewhat representative of services you might need in a production setting
- I set some constraints about what I expect from a micro-service as a developer (ie: documentation, testing, etc), as a sysadmin (ie: ease of deployment) and as a product manager (ie: performance)
- I implemented those micro-services using several frameworks
- I deployed them with production settings on a Raspberry Pi cluster
- I tested the performance of each architecture
This talk is an overview of the process, what guided my decisions, the things I learned and what conclusions I reached. Oh and of course performance graphs and statistics ;)
**Spoiler**: I will not end the talk with "choose framework Z"
false
https://pretalx.com/pyconuk-2019/talk/PDQSZS/
https://pretalx.com/pyconuk-2019/talk/PDQSZS/feedback/
Ferrier Hall
Mutability for good not evil
Talk
2019-09-15T11:30:00+01:00
11:30
00:30
Mutability is a common GOTCHA for new pythonistas. So where is it a good idea to use mutability? And more importantly where is it a bad idea?
pyconuk-2019-2285-mutability-for-good-not-evil
Nick Sarbicki
en
Often defined as a bug, mutability is a powerful _feature_ of Python that frequently trips people up. Most tend to avoid it for the weird behaviour it can create and for good reason. But there may be ways in which it can prove vitally useful.
Let's see if we can make use of mutability as a tool to create features instead of bugs.
This talk will first focus on the nature of mutability before moving on to common ways it trips people up. It will then discuss some bad ways it can be used before moving on to possible positive uses of mutability.
I expect to be disagreed with.
false
https://pretalx.com/pyconuk-2019/talk/FG97WN/
https://pretalx.com/pyconuk-2019/talk/FG97WN/feedback/
Ferrier Hall
Stranger things in Twitterverse
Talk
2019-09-15T12:00:00+01:00
12:00
00:30
Uncovering Twitter troll armies by monitoring and analyzing millions of tweets using Python to identify suspicious entities that intended to skew online conversations and spread misinformation.
pyconuk-2019-2418-stranger-things-in-twitterverse
PallaviKonark Modi
en
Using Twitter Streaming API we collected and analysed millions of tweets to identify suspicious entities like bots and their impact on online conversations over a period of 3 months. We aim to understand the evolution, affiliation and participation of trolls directly or indirectly to skew public opinion and spread misinformation.
In our talk, based on the analysis, we would like to share the following:
* Identification of trending topics along with for-and-against Hashtags surrounding a given topic.
* Classification of users based on the likelihood of suspicious activity
* Monitoring of above users’ accounts to understand their individual and collective impact and implication on steering of the online conversation
* Tools used to manage, collect and analyze the dataset:
* Python3
* Pandas
* Postgres
* Jupyter
* Bokeh etc.
Based on our leanings we have created a framework with Python ecosystem that monitors tweets in real-time and comes with the following features:
* An Interface that easily configures keywords/hashtags to be monitored
* Classifies users in real-time and monitors their activity
* Identifies popular hashtags/keywords and feeds them back for monitoring their usage.
* Dashboard that displays the following insights:
* Number of unique tweets
* Percentage tweets from suspicious users.
* Volume of tweets from suspicious users, contributing to popular hashtags.
* Flagging the compromised hashtags.
* Top Users
* Top Hashtags
* Top Keyword
Takeaways for the audience
* Creating awareness about open twitter data and its research possibilities.
* A quick overview of how bots are all-pervasive and impacting online conversations.
* Provide a self-service tool built entirely in Python eco-system that empowers users and researchers to verify Twitter conversations’ authenticity.
false
https://pretalx.com/pyconuk-2019/talk/SH39DW/
https://pretalx.com/pyconuk-2019/talk/SH39DW/feedback/
Ferrier Hall
I am telling you 3 things about Chatbot (so you don't have to learn it the hard way)
Talk
2019-09-15T12:30:00+01:00
12:30
00:30
Now we can talk to our gadgets as if it’s a real human. It makes you wonder when you chat with the “customer service” online, is that a real person or a robot on the other side? I built a chatbot, and here’s 3 things that I discovered.
pyconuk-2019-2350-i-am-telling-you-3-things-about-chatbot-so-you-don-t-have-to-learn-it-the-hard-way-
Cheuk Ting Ho
en
Chatbot is cool, have you even think about building one yourself? There are many platforms and tools available, do you know which one to use and where to start?
The first thing I am going to tell you, is what are the main components of a chatbot. It’s always a mystery why chatbot can understand us and take action accordingly. To understand such a complicated machine, we will tear down a chatbot and show you the different parts of a chatbot: NLU, dialogue logic, user interface; and explains what their functions are, thus which part of the process they are responsible for, and how they interact with each other.
The second thing, what a chatbot can and cannot do. We always have an impression that all chatbot can pass the Turing test easily due to the advancement of deep learning and AI. Is that true? Or is it just a couple of big key players in AI showing off their ability? By showing how a chatbot is trained, we can see what limits the “intelligent” of the bot. We can also see how we could make adjustment in training to suit different purpose.
The third thing, is which one to choose. There are many different chatbot development platforms available, both commercial and open source, and they are different in design and approaches in training the bot. I have tried using Amazon Lex and Rasa. From my experience, I can tell you what are the difference between using them so you have a better understanding of what suits your use case better.
This talk is suitable for those who are curious but does not have much experience in chatbots. We will assume audiences already have basic knowledge about NLP and neural network so it would not be covered in details.
false
https://pretalx.com/pyconuk-2019/talk/ZHKDSD/
https://pretalx.com/pyconuk-2019/talk/ZHKDSD/feedback/
Ferrier Hall
Blue Dot - its a bluetooth dot
Talk
2019-09-15T14:30:00+01:00
14:30
00:30
Blue Dot is a bluetooth remote and Python library to allow anyone (from new learner up) to remove the wires from their Python project.
pyconuk-2019-2404-blue-dot-its-a-bluetooth-dot
Martin O'Hanlon
en
One of the big challenges with new learners creating physical computing projects is that taking control of their projects remotely is hard, particularly for those new to programming, computing and making, Blue Dot's aim was to make this as simple as pressing a button.
The talk will cover:
- the objectives, what the project was trying to achieve
- the constraints, it had to be easy for everyone to install and use
- the technical implementation (including a super simple, reliable Bluetooth comms API)
- the design, opening my mind to the versatility of a big blue dot
- why a simple design is a good design
- the future, what comes next, more dots, BLE, iOS
false
https://pretalx.com/pyconuk-2019/talk/QXFDWJ/
https://pretalx.com/pyconuk-2019/talk/QXFDWJ/feedback/
Ferrier Hall
Import as an antipattern - Demystifying Dependency Injection in modern Python
Talk
2019-09-15T15:00:00+01:00
15:00
00:30
Dependency Injection in Python is commonly seen as over-engineering, but I think this is a myth. DI is simple and powerful and can yield great benefits to the overall quality of your code.
pyconuk-2019-2332-import-as-an-antipattern-demystifying-dependency-injection-in-modern-python
Yeray Díaz Díaz
en
Dependency Injection (DI) is a technique quite common in other programming languages that has never quite fitted into the Python programmer's mindset. Usually disregarded as over-engineering and complex, most of its alleged flaws have little to do with the underlying concepts but more with implementation details of large scale frameworks that obscure its core principles.
In my experience DI is simple and powerful and can greatly improve our design making our code is easier to test, extend and maintain.
In this talk I will start with a brief standard example and challenge common idioms that introduce coupling and reduce maintainability and extensibility. I will then introduce concepts like interfaces, inversion of control and DI and apply them showcasing how the design and overall quality of the code improves.
Along the way I will demonstrate how recent additions to Python and its tooling can help when applying these techniques and also address the common misconception among Python developers suggesting large complex frameworks are required to apply DI.
I will then share some examples of Dependency Injection in well known libraries and some hands-on stories where I have benefited from it in my day-to-day work. And finally I will provide some guidelines on identifying situations where DI shines and where its application might be less obvious or should be delayed until further domain knowledge is introduced.
With this talk I hope to demystify the Dependency Injection in the Python ecosystem as well as introduce and clarify important design concepts for a beginner to intermediate audience.
false
https://pretalx.com/pyconuk-2019/talk/F9KAQM/
https://pretalx.com/pyconuk-2019/talk/F9KAQM/feedback/
Ferrier Hall
Here's Your Mistake...
Talk
2019-09-15T15:30:00+01:00
15:30
00:30
Lessons learned from teaching Python; or why learning to program is surprisingly hard, even with a language as simple as Python.
pyconuk-2019-2423-here-s-your-mistake-
Tobias Kohn
en
With a language as simple as Python, learning to program is easy enough. Or at least so it seems: every once in a while, we encounter a new concept that is really hard to understand, or we make mistakes that we just can't figure out. Perhaps surprisingly, these hard concepts also include basic syntax. And in contrast to Python's simplicity, it offers very little help if you actually made a mistake.
As teachers and educators, we face the challenge of helping our students advance in their programming skills, deal with errors and mistakes, and slowly build self-confidence in their abilities to master Python as a versatile tool. This talk invites you on a journey through common student errors, where I will show you how I changed my teaching to live up to this challenge, find out why the students made mistakes, and how to empower them to overcome their hurdles and eventually master programming in Python.
false
https://pretalx.com/pyconuk-2019/talk/G93RFU/
https://pretalx.com/pyconuk-2019/talk/G93RFU/feedback/
Ferrier Hall
A Tour of Matplotlib: From Bar Charts to XKCD-Style Plots
Talk
2019-09-15T16:30:00+01:00
16:30
00:30
This is a tour of Matplotlib that starts with a gentle introduction involving simple plots like bar charts, line graphs, etc. and ends with fun stuff like XKCD-style plots. During the talk, we will see the popular techniques to customize the plots with axes, grid, labels, legends, spines, etc.
pyconuk-2019-2417-a-tour-of-matplotlib-from-bar-charts-to-xkcd-style-plots
Susam Pal
en
While Matplotlib is pretty easy to get started with, it can gradually become a tedious task of hunting through extensive documentation to customize a plot to give it the perfect look and feel. This talk would walk the audience through some of the common patterns frequently used while customizing plots drawn with Matplotlib.
This talk would first offer a gentle introduction to plotting simple graphs and how to export the plots as high quality image files. The talk would then dive into customizing simple plots with colours, labels, legends, grids, major ticks, minor ticks, spines, etc. The talk would present a few example charts from scratch and then tweak various aspects of it to demonstrate various customizations.
The speaker would also share a few stories regarding how beautiful graph plots can make a difference in various contexts. For example, one story involves the speaker plotting a beautifully framed heart to impress his life partner. Another example involves plotting serious data in XKCD sketch-style to add a touch of humour with wiggly curves.
false
https://pretalx.com/pyconuk-2019/talk/JSHZBX/
https://pretalx.com/pyconuk-2019/talk/JSHZBX/feedback/
Ferrier Hall
FastAPI from the ground up
Talk
2019-09-15T17:00:00+01:00
17:00
00:30
What comes next after Django and it's Django REST Framework? This talk shows how to build a simple REST API for a database from the ground up using FastAPI.
pyconuk-2019-1966-fastapi-from-the-ground-up
Chris Withers
en
The normal pattern for building a modern web application is a Javascript front-end application hitting a REST or GraphQL API back-end API. Django's DRF has been one of the standards for Python API servers but has the idiosyncrasies and drawbacks of Django, so what comes next?
This talk will go through the current available options, explaining why I settled on FastAPI. It will then go through the process of building a simple REST API from the ground up, explaining the choices available and covering url mapping, databases and authentication/authorization.
To get the most out of it, you will already know some Python. Experience with REST APIs and databases will help, but isn't required.
false
https://pretalx.com/pyconuk-2019/talk/MRPCLS/
https://pretalx.com/pyconuk-2019/talk/MRPCLS/feedback/
Marble Hall
Jobs Fair
Something Else
2019-09-15T13:00:00+01:00
13:00
01:30
Jobs Fair
pyconuk-2019-2579-jobs-fair
Owen Campbell
en
Jobs Fair
false
https://pretalx.com/pyconuk-2019/talk/QKCCGF/
https://pretalx.com/pyconuk-2019/talk/QKCCGF/feedback/
Lower Hall
Code Dojo
Something Else
2019-09-15T19:30:00+01:00
19:30
02:30
A Python Code Dojo, based on the long-running London Python Code Dojo series.
pyconuk-2019-2742-code-dojo
Tom VinerDaniel Pope
en
It's a very welcoming format where a coding challenge is set and everyone takes part as one of a team. It's definitely not a competition, and it definitely is a place where beginners or less experienced coders can join in.
The layout of the evening is as follows:
* We eat, drink and socialise
* We'll describe the evening's challenge.
* We break up into teams
* Each team decides how to approach the challenge, both from a technical and from a team perspective.
* There's about an hour and a half of coding mayhem
* Each team shows its code and results in front of everyone else: how far they got, what they tried, what worked, what didn't.
* We go home happy
false
https://pretalx.com/pyconuk-2019/talk/ZRTNDG/
https://pretalx.com/pyconuk-2019/talk/ZRTNDG/feedback/
Room A
Python on Hardware Community Showcase (Open Session)
Workshop
2019-09-15T10:30:00+01:00
10:30
01:30
Do you have a hardware project you'd like to showcase?
<br>
From tiny to massive, everything and everyone are welcomed!
An open session for any conference attendee to bring their hardware projects.
Don’t have anything to show? Come around at anytime to check it out!
pyconuk-2019-2431-python-on-hardware-community-showcase-open-session-
Carlos Pereira Atencio
en
Python on hardware is awesome, we have standard Python, Micropython, CircuitPython or AnyOtherPython running on things like Rasberrpy Pis, micro:bits, Pyboards, CircuitPlaygrouds, ESP boards, and any other embedded device or Single Board Computer. But what’s really cool is all the amazing things the community makes.
This is YOUR chance to show the world what you have been working on!
No matter how big or small, simple or complex, hacky or professional, we would love to check it out and hear all about it. And we meant it! This is an open space for all levels, from a blinking LED to a robot to conquer the world (well, maybe just make sure there is a kill-switch).
So, make a little bit of space in your suitcase and bring your Python on Hardware projects to Cardiff.
false
https://pretalx.com/pyconuk-2019/talk/JNDWKS/
https://pretalx.com/pyconuk-2019/talk/JNDWKS/feedback/
Room B
But I never wanted to do DevOps! A practical, hands-on introduction to containerised web deployment for Django developers who would rather just create applications
Workshop
2019-09-15T10:30:00+01:00
10:30
01:30
A practical, hands-on introduction to containerised web deployment for Django developers who would rather just create applications.
pyconuk-2019-2293-but-i-never-wanted-to-do-devops-a-practical-hands-on-introduction-to-containerised-web-deployment-for-django-developers-who-would-rather-just-create-applications
Daniele Procida
en
Programmers *can* get deployment and operations done, while staying clear of sharp moving parts (not to mention the dreaded pagers and on-call rotas) *by learning just enough to let someone else take care of the difficult things*.
Modern containerisation technology combined with *Platform-as-a-service* systems give you power without needing you to take all the responsibility too, and they may be easier to learn to use than you imagine.
The examples and exercises in the workshop will use Docker containerisation on the Python/Django-powered Divio Cloud, to deploy and manage Django web applications on infrastructure services such as Amazon Web Services and Microsoft Azure. The workshop is backed by [an online handbook that is regularly updated and is continually being improved and expanded](https://no-devops.readthedocs.io/en/latest/index.html).
We'll cover programming topics, such as [how to use Django's abstraction layers in your code correctly](https://no-devops.readthedocs.io/en/latest/100-adapting-to-containerisation.html#you-can-t-store-media-files-the-way-you-once-did) so that you don't inadvertently constrain it to a single deployment environment. We'll also look at how to wire up services including Celery, Elastic Search and logging, making use of off-the-shelf options that mean the minimum work for you.
Above all, through the practical steps and exercises that all take the perspective of the Django application programmer as a starting point, we'll introduce and reinforce the [ways of thinking about your projects](https://no-devops.readthedocs.io/en/latest/75-ways-of-thinking.html) that must be internalised in order to succeed in containerised deployment.
The skills and concepts you'll learn are transferable; they'll expand your repertoire and become valuable components in your developer's toolbox.
false
https://pretalx.com/pyconuk-2019/talk/KA3UM9/
https://pretalx.com/pyconuk-2019/talk/KA3UM9/feedback/
Room C
Automating web applications with Selenium WebDriver
Workshop
2019-09-15T10:30:00+01:00
10:30
01:30
Selenium WebDriver is a popular open-source cross-platform browser automation framework. This workshop will cover using Selenium to create automated tests, including topics such as object identification, adding verifications and synchronisation, parameterising a script, creating a page model
pyconuk-2019-2335-automating-web-applications-with-selenium-webdriver
Colin Bell
en
Selenium is an automation tool that is mainly used for creating automated tests for web applications. It can be used with most popular browsers including Chrome, Firefox, Internet Explorer, Safari.
This will be a fast paced, hands-on workshop covering topics such as:
- what is functional testing and why it is important
- installing Selenium
- using Selenium with different browsers
- object identification- how to get Selenium to recognise objects in your application using various different methods
- verifications- using a unit testing framework to add testing features to a Selenium script
- synchronisation- getting Selenium and your application to work nicely together
- parameterising a script- different techniques for varying the data used by your script
- creating a page model- using stored object definitions to reduce the script maintenance required
false
https://pretalx.com/pyconuk-2019/talk/VPHQ8A/
https://pretalx.com/pyconuk-2019/talk/VPHQ8A/feedback/
Room D
Benefits of competition based libraries for beginners in Python
Talk
2019-09-15T11:30:00+01:00
11:30
00:30
How can using a competition specific library enhance the learning of beginners in programming and what to keep in mind when developing one?
pyconuk-2019-2385-benefits-of-competition-based-libraries-for-beginners-in-python
Can ErsozSedat yalcinYaşar İdikutYoel Kastro
en
As in many fields, first impressions matter in programming too. A student's first encounter with programming will play a significant role in defining their relationship with it for the rest of their life. Will they fall in love with it or completely hate it? Having the right motivations can encourage the student to learn more while the tiny bits of frustrating errors can accumulate and push even the most eager beginner away. We believe that utilizing a competition specific library can act as a significant catalyzer in the enthusiastic beginner’s process of learning Python.
The idea for developing a physical computing library targeted towards beginners was born while we were organizing the first PiWars Turkey event at our high school in Istanbul. In the event, 20 mostly rookie high school teams from all around Turkey competed in various autonomous and remote controlled challenges with their Raspberry Pi based robots. Unlike many other competitions, we held a two-day long workshop a moth before the competition where we gave lessons on Introduction to Python, Electronics with Raspberry Pi, OpenCV and 3D design and supplied our participants with robot kits. Most importantly, we supplied the teams who had nearly no prior experience in programming with a custom PiWars Turkey library.
Having gone through the process of learning Python by creating Raspberry Pi based robots ourselves just a few years ago, we decided to develop a library for the use of our 20 rookie teams. This helped us gain significant knowledge on writing and developing a library for beginners in physical computing with Python, and once we received the participants’ feedback, we saw that the presence of the library had facilitated their learning.
In this session, we will try to tackle questions such as “Do libraries really benefit beginners while learning Python?”, “Is a competition based approach a good motivator for inexperienced programmers?”, and “What should a developer keep in mind while creating a library for beginners?”. We will also go over the codes and feedbacks of the teams who utilized the PiWars Turkey library to analyze the efficacy of this approach.
You can access the library from here
https://github.com/HisarCS/PiWarsTurkey-Library-Folders
Our website:
https://piwars.hisarcs.com/
false
https://pretalx.com/pyconuk-2019/talk/SPY8JN/
https://pretalx.com/pyconuk-2019/talk/SPY8JN/feedback/
Room D
Dash: Interactive Data Visualization Web Apps with no Javascript
Talk
2019-09-15T12:00:00+01:00
12:00
00:30
From the team that makes Plotly, Dash is a library for producing interactive web apps with Python. This talk introduces Dash and will discuss how it may fit into your team!
pyconuk-2019-2410-dash-interactive-data-visualization-web-apps-with-no-javascript
Dom Weldon
en
Your data science or machine learning project probably won't just produce a written report. Instead, projects are increasingly expected to produce interactive tools to allow end-users to explore data and results with rich, interactive visualizations. Inevitably, this will be done in a web browser, meaning you'll need to add a quantitatively trained web developer to your team, or have your data scientists spend time learning HTML, Javascript and CSS. Dash, a project by the team that makes Plotly, solves some of these problems by allowing data scientists to build rich and interactive websites in pure python, with minimal knowledge of HTML and absolutely no Javascript.
At decisionLab, a London-based data science consultancy producing decision tools, we've embraced Dash to produce proof-of-concept models for our projects in alpha. Although we're not officially connected to the plotly/Dash project, by using the library daily across many projects, we've learned many lessons and what we feel are best practises we'd like to share, and hear feedback on!
This talk will give an overview of Dash, how it works and what it can be used for, before outlining some of the common problems that emerge when data scientists are let loose to produce web applications, and web developers have to work with the pydata ecosystem. The talk also covers effective working practises to start producing cool interactive statistical web applications, fast. We'll also identify some of the pitfalls of Dash, and how and when to make the decision to stop using Dash and start building a proper web application.
false
https://pretalx.com/pyconuk-2019/talk/FFGRAF/
https://pretalx.com/pyconuk-2019/talk/FFGRAF/feedback/
Room D
Dictionaries, behind the scenes
Talk
2019-09-15T12:30:00+01:00
12:30
00:30
Have you ever wondered how Python’s dictionaries work behind the scenes? For the curious minds: we will unveil some of the magic, things ranging from performance to security, and some surprises. For the pragmatists: we’ll see cases where understanding the internals can have practical applications
pyconuk-2019-1871-dictionaries-behind-the-scenes
Gisela Rossi
en
You have been working with Python dictionaries for a while and you feel comfortable using them, now you’re interested in taking the next step. With this talk you’ll get a look at how dictionaries work on the inside, things ranging from performance to security, and some surprises. You’ll also learn how to personalise your dicts, for example modifying the hash function (and the risks of doing it). You will leave knowing your tools better and loving python dicts even more.
false
https://pretalx.com/pyconuk-2019/talk/SMSLJT/
https://pretalx.com/pyconuk-2019/talk/SMSLJT/feedback/
Room D
Mock Object Library: Common Pitfalls and Best Practices
Talk
2019-09-15T14:30:00+01:00
14:30
00:30
This talk is an introduction to the mock object library along with a detailed discussion on common pitfalls associated with patching objects with mocks and the best practices for it. The talk would present code examples, common pitfalls, and best practices to demonstrate how to use mocks effectively.
pyconuk-2019-2422-mock-object-library-common-pitfalls-and-best-practices
Sunaina Pai
en
Unit testing is an integral part of any matured software development process. Python comes with the `unittest` package that provides a very comprehensive unit testing framework for writing unit tests. Often, the functionality being tested depends on complex external objects that are unnecessary and/or impractical to create in unit tests. That's when we need to use mock objects to partially simulate the behaviour of the external objects in order to write the unit tests and invoke the functionality being tested. Sometimes we also need to validate whether the functionality being tested exercised the mock objects in certain ways. Python comes with a quite comprehensive mock object library in the form of `unittest.mock` module that fulfills these requirements of mocking objects.
This talk would discuss how to use the `unittest.mock` library to create mock objects, patch modules and classes, record method calls on mock objects, and make assertions about which mock methods or attributes are exercised during tests, and the arguments they are called with. Additionally, this talk would also discuss how to construct mock objects that simulate specific expected behaviour such as returning specific values, mocking a chain of method calls, asserting that a chain of methods are called, etc.
Further, this talk would dive into common pitfalls that one encounters while using `unittest.mock`, e.g., how patching an object at the wrong place leads to test errors, how to write good test code to verify whether a chained call was made, etc. These examples are drawn from the speaker's experience while working on Python projects.
The goal of this talk is to help Python developers with a basic knowledge of unit testing to effectively use mock objects in order to avoid common pitfalls as well as write better, simpler, and robust unit tests.
false
https://pretalx.com/pyconuk-2019/talk/GLQJCB/
https://pretalx.com/pyconuk-2019/talk/GLQJCB/feedback/
Room D
Using Pomelo to Enhance Algorithmic Thinking
Talk
2019-09-15T15:00:00+01:00
15:00
00:30
We have designed Pomelo, an interactive robot that teaches algorithmic thinking through collaborative tasks and games. With Pomelo we aim to drag the interest of young children into programming both in and outside of classroom environments.
pyconuk-2019-2344-using-pomelo-to-enhance-algorithmic-thinking
Yoel NasiSedat yalcinCan Aydinbatuhan bayraktarRana Taki
en
Schools provide great opportunities and methods so that children can learn subjects like maths or sciences at school. However, children commonly lack basic yet vital skills of the 21st century, some of these skills are effectiveness and contributions to a group project, learning from previous mistakes and experiences, and algorithmic thinking. This talk is about a toy designed by high school students for primary school students. The aim of Pomelo(the toy) is to enhance collaborative, experimental-leaning through physical interactions/games, and to help children understand the basics of algorithmic thinking. The talk also contains a comparison between Pomelo and pre-existing alternatives such as Scratch.
false
https://pretalx.com/pyconuk-2019/talk/UY9EFF/
https://pretalx.com/pyconuk-2019/talk/UY9EFF/feedback/
Room I
Writing micro-services in Python... Sure! But which framework?
Workshop
2019-09-15T11:30:00+01:00
11:30
01:30
When googling "python micro-service framework", there are plenty of "Hello world" examples out there for **many** (micro-)frameworks.
But how do they scale to "real" world applications? How can I connect framework X to a database or what do you need to do to use OAuth2 with framework Y?
pyconuk-2019-2319-writing-micro-services-in-python-sure-but-which-framework-
Emma Delescolle
en
This workshop was inspired by Aaron Bassett's EuroPython 2018 talk "Hello to the World in 8 Web Frameworks micro, batteries included & async". It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to "real" life use-cases.
In order to learn about that, I went through several steps:
- I decided on 4 micro-services I wanted to build and that were somewhat representative of services you might need in a production setting
- I set some constraints about what I expect from a micro-service as a developer (ie: documentation, testing, etc), as a sysadmin (ie: ease of deployment) and as a product manager (ie: performance)
- I implemented those micro-services using several frameworks
- I deployed them with production settings on a Raspberry Pi cluster
- I tested the performance of each architecture
This workshop will deep-dive into specific things I learned and found the most interesting, some are code samples others are strategies.
**Spoiler**: I will not end the workshop with "choose framework Z"
false
https://pretalx.com/pyconuk-2019/talk/NLMNPY/
https://pretalx.com/pyconuk-2019/talk/NLMNPY/feedback/
Room J
Plug & train: flexible customisation and extension of python's deep learning frameworks
Workshop
2019-09-15T14:30:00+01:00
14:30
01:30
Python is growing quickly partly due to its popularity in the data science and machine learning community. Python's flexibility is well suited to new statistical frameworks such as deep learning which are successful because they are modular. This is the story of the success of python in deep learning.
pyconuk-2019-2401-plug-train-flexible-customisation-and-extension-of-python-s-deep-learning-frameworks
Jan FreybergIsobel Weinberg
en
The rapid growth of python and the growth of deep learning coincide
almost perfectly. The flexibility of python has made it the language of choice
for machine learning in general, and deep learning in particular. Tracking the
success of deep learning is a great way to track the success of python.
Deep learning, or the training of deep neural networks to analyse data and make
predictions, is an inherently flexible framework. Deep neural networks can be
built to accept data of almost arbitrary shapes and sizes. Users achieve this by
combining modules that perform different tasks in a plug-and-play
fashion: as long as they are differentiable, they can be combined.
In python, frameworks such as Tensorflow, Keras, and Pytorch have made
it easy to construct and customise those building blocks. These frameworks
are inherently recursive: a model is the same type of object as its constituent
parts, and in turn can be used to construct larger models.
This means that these frameworks can take advantage of python's flexibility.
When subclassing neural networks, users are able to define hooks that alter
either what the model does with the data (the "forward pass"), or how it changes
in response to feedback during training (the "backward pass").
One demonstration of this flexibility is a gradient reversal layer. This
allows you to train a model to do the opposite of what it would usually do:
instead of becoming good at a computer vision task, it becomes bad. What sounds
like a fundamental change in behaviour is in fact something we can
demonstrate very easily in the pytorch framework.
Integrating multiple of these models in a flexible fashion is similarly easy.
Models in deep learning frameworks are just combinations of smaller models, and
it is easy to use a model that was trained for image classification and use it
as the first step in a larger model that actually locates objects in images.
Thanks to python's overloading functionality, we'll demonstrate that it is easy
to convert a model that produces one output into a model that produces many
intermediate outputs, as is common in Feature Pyramids in computer vision.
This flexibility does not come at the expense of stability in production.
Frameworks like tensorflow allow for fixed and stable network serialisation that
can be used continuously and with great success in large corporations with
distributed infrastructure.
false
https://pretalx.com/pyconuk-2019/talk/MVGWY7/
https://pretalx.com/pyconuk-2019/talk/MVGWY7/feedback/
Room K
What are they talking about? Mining topics in documents with topic modelling and Python
Workshop
2019-09-15T10:30:00+01:00
10:30
01:30
This tutorials is a practical introduction to topic modelling in Python, tackling the problem of analysing large data sets of textual data, in order to identify topics of interest and related keywords.
pyconuk-2019-2315-what-are-they-talking-about-mining-topics-in-documents-with-topic-modelling-and-python
Marco Bonzanini
en
This tutorial tackles the problem of analysing large data sets of unstructured textual data, with the aim of identifying and understanding topics of interest and their related keywords.
Topic modelling is a technique that provides a bird's-eye view on a large collection of text documents. The purpose is to identify abstract topics and capture hidden semantic structures. Topic modelling techniques can be used in exploratory analysis, to better understand its semantics even in absence of explicit labels.
In this tutorial, we'll walk through the whole pipeline of pre-processing textual data, applying topic modelling techniques, and evaluating the output. The focus will be on classic approaches like Latent Dirichlet Allocation (LDA), with practical examples in Python using the library Gensim.
The tutorial is tailored to beginner users of Natural Language Processing (NLP) tools and people who are interested in knowing more about NLP tools and techniques.
By attending this tutorial, participants will learn:
- how to run an end-to-end NLP pipeline on the problem of topic mining
- how to capture semantic structures in text with topic modelling
- how to assess the output of topic modelling techniques applied to textual data
If you're planning to attend the tutorial, please download the material beforehand: https://github.com/bonzanini/topic-modelling
false
https://pretalx.com/pyconuk-2019/talk/JCVVUM/
https://pretalx.com/pyconuk-2019/talk/JCVVUM/feedback/
Assembly Room
Introduction
Talk
2019-09-16T09:00:00+01:00
09:00
00:30
Monday Introduction
pyconuk-2019-2549-introduction
Daniele Procida
en
Monday Introduction
false
https://pretalx.com/pyconuk-2019/talk/G8M38E/
https://pretalx.com/pyconuk-2019/talk/G8M38E/feedback/
Assembly Room
while history: continue
Talk
2019-09-16T09:30:00+01:00
09:30
01:00
History is full of weird events. Because we're human (and weird), these events tend to have their reasons in social dynamics that are still around today.
pyconuk-2019-2557-while-history-continue
Tobias Kunze
en
Amidst a software industry reinventing everything from first principles, let's see if we can't actually learn a bit from ancient history. Featuring, in no particular order, the BDFL of the Catholic church, pneumatic tubes, Cæsar's legacy, right- and left side traffic, hostile acquisitions, high-frequency trading, and of course Python 2.
false
https://pretalx.com/pyconuk-2019/talk/WBE8WB/
https://pretalx.com/pyconuk-2019/talk/WBE8WB/feedback/
Assembly Room
The Fallacy of Meritocracy
Talk
2019-09-16T10:30:00+01:00
10:30
00:30
The Fallacy of Meritocracy
pyconuk-2019-2833-the-fallacy-of-meritocracy
Nikoleta Glynatsi
en
The Fallacy of Meritocracy
false
https://pretalx.com/pyconuk-2019/talk/8XCQTW/
https://pretalx.com/pyconuk-2019/talk/8XCQTW/feedback/
Assembly Room
The world's cheapest, simplest plotter
Talk
2019-09-16T11:30:00+01:00
11:30
00:30
I present an ultra-cheap (€12.50 for all parts, including a Raspberry Pi) Python-powered drawing machine, constructed from cardboard, assembled using basic tools and glue.
pyconuk-2019-2289-the-world-s-cheapest-simplest-plotter
Daniele Procida
en
I present an ultra-cheap (total cost of materials: €12.50) plotter that can be built with minimal skills.
At its heart is a Raspberry Pi Zero and some relatively simple custom software, driving three servo motors.
The mechanical hardware can be built from nothing but stiff card, a ball-point pen and some glue. The only tools required are a ruler, a sharp knife, a screwdriver and something to make holes in the card.
Almost everything required can be found in a desk or kitchen drawer. The entire device can be built with no special skills in about an hour.
As you can see from the following images, the plotter produces images with a distinct charm:
* https://www.dropbox.com/s/s7x3cnxzp1zwnp0/europython.jpg?dl=0
* https://www.dropbox.com/s/lzykb02rxh2d9ef/IMG_0065.jpg?dl=0
* https://www.dropbox.com/s/8ibihhbfz9gmql0/IMG_0067.jpg?dl=0
* https://www.dropbox.com/s/50lemnzw5ismcrq/IMG_0075.jpg?dl=0
It can also function as the world's most inconvenient camera: take a photo using the Raspberry Pi's camera, convert it into lines, and draw it.
This is fun, but it's much more than that. There are barriers of skill, expense and materials around robotics. This project comes with me to African PyCons, and makes it possible for programmers to explore Python-based robotics, however limited their resources.
The tools and complete kit of materials to build several plotters can be carried in a small box. The plotter code is published on GitHub: https://github.com/evildmp/PantoGraph. The code for converting bitmaps to cartesian vectors is at https://github.com/evildmp/linedraw/.
I expect this to appeal to anyone who is interested in the idea of Python-driven robotics but is put off by the cost and complexity of hardware required actually to achieve something.
It will be particularly of interest to people involved in education, or who'd like to explore Python with young people. The code, mathematics and especially the hardware in this project are all simple.
The code resists the temptation to abstraction, and makes a point of breaking operations down into steps that are as easy as possible to follow. The project shows that doing things with robotics isn't just for people with well-equipped workshops and the engineering skills to use them.
false
https://pretalx.com/pyconuk-2019/talk/HERDDR/
https://pretalx.com/pyconuk-2019/talk/HERDDR/feedback/
Assembly Room
An Introduction to Hardware Drivers in (Micro)Python
Talk
2019-09-16T12:00:00+01:00
12:00
00:30
Have you ever been curious about how device drivers control the hardware in your computer, phone, or IoT widget? Have you always thought you would needed to learn C or other low-level language to write a driver? Thanks to MicroPython we can control the physical world with Python code!
pyconuk-2019-2436-an-introduction-to-hardware-drivers-in-micro-python
Carlos Pereira Atencio
en
MicroPython is a lean an efficient implementation of the Python 3 programming language for microcontrollers and constrained environments. Thanks to MicroPython we can use Python to control embedded devices, allowing us to prototype faster, release to market sooner, provide more engaging computing education, or simply have more fun!
It’s never been easier to adventure in the embedded space, and using a familiar language is a great advantage. It’s incredible that we can simply “upip install” a module to control our brand new sensor, display, controller, etc; but how does it work? Or what do we do if there isn’t an existing library available?
This talk will focus on the basic concepts needed to understand how your code can make something move, how these hardware devices operate and how do they electrically talk with each other. It will provide simple examples showing how easy it is to do all this in Python, and a few tips on what to do when things go wrong.
false
https://pretalx.com/pyconuk-2019/talk/ANWJGD/
https://pretalx.com/pyconuk-2019/talk/ANWJGD/feedback/
Assembly Room
Real-time data acquisition, from Arduino to the web, using PubSub with Redis, Django and other friends
Talk
2019-09-16T12:30:00+01:00
12:30
00:30
I'll apply PubSub to collect data in real-time from TCP-enabled peripherals, like Arduino or others, and deliver them to a data server for storage, processing, and broadcasting to remote clients (typically smartphones or tablets) for real-time monitoring and inspection
pyconuk-2019-2361-real-time-data-acquisition-from-arduino-to-the-web-using-pubsub-with-redis-django-and-other-friends
Mario Orlandi
en
We all know and love our fancy web framework, but when it comes to collecting data in real-time from remote devices, we have to take a step in a new direction.
This talk aims to add an extra dimension to the skills of Python/Django developers, who may be familiar with processes and techniques involved in data publishing, but would like to explore new ways of collecting data in the first place.
The talk covers data collection, processing and publishing.
**Collection**: TCP-enabled devices such as Arduino make it possible to collect real-time data extremely cheaply and simply. I will demonstrate how easy it is to deliver data from such devices to our data servers, using robust PubSub communication patterns.
**Processing**: a Python backend provides multiple options for processing data and extracting useful information and insights.
**Publishing**: to complete the cycle, the information must be delivered in real-time to the user in a comprehensible, usable form; we’ll assume our users are working in the field with smartphones or tablets.
##### Target audience
I will assume that my audience has a basic understanding of Python and Django, and build on that to introduce tools (Redis, Arduino) and techniques (PubSub, real-time messaging, Django Channels) in a practical context.
We'll dig into the code of several practical use cases, to explore how the solution can be adapted to different scenarios.
The software technologies selected for this purpose are: Python, Redis and Django Channels.
I hope that this talk will give other programmers the confidence to explore this fascinating and useful sphere of programming.
false
https://pretalx.com/pyconuk-2019/talk/SJLVMS/
https://pretalx.com/pyconuk-2019/talk/SJLVMS/feedback/
Assembly Room
Automated Timeseries Analysis with Gaussian Processes
Talk
2019-09-16T14:30:00+01:00
14:30
00:30
How to automatically identify, and describe, interesting patterns in timeseries data, such as trends, change-points and periodic behaviour.
pyconuk-2019-2581-automated-timeseries-analysis-with-gaussian-processes
Joe Hall
en
There has significant progress in recent years in developing new, exciting, flexible, predictive ML models. However! Considerable expertise is still required to choose appropriate features/models AND the output of a model, whilst accurate, can be difficult to understand! When dealing with lots of timeseries data it would be useful if we had a system to automatically group and describe similar timeseries and fit a state-of-the-art predictive model all at once...
In this talk I outline an elegant piece of work called the [Automatic Statistician](https://www.automaticstatistician.com) (based on Gaussian Processes) and how I implemented a simple Python API which can automatically detect interesting structure in timeseries data (trends, change-points, periodicity, etc) as well as providing a plain English description of the result.
false
https://pretalx.com/pyconuk-2019/talk/QBPBDR/
https://pretalx.com/pyconuk-2019/talk/QBPBDR/feedback/
Assembly Room
How to use Python to expose politicians?
Talk
2019-09-16T15:00:00+01:00
15:00
00:30
This talk presents a project that uses an API of the Brazilian government to retrieve data from congresspeople and expose how they are spending people's money. I use **Pandas** to manipulate the data and, **Lektor** and **Chart.JS** to create a website that makes this data accessible and comprehensible.
pyconuk-2019-2360-how-to-use-python-to-expose-politicians-
Rafael Garcia-Dias
en
This talk presents the basic concepts of data treatment and manipulation. It presents a quick introduction to [Lektor](https://www.getlektor.com/), a framework to build static websites in pure Python (and, a little bit of markdown and HTML). I also make a brief presentation of the project [Serenata de Amor](https://serenata.ai/en/), which I use to retrieve the data of Brazilian congresspeople. I talk about [Pandas_profiling](https://github.com/pandas-profiling/pandas-profiling), [Pandas](https://pandas.pydata.org/), and [chart.js](https://www.chartjs.org/), giving very simple examples of how they can be used to produce nice data visualization.
This talk is especially interesting for those that want to build a simple static website and don’t want to deal with javascript frameworks like Hugo. It is also interesting for people that are interested in data science and anybody that is thinking about how to use their skills to impact politics.
false
https://pretalx.com/pyconuk-2019/talk/PYHRRW/
https://pretalx.com/pyconuk-2019/talk/PYHRRW/feedback/
Assembly Room
Python in the browser
Talk
2019-09-16T15:30:00+01:00
15:30
00:30
You don't have to write JavaScript to write front-end code. There are a lot of options to run Python in the browser. We'll look at how this is achieved - there's more than one way to do it!
pyconuk-2019-2398-python-in-the-browser
Shaun Taylor-Morgan
en
I've never quite got on with JavaScript, but it's the only choice for writing dynamic web pages, isn't it?
Actually, no! You can run Python in the web browser.
There are quite a few projects out there that enable Python in the browser in a variety of ways. Each has a different approach - compiling Python to JavaScript at runtime, compiling Python to JavaScript ahead-of-time, interpreting pre-compiled Python bytecode, implementing an entire Python interpreter in WebAssembly...
There's a more general lesson to draw from this - the web stack has always been constrained to involve JavaScript, but now people are beginning to create more options. The advent of WebAssembly will surely make this the norm. We're seeing a move to a web where developers can take more control over how they build things.
false
https://pretalx.com/pyconuk-2019/talk/SAZB3V/
https://pretalx.com/pyconuk-2019/talk/SAZB3V/feedback/
Assembly Room
Typed attrs dataclasses with cattrs converters for JSON REST microservices.
Talk
2019-09-16T16:30:00+01:00
16:30
00:30
Do you have confidence in your data without painful explicit checks? Use types in your code - attrs is a smart solution to make life easier.
pyconuk-2019-2256-typed-attrs-dataclasses-with-cattrs-converters-for-json-rest-microservices-
Damian Swistowski
en
REST microservices commonly use JSON as inputs and outputs. It's a simple and language-agnostic way of communication. The JSON can be easily translated into simple python structures like dictionaries and arrays.
Although it's possible to use raw input data inside your application, type checking in Python increases confidence in our code with fewer unit tests and simpler refactoring.
Translating primitive data to typed data structures can be a tedious job, but with the help of `attrs` and `cattrs` modules, it's a simple task which does not add a lot of code.
The talk will present why choosing `attrs` can be good for your project and how to use it effectively, using `cattrs` to structure simple data into your data objects, show some pitfalls and how we solved them.
false
https://pretalx.com/pyconuk-2019/talk/VREQRJ/
https://pretalx.com/pyconuk-2019/talk/VREQRJ/feedback/
Assembly Room
Lightning talks
Something Else
2019-09-16T17:00:00+01:00
17:00
01:30
Lightning talks
pyconuk-2019-2548-lightning-talks
Mark Smith
en
Short talks.
false
https://pretalx.com/pyconuk-2019/talk/VCP83L/
https://pretalx.com/pyconuk-2019/talk/VCP83L/feedback/
Ferrier Hall
Battles with reproducibility and collaboration in large organisations
Talk
2019-09-16T10:30:00+01:00
10:30
00:30
Reproducibility and collaboration are difficult aspects of any business-based analytics, speaking from personal experience, where a project is likely shared between a technical analyst and a business analyst. This talk aims to show examples of how this can be improved through aspects of the Python / R toolset.
pyconuk-2019-2312-battles-with-reproducibility-and-collaboration-in-large-organisations
Richard Louden
en
Analytics without reproducibility, the ability to reproduce an output from its component parts, results in inherent risk. This is especially true in a business environment where staff can and will move to new jobs, leaving projects and work that may be vital for the business. Ensuring proper project organisation and understanding by other team members is therefore vital. In addition, analytics without collaboration can lead to wholly unsuitable results. Input is needed from both technical analysts (TAs) and business analysts/stakeholders (BAs) to ensure the analytics is paired with domain knowledge and context. Without collaboration and reproducibility, unsuitable work that no one else can understand or continue to build upon is produced.
Integrating reproducibility and collaboration however can be difficult. Different people prefer different tooling, especially those that work in different fields, and the idea of how the resultant product should be shared or maintained can differ. For example, TAs will likely favour notebooks and IDEs over a BAs office suite and TAs are more likely to hold onto the data / database links while BAs are likely to favour the final output.
The aim of this talk is to provide a quick overview, from personal experience working in both consulting and retail, on how both reproducibility and collaboration can be improved by utilising a set of tools within the Python / R ecosystem. I will discuss friendlier ways to set relative paths, utilising both R and Python within the same environment and a methodology for outputting markdown to Microsoft Word, which can then be converted back into a markdown format. I will suggest an example workflow of the sharing of an analysis with a BA, who is then able to tweak wording themselves and add design suggestions, which can then be performed by the TA. Finally, I will discuss my own personal experiences of collaboration and reproducibility and why they are so essential.
false
https://pretalx.com/pyconuk-2019/talk/7LTYFU/
https://pretalx.com/pyconuk-2019/talk/7LTYFU/feedback/
Ferrier Hall
Charming the Snake - Writing Secure Python Code
Talk
2019-09-16T11:30:00+01:00
11:30
00:30
Python, being dynamic and not type safe, is hard to write securely. Vulnerabilities such as injections, XSS, CSRF etc. are hard to find through static analysis tools. This talk is a comprehensive guide on how to write secure code in Python and also how to catch bugs.
pyconuk-2019-2392-charming-the-snake-writing-secure-python-code
Kashish
en
Python is inherently dynamic and lacks type safety. Therefore, Python code can have security vulnerabilities which are hard to catch without manual inspection of code.It is notoriously famous for being hard to run static code analysis against. Most of the open source and commercial tools generate a lot of false positives such that the signal to noise ratio questions their effectiveness.
In this talk, I present a comprehensive guide on how to write secure code in Python. I will cover several categories of vulnerabilities such as SQLi, XSS, CSRF, LDAP injection, command injection, XXE, Timing attacks and other OWASP Top 10 bugs etc. I will also highlight techniques and tools to catch bugs in a more effective manner. Attendees will be able to leave with a much better understanding of how to secure their Python code and applications.
false
https://pretalx.com/pyconuk-2019/talk/FL9SUA/
https://pretalx.com/pyconuk-2019/talk/FL9SUA/feedback/
Ferrier Hall
Massively Multiplayer Online Games with Python
Talk
2019-09-16T12:00:00+01:00
12:00
00:30
In Wargaming we make real-time high load apps with python. Here I’d tell you some issues which might appear when using it for real-time apps with some examples.
pyconuk-2019-2331-massively-multiplayer-online-games-with-python
Dmitry Karpov
en
Usually Python isn't treated as a proper choice for big data and especially for real-time applications. In this talk I would like to tell you how we deal with half-million average online active gamers simultaneously playing on different maps, how we send and receive 10 thousands spatial event data per client per session (like moving on the map, interaction with other players and destructible objects on the map) with pure Python
We will discuss some tips and tricks on how to use Python in this kind of applications. Python has to be modified to handle real-time requirements because of its architecture and we will talk which modifications are necessary for it.
false
https://pretalx.com/pyconuk-2019/talk/FPW89T/
https://pretalx.com/pyconuk-2019/talk/FPW89T/feedback/
Ferrier Hall
Concurrent asyncio and sanity
Talk
2019-09-16T14:30:00+01:00
14:30
00:30
Do you find programming with `asyncio` daunting? Are you wondering how you'd build a real-world network-connected service with this and not die trying? In this talk I want to share some best practices and tips to help you create reliable, maintainable applications using concurrency.
pyconuk-2019-2201-concurrent-asyncio-and-sanity
Martijn Pieters
en
When a customer approached me to create a new platform to collect metadata from some 10.000 different 3rd-party sources on the web, using a host of different formats, *every 30 seconds*, I knew Python would be up to the task. By using `asyncio` you can build very efficient concurrent applications.
But how do you keep your application code organised, and not end up passing around a bunch of queues from one function to another?
In this talk, I'll show you how I built this application, and share my philosophy on structuring a concurrent app, and how to handle:
- modularised concurrent code
- how to plan for and contain exceptions
- configuration
- logging and monitoring
false
https://pretalx.com/pyconuk-2019/talk/NXZGG9/
https://pretalx.com/pyconuk-2019/talk/NXZGG9/feedback/
Ferrier Hall
Managing Big Data in Machine Learning projects
Talk
2019-09-16T15:00:00+01:00
15:00
00:30
My talk will focus on Version Control Systems (VCS) for big-data projects. With the advent of Machine Learning (ML) , the development teams find it increasingly difficult to manage and collaborate on projects that deal with huge amounts of data and ML models apart from just source code.
pyconuk-2019-2382-managing-big-data-in-machine-learning-projects
V Vishnu Anirudh
en
My talk will help audience to understand the importance of having Version Control System for Big Data and Machine Learning (ML) models that goes hand-in-hand with the corresponding source code. This makes it very easy for the development teams to scale the team and at the same time maintain the quick agility of the production pipeline. For example, the ML team can test their new ML models based on the infrastructure developed by the software team by training on the new sets of data uploaded by the data team. And each team need to have their own VCS that blends well with each other. Version control of projects at this level of complexity needs to go beyond the traditional VCS for source code.
Then, my talk will introduce an example project as a case study that involves Big Data and ML algorithms. Finally, my talk will focus on developing this project based on DVC (https://dvc.org/) which is an open-source VCS for Machine Learning projects and it is very popular among companies in Artificial Intelligence (AI) space.
false
https://pretalx.com/pyconuk-2019/talk/GCLBFH/
https://pretalx.com/pyconuk-2019/talk/GCLBFH/feedback/
Ferrier Hall
Adversarial Robustness Toolbox: How to attack and defend your machine learning models
Talk
2019-09-16T15:30:00+01:00
15:30
00:30
Adversarial samples and poisoning attacks are emerging threats to the security of AI systems. This talk demonstrates how to apply the Python library Adversarial Robustness Toolbox (ART) to create and deploy robust AI systems.
pyconuk-2019-2429-adversarial-robustness-toolbox-how-to-attack-and-defend-your-machine-learning-models
Beat Buesser
en
The Adversarial Robustness Toolbox (ART) is an open source Python library released under MIT license providing state-of-the-art adversarial attacks and defenses for classifiers of many of the popular Python deep learning and machine learning projects (TensorFlow, Keras, PyTorch, MXNet and soon scikit-learn). ART enables researchers and developers to easily run large-scale experiments for benchmarking novel attacks or defenses and build comprehensive defenses for real-world machine learning applications. ART has a focus on adversarial robustness of visual recognition systems, but current development is under way to enable other data types such as speech, text and time series data.
This talk will provide a short overview of ART’s architecture and introduce the library modules for classifiers, evasion attacks, evasion defenses, detection of evasion attacks and data poisoning. The main part of this talk will demonstrate multiple short tutorials of real applications of ART for adversarial attacks and defenses on machine learning models supported by code examples and the necessary intuitive mathematical background to understand these attacks and defenses.
This talk is useful for anybody interested in machine learning, deep learning, artificial intelligence and/or security. In this talk we try to increase the audience’s understanding of adversarial machine learning and the awareness of the importance of security for AI systems. Attending this talk should enable the audience to use ART’s interfaces and quickly get started with composing comprehensive defense systems for machine learning and AI systems and applying the necessary attacks to test such systems.
GitHub: https://github.com/IBM/adversarial-robustness-toolbox
Documentation: http://adversarial-robustness-toolbox.readthedocs.io
false
https://pretalx.com/pyconuk-2019/talk/WK9PH7/
https://pretalx.com/pyconuk-2019/talk/WK9PH7/feedback/
Ferrier Hall
Hangar; git for your data
Talk
2019-09-16T16:30:00+01:00
16:30
00:30
Software development is entering an era where the behavior of programs critically depends on the data they were trained on. In this setting, data is the new source code, and this opens the door to challenges like versioning and collaboration on numerical data. Hangar, git for your data
pyconuk-2019-2288-hangar-git-for-your-data
Richard Izzo
en
In this AI first world, Data is the new source code, and this opens the door to challenges like versioning and collaboration on numerical data. Enter Hangar, an open-source tool by [tensor]werk that brings Git-style version control to n-dimensional arrays. It supports versioning, branching, merging, time-travel, diffing, remote repositories and partial fetching, with data loaders for the major deep learning frameworks. At its core hangar is designed to solve many of the same problems faced by traditional code version control system (ie. Git), just adapted for numerical data:
- Time travel through the historical evolution of a dataset
- Zero-cost Branching to enable exploratory analysis and collaboration
- Cheap Merging to build datasets over time (with multiple collaborators)
- Completely abstracted organization and management of data files on disk
- Ability to only retrieve a small portion of the data (as needed) while still maintaining a complete historical record
- Ability to push and pull changes directly to collaborators or a central server (ie a truly distributed version control system)
The ability of version control systems to perform these tasks for codebases is largely taken for granted by almost every developer today; However, we are in fact standing on the shoulders of giants, with decades of engineering which has resulted in these phenomenally useful tools. Now that a new era of “Data-Defined software” is taking hold, we find there is a strong need for analogous version control systems which are designed to handle numerical data at large scale... Welcome to Hangar!
false
https://pretalx.com/pyconuk-2019/talk/WYXAJU/
https://pretalx.com/pyconuk-2019/talk/WYXAJU/feedback/
Room A
Telling Stories With Python and Ren'Py
Workshop
2019-09-16T10:30:00+01:00
10:30
01:30
Make your own interactive fiction game using Ren'Py
pyconuk-2019-1879-telling-stories-with-python-and-ren-py
Hannah Hazi
en
You might be familiar with interactive fiction from 'Choose Your Own Adventure' books, visual novels, or text-based games where what you type controls the story. Ren'Py lets us design our own interactive fiction with the power of Python. It is a game engine with its own scripting language, built on Python and Pygame.
During the session you'll make a start on your own interactive fiction game in Ren'Py, with advice from the workshop coach on how to incorporate native Python code to add extra effects and mini-games within your story.
Pre-requisites: a laptop with Ren'Py installed (get it from www.renpy.org ) and a text editor such as Gedit.
false
https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/
https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/feedback/
Room C
Hardware Hacking Workshop
Workshop
2019-09-16T10:30:00+01:00
10:30
01:30
Interested in programming hardware with MicroPython or CircuitPython? This drop-in workshop will help you to get started. We will have a range of activities for you to try, ranging from complete-beginner-friendly to more advanced topics. Come by and get started!
pyconuk-2019-2443-hardware-hacking-workshop
Sarah Townson
en
This is an informal drop-in workshop, during which we will have lots of kit for you to try out, with plenty of support to get it up and running. If you are a complete beginner, we will get you lighting up an LED for the first time. Perhaps you want to try motor control and get robots responding to sensors? Internet of Things? Temperature-controlled Neopixels? Come, see what interests you, and have a play.
false
https://pretalx.com/pyconuk-2019/talk/XVHHWL/
https://pretalx.com/pyconuk-2019/talk/XVHHWL/feedback/
Room J
Build a full-stack web app in Python with Anvil
Workshop
2019-09-16T10:30:00+01:00
10:30
01:30
We'll create a full-stack web app using Anvil. Anvil is a platform for rapidly developing and deploying web apps using Python on the client and server side. It's like Visual Basic for the web.
You’ll need a laptop to follow along.
pyconuk-2019-2395-build-a-full-stack-web-app-in-python-with-anvil
Shaun Taylor-Morgan
en
Anvil is a platform for rapidly developing web apps using nothing but Python.
It's like Visual Basic for the web. It has a drag-and-drop editor for constructing a user interface, controlled by Python code in both the client and a hosted server environment. It's a commercial platform that's free to use, with paid options for professional projects.
This is an interactive workshop where you'll be guided through creating an app. Either:
- A TODO list - a simple example of a Create, Read, Update, Delete (CRUD) app
- A weather data dashboard
- An app that controls a remote machine from the web
- Any other idea you might have!
You’ll need a laptop to follow along.
For a preview, have a look at this short video https://anvil.works/#about
false
https://pretalx.com/pyconuk-2019/talk/HAEXPV/
https://pretalx.com/pyconuk-2019/talk/HAEXPV/feedback/
Assembly Room
Introduction
Talk
2019-09-17T09:00:00+01:00
09:00
00:30
Tuesday Introduction
pyconuk-2019-2551-introduction
Daniele Procida
en
Tuesday Introduction
false
https://pretalx.com/pyconuk-2019/talk/GCF9LN/
https://pretalx.com/pyconuk-2019/talk/GCF9LN/feedback/
Assembly Room
Sprints
Something Else
2019-09-17T09:30:00+01:00
09:30
08:40
Get together to talk and work in person
pyconuk-2019-2573-sprints
Daniele Procida
en
**What happens at a sprint?**
It’s a number of developers - programmers, designers, documentation writers - together in a room, talking to each other, or sitting at their computers, working on their own, or in pairs, or discussing problems in groups. Typically, you’ll select a ticket (representing a bug, or an improvement that needs to be made) from the project's issue tracker, and get to work on that. As you work, you might want to check with a more experienced coder whether you’re going about it the right way and get feedback on what you’re doing.
**So can I join in?**
Absolutely. Everyone’s welcome. It’s not an elite club, or for experts only. All of the projects that will be running sprints welcome anyone who wants to help.
**I’ve never taken part in a sprint before though.**
That’s no problem. There’ll be an introduction to explain how it works, and other people will be only too pleased to help you get started or to work with you.
**What do I need?**
You'll need to know the basics of using the appropriate version control system (it'll probably be Git/GitHub) to check out code and make pull requests, to know how to use the issue tracker, and so on. You’ll also need your own computer with a suitable Python environment set up on it - but there'll be people to help with that too.
**But I’m not actually a very good Python programmer.**
That’s OK too, neither am I and neither is everyone else. You truly don’t need to be very good Python programmer. In fact, you barely need to be a programmer at all, because even the most novice sprinter can make a very valuable contribution by helping improve documentation, for example.
**I’d be worried about holding up everyone else though.**
It simply doesn’t work like that. For one thing, one of the main points of a sprint is to encourage and help new people. You’ll be able to work at your own pace, learning the things you need to learn as you go along, and you’ll be supported by other people.
**Do I have to stay for a whole sprint?**
Not at all. Drop in just for a bit, if you just want to see what it’s like.
false
https://pretalx.com/pyconuk-2019/talk/K973NJ/
https://pretalx.com/pyconuk-2019/talk/K973NJ/feedback/
Room I
Trans*Code
Something Else
2019-09-17T09:30:00+01:00
09:30
08:40
**Trans*Code** is for trans* people, LGBTQAI+ and allies who want to draw attention to issues facing the transgender community and women. Participants drawn from all skill levels and backgrounds are welcome.
pyconuk-2019-2393-trans-code
Emma Delescolle
en
**Trans*Code** will be holding a hackday. Participants will be encouraged to suggest apps and projects that address the issues facing the transgender and nonbinary community. Participants will then self-organize into teams and spend the day working on their project. At the end of the day the groups will present what they did.
false
https://pretalx.com/pyconuk-2019/talk/7D3TT9/
https://pretalx.com/pyconuk-2019/talk/7D3TT9/feedback/