<?xml version='1.0' encoding='utf-8' ?>
<iCalendar xmlns:pentabarf='http://pentabarf.org' xmlns:xCal='urn:ietf:params:xml:ns:xcal'>
    <vcalendar>
        <version>2.0</version>
        <prodid>-//Pentabarf//Schedule//EN</prodid>
        <x-wr-caldesc></x-wr-caldesc>
        <x-wr-calname></x-wr-calname>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>MPGPVU@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-MPGPVU</pentabarf:event-slug>
            <pentabarf:title>Introduction</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T090000</dtstart>
            <dtend>20190913T093000</dtend>
            <duration>003000</duration>
            <summary>Introduction</summary>
            <description>Friday Introduction</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/MPGPVU/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>DKQLGQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-DKQLGQ</pentabarf:event-slug>
            <pentabarf:title>Reproducible Science: The Good, The Bad, The Ugly and The Untold</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T093000</dtstart>
            <dtend>20190913T103000</dtend>
            <duration>010000</duration>
            <summary>Reproducible Science: The Good, The Bad, The Ugly and The Untold</summary>
            <description>Coming soon...</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/DKQLGQ/</url>
            <location>Assembly Room</location>
            
            <attendee>Dr. Tania Allard</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>3ZRJS8@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-3ZRJS8</pentabarf:event-slug>
            <pentabarf:title>Astro Pi: Python on the International Space Station</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T110000</dtend>
            <duration>003000</duration>
            <summary>Astro Pi: Python on the International Space Station</summary>
            <description>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&apos;ll share photos taken from space and show findings from student experiments using opencv, tensorflow, scikit-learn, ephem and more.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/3ZRJS8/</url>
            <location>Assembly Room</location>
            
            <attendee>Ben Nuttall</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8XZNDS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8XZNDS</pentabarf:event-slug>
            <pentabarf:title>You are in a maze of twisty little passages</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T113000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>003000</duration>
            <summary>You are in a maze of twisty little passages</summary>
            <description>You are a poor little robot, lost in a maze. Your mission, you should choose to accept it (robots don&apos;t get to turn missions down) is to map out the maze.

But there&apos;s a problem! Maybe it&apos;s your tiny robot sensorium not being good enough, but you can&apos;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&apos;s an algorithm for that.

In this talk I&apos;ll teach you a little bit about a neat area of theoretical computer science called *formal language inference*. You probably don&apos;t *need* to know anything about this area, but it&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8XZNDS/</url>
            <location>Assembly Room</location>
            
            <attendee>David R. MacIver</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8HMJJL@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8HMJJL</pentabarf:event-slug>
            <pentabarf:title>Sans I/O programming patterns &#8211; what, why, and how</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T120000</dtstart>
            <dtend>20190913T123000</dtend>
            <duration>003000</duration>
            <summary>Sans I/O programming patterns &#8211; what, why, and how</summary>
            <description>This talk looks at the &#8220;sans I/O&#8221; programming pattern. I&#8217;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&#8217;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&#8217;t revolutionary or life-changing, but it does give you a codebase that&apos;s nicer to work with.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8HMJJL/</url>
            <location>Assembly Room</location>
            
            <attendee>Alex Chan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8CXAGR@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8CXAGR</pentabarf:event-slug>
            <pentabarf:title>Asynchronous Web Development with Flask</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T123000</dtstart>
            <dtend>20190913T130000</dtend>
            <duration>003000</duration>
            <summary>Asynchronous Web Development with Flask</summary>
            <description>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&apos;m going to show you how to write a fully asynchronous web application using Flask. All the techniques I&apos;ll show are also applicable to Django and most other WSGI web frameworks!</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8CXAGR/</url>
            <location>Assembly Room</location>
            
            <attendee>Miguel Grinberg</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>DHYMLQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-DHYMLQ</pentabarf:event-slug>
            <pentabarf:title>Technical Debt Remediation in a Massive Python Codebase</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T143000</dtstart>
            <dtend>20190913T150000</dtend>
            <duration>003000</duration>
            <summary>Technical Debt Remediation in a Massive Python Codebase</summary>
            <description>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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/DHYMLQ/</url>
            <location>Assembly Room</location>
            
            <attendee>Irit Katriel</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HTBP7D@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HTBP7D</pentabarf:event-slug>
            <pentabarf:title>Training my dog with Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T150000</dtstart>
            <dtend>20190913T153000</dtend>
            <duration>003000</duration>
            <summary>Training my dog with Python</summary>
            <description>This talk will culminate in describing a Django Rest Framework I have built to keep track of the behaviours (&quot;tricks&quot;) 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 &quot;routine&quot;) 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&apos;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&apos;s a chance that there will be some machine learning as well (because &quot;machine learning&quot;, who knows maybe even some blockchain). That&apos;s a joke, there will not be blockchain.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HTBP7D/</url>
            <location>Assembly Room</location>
            
            <attendee>Vince Knight</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>NXNPMX@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-NXNPMX</pentabarf:event-slug>
            <pentabarf:title>More Than You Ever Wanted To Know About Python Functions</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T153000</dtstart>
            <dtend>20190913T160000</dtend>
            <duration>003000</duration>
            <summary>More Than You Ever Wanted To Know About Python Functions</summary>
            <description>What exactly _are_ functions? Let&apos;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&apos;s inside.

You probably think you already know everything about functions, but you probably don&apos;t!

**Input &amp; Output**: How do you get things in and out of functions? I&apos;ll cover parameters and the myriad of ways they can be specified, provided and accessed - including helpful hints to avoid common mistakes! I&apos;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&apos;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.)</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/NXNPMX/</url>
            <location>Assembly Room</location>
            
            <attendee>Mark Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>PJRZXZ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-PJRZXZ</pentabarf:event-slug>
            <pentabarf:title>How to write readable tests</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T170000</dtstart>
            <dtend>20190913T173000</dtend>
            <duration>003000</duration>
            <summary>How to write readable tests</summary>
            <description>Have you ever found yourself scratching your head when reading an automated test? Even if we take pride in our application code, it&#8217;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&#8217;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&#8217;t Repeat Yourself in tests, too
- Using custom dataclasses
- Arrange, Act, Assert
- Telling a story
- Showing your working
- Sentinels</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/PJRZXZ/</url>
            <location>Assembly Room</location>
            
            <attendee>David Seddon</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WKYUSG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WKYUSG</pentabarf:event-slug>
            <pentabarf:title>Lightning talks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T173000</dtstart>
            <dtend>20190913T183000</dtend>
            <duration>010000</duration>
            <summary>Lightning talks</summary>
            <description>Short talks.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WKYUSG/</url>
            <location>Assembly Room</location>
            
            <attendee>Mark Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8VC9EY@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8VC9EY</pentabarf:event-slug>
            <pentabarf:title>Optimizing Input: Building your own customized keyboard</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T113000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>003000</duration>
            <summary>Optimizing Input: Building your own customized keyboard</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8VC9EY/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Daniel Rios</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>98UHZP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-98UHZP</pentabarf:event-slug>
            <pentabarf:title>Code walk this way</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T120000</dtstart>
            <dtend>20190913T123000</dtend>
            <duration>003000</duration>
            <summary>Code walk this way</summary>
            <description>How can you help Pythonistas learn a new code base more quickly and level up their Python skills? One way is with a &apos;code walk&apos; &#8212; talking through a code base while reading the code together. 

Over the last five years I have spent a lot of time doing &apos;code archaeology&apos; i.e. trying to understand how and why someone else&apos;s code works! Of all the techniques I&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/98UHZP/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Mary Chester-Kadwell</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QQP9QB@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QQP9QB</pentabarf:event-slug>
            <pentabarf:title>Static Typing in Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T123000</dtstart>
            <dtend>20190913T130000</dtend>
            <duration>003000</duration>
            <summary>Static Typing in Python</summary>
            <description>Python is well-known as a programming language without static types. This means that you don&apos;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&apos;ll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional &quot;type hints&quot; and various tools to aid in adding types to Python code. We&apos;ll see what this means for Python, for Python programmers, and what the future has in store for Python&apos;s type system.

This talk is for Python programmers who either don&apos;t know what static typing is, don&apos;t know why why they might want it, or who do have some understanding, but aren&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QQP9QB/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Dustin Ingram</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>LVNR7V@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-LVNR7V</pentabarf:event-slug>
            <pentabarf:title>Awesome live API docs for under-resourced teams</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T143000</dtstart>
            <dtend>20190913T150000</dtend>
            <duration>003000</duration>
            <summary>Awesome live API docs for under-resourced teams</summary>
            <description>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 &apos;live API docs&apos; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/LVNR7V/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Emanuil Tolev</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GHRAJT@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GHRAJT</pentabarf:event-slug>
            <pentabarf:title>Syntactic sugar vs maintainability</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T150000</dtstart>
            <dtend>20190913T153000</dtend>
            <duration>003000</duration>
            <summary>Syntactic sugar vs maintainability</summary>
            <description>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&apos;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&apos;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&apos;ll know why doing these things is usually a bad idea, and why I think it&apos;s worth doing them anyway.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GHRAJT/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Richard Terry</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>MDL9VK@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-MDL9VK</pentabarf:event-slug>
            <pentabarf:title>Regexplained - Understanding the theory of Regular Expressions</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T153000</dtstart>
            <dtend>20190913T160000</dtend>
            <duration>003000</duration>
            <summary>Regexplained - Understanding the theory of Regular Expressions</summary>
            <description>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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/MDL9VK/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Samathy Barratt</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>PJCYDP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-PJCYDP</pentabarf:event-slug>
            <pentabarf:title>Philosophy of Refactoring</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T163000</dtstart>
            <dtend>20190913T170000</dtend>
            <duration>003000</duration>
            <summary>Philosophy of Refactoring</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/PJCYDP/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Jacob Unna</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>3SSVNY@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-3SSVNY</pentabarf:event-slug>
            <pentabarf:title>DjangoGirls Setup Helpdesk</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T163000</dtstart>
            <dtend>20190913T173000</dtend>
            <duration>010000</duration>
            <summary>DjangoGirls Setup Helpdesk</summary>
            <description>We&apos;ll have coaches on hand to help setup your laptop ready for Saturday&apos;s workshop.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/3SSVNY/</url>
            <location>Lower Hall</location>
            
            <attendee>Ann Barr</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>D9ZVRG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-D9ZVRG</pentabarf:event-slug>
            <pentabarf:title>Board Games and Manual Technology Evening</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T193000</dtstart>
            <dtend>20190913T220000</dtend>
            <duration>023000</duration>
            <summary>Board Games and Manual Technology Evening</summary>
            <description>Everybody is welcome, whatever level of experience you have.

If you&apos;ve never played/knitted/crocheted before, come along and see what it&apos;s all about. If you&apos;ve been playing/knitting/crocheting for years, come and show us what it&apos;s all about!</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/D9ZVRG/</url>
            <location>Lower Hall</location>
            
            <attendee>Sandy</attendee>
            
            <attendee>Becky Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SLMPZN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SLMPZN</pentabarf:event-slug>
            <pentabarf:title>Step Into the AI Era: Deep Reinforcement Learning Workshop</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>013000</duration>
            <summary>Step Into the AI Era: Deep Reinforcement Learning Workshop</summary>
            <description>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&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SLMPZN/</url>
            <location>Room B</location>
            
            <attendee>Cheuk Ting Ho</attendee>
            
            <attendee>Charlotte Feather</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>RTB7BQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-RTB7BQ</pentabarf:event-slug>
            <pentabarf:title>Demystifying Neural Networks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>013000</duration>
            <summary>Demystifying Neural Networks</summary>
            <description>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 &quot;magically&quot; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/RTB7BQ/</url>
            <location>Room C</location>
            
            <attendee>Michal Grochmal</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WJGTWP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WJGTWP</pentabarf:event-slug>
            <pentabarf:title>Logging Rethought 2: The Actions of Frank Taylor Jr.</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T113000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>003000</duration>
            <summary>Logging Rethought 2: The Actions of Frank Taylor Jr.</summary>
            <description>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&#8217;s happening in a service.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WJGTWP/</url>
            <location>Room D</location>
            
            <attendee>Markus Holtermann</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>S8ZQQS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-S8ZQQS</pentabarf:event-slug>
            <pentabarf:title>Python in Medicine: A toolkit for exploring neonatal ventilator data</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T120000</dtstart>
            <dtend>20190913T123000</dtend>
            <duration>003000</duration>
            <summary>Python in Medicine: A toolkit for exploring neonatal ventilator data</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/S8ZQQS/</url>
            <location>Room D</location>
            
            <attendee>David Chong</attendee>
            
            <attendee>Gusztav Belteki</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HJM7JE@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HJM7JE</pentabarf:event-slug>
            <pentabarf:title>The dos and don&apos;ts of task queues</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T143000</dtstart>
            <dtend>20190913T150000</dtend>
            <duration>003000</duration>
            <summary>The dos and don&apos;ts of task queues</summary>
            <description>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&#8217;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&#8217;ll tell a failure story of ours but resulting in a valuable lesson.

Most of our services use Celery and it&#8217;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&#8217;t talk about comparing the frameworks but rather about the approach on how to experiment with new things in your environment. After that, we&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HJM7JE/</url>
            <location>Room D</location>
            
            <attendee>Petr Stehl&#237;k</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TVSVX8@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TVSVX8</pentabarf:event-slug>
            <pentabarf:title>Automating Code Review As Much As Possible</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T150000</dtstart>
            <dtend>20190913T153000</dtend>
            <duration>003000</duration>
            <summary>Automating Code Review As Much As Possible</summary>
            <description>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&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TVSVX8/</url>
            <location>Room D</location>
            
            <attendee>Qasim K</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>VKJJVG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-VKJJVG</pentabarf:event-slug>
            <pentabarf:title>Flask-restplus workshop for beginners</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>013000</duration>
            <summary>Flask-restplus workshop for beginners</summary>
            <description>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&apos;s. Flask-restplus however gives you some of the much needed extra&apos;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&apos;s. And spin up the flask server with an included swagger interface to test and document your API&apos;s.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/VKJJVG/</url>
            <location>Room I</location>
            
            <attendee>Wietse Braam</attendee>
            
            <attendee>Alp Inan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>KCWURZ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-KCWURZ</pentabarf:event-slug>
            <pentabarf:title>Intro to integrating search into your Django app</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T120000</dtend>
            <duration>013000</duration>
            <summary>Intro to integrating search into your Django app</summary>
            <description>We&apos;ll start with a few basic things to keep in mind about full-text search, product search, catalogues, result relevance and user experience. We&apos;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&apos;re trying to do with search &amp; discovery, how it might help or what excites you about the possibilities it opens up.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/KCWURZ/</url>
            <location>Room J</location>
            
            <attendee>Emanuil Tolev</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TW9CEG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TW9CEG</pentabarf:event-slug>
            <pentabarf:title>Just Visiting</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190913T103000</dtstart>
            <dtend>20190913T133000</dtend>
            <duration>030000</duration>
            <summary>Just Visiting</summary>
            <description>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</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TW9CEG/</url>
            <location>Jail</location>
            
            <attendee>David Spademan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>PRWPCE@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-PRWPCE</pentabarf:event-slug>
            <pentabarf:title>Introduction</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T090000</dtstart>
            <dtend>20190914T093000</dtend>
            <duration>003000</duration>
            <summary>Introduction</summary>
            <description>Saturday Introduction</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/PRWPCE/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>79GTCG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-79GTCG</pentabarf:event-slug>
            <pentabarf:title>Leadership and Identity in the Pan-African Python movement</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T093000</dtstart>
            <dtend>20190914T103000</dtend>
            <duration>010000</duration>
            <summary>Leadership and Identity in the Pan-African Python movement</summary>
            <description>Coming soon...</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/79GTCG/</url>
            <location>Assembly Room</location>
            
            <attendee>Marlene Mhangami</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>YDBBKR@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-YDBBKR</pentabarf:event-slug>
            <pentabarf:title>Depression in the Workplace; Let&apos;s talk.</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T103000</dtstart>
            <dtend>20190914T110000</dtend>
            <duration>003000</duration>
            <summary>Depression in the Workplace; Let&apos;s talk.</summary>
            <description>: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&apos;s emphasised that it affects people differently - But by explaining how it actually affects someone who is actively suffering from it, it&apos;s more real.

I&apos;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&apos;re not a medical doctor or psychologist; giving people space; being open for sharing (if you want to be), but not pressuring it.

I&apos;ve given this talk at my workplace; the comments were that it was raw, and really resonated with people.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/YDBBKR/</url>
            <location>Assembly Room</location>
            
            <attendee>Chloe Parkes</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>Z3EC7X@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-Z3EC7X</pentabarf:event-slug>
            <pentabarf:title>Robotic Microscopy for Everyone</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T113000</dtstart>
            <dtend>20190914T120000</dtend>
            <duration>003000</duration>
            <summary>Robotic Microscopy for Everyone</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/Z3EC7X/</url>
            <location>Assembly Room</location>
            
            <attendee>Deleted User</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>THXL7L@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-THXL7L</pentabarf:event-slug>
            <pentabarf:title>Clean Architectures in Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T120000</dtstart>
            <dtend>20190914T123000</dtend>
            <duration>003000</duration>
            <summary>Clean Architectures in Python</summary>
            <description>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 &#8220;clean architecture&#8221; 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 &#8220;Clean Architectures in Python&#8221; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/THXL7L/</url>
            <location>Assembly Room</location>
            
            <attendee>Leonardo Giordani</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>UV33DC@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-UV33DC</pentabarf:event-slug>
            <pentabarf:title>Code Styles Aren&#8217;t Black and White</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T123000</dtstart>
            <dtend>20190914T130000</dtend>
            <duration>003000</duration>
            <summary>Code Styles Aren&#8217;t Black and White</summary>
            <description>Code styles are important to us. So important that we&#8217;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&#8217;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&#8217;d like to discuss what code styles are and why they&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/UV33DC/</url>
            <location>Assembly Room</location>
            
            <attendee>Mika Naylor</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>CYBVCZ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-CYBVCZ</pentabarf:event-slug>
            <pentabarf:title>Data Scientist Career Path: How to find your way through the data science maze</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T143000</dtstart>
            <dtend>20190914T150000</dtend>
            <duration>003000</duration>
            <summary>Data Scientist Career Path: How to find your way through the data science maze</summary>
            <description>Organisations and individuals are &#8220;always on&#8221;, 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&#8217;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 &#8211; &#8216;What I wish I&#8217;d known about data science&#8217;, We will share our insights and most valuable lessons learned on breaking into the field of data science and launching a career.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/CYBVCZ/</url>
            <location>Assembly Room</location>
            
            <attendee>Solveiga Vivian-Griffiths</attendee>
            
            <attendee>Natalie Jakomis</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>FP3GN8@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-FP3GN8</pentabarf:event-slug>
            <pentabarf:title>The Fastest Way to Learn Data Science</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T150000</dtstart>
            <dtend>20190914T153000</dtend>
            <duration>003000</duration>
            <summary>The Fastest Way to Learn Data Science</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/FP3GN8/</url>
            <location>Assembly Room</location>
            
            <attendee>Rebecca Vickery</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>XFGGN7@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-XFGGN7</pentabarf:event-slug>
            <pentabarf:title>Lies, Damned Lies, and Statistics</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T153000</dtstart>
            <dtend>20190914T160000</dtend>
            <duration>003000</duration>
            <summary>Lies, Damned Lies, and Statistics</summary>
            <description>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&#8217;s Paradox 
- Sampling bias and polluted surveys 
- Data visualisation gone wild 
- Statistical significance (and Data dredging a.k.a. p-hacking)</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/XFGGN7/</url>
            <location>Assembly Room</location>
            
            <attendee>Marco Bonzanini</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>DQ3SQX@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-DQ3SQX</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Show and Tell</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T163000</dtstart>
            <dtend>20190914T170000</dtend>
            <duration>003000</duration>
            <summary>**Young Coders** Show and Tell</summary>
            <description>Children&apos;s Day Show and Tell</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/DQ3SQX/</url>
            <location>Assembly Room</location>
            
            <attendee>Ben Nuttall</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>XXTKMY@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-XXTKMY</pentabarf:event-slug>
            <pentabarf:title>UKPA AGM</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T170000</dtstart>
            <dtend>20190914T173000</dtend>
            <duration>003000</duration>
            <summary>UKPA AGM</summary>
            <description>Annual General Meeting of  the UK Python Association</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/XXTKMY/</url>
            <location>Assembly Room</location>
            
            <attendee>Owen Campbell</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>BLJDUS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-BLJDUS</pentabarf:event-slug>
            <pentabarf:title>Lightning talks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T173000</dtstart>
            <dtend>20190914T183000</dtend>
            <duration>010000</duration>
            <summary>Lightning talks</summary>
            <description>Short talks</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/BLJDUS/</url>
            <location>Assembly Room</location>
            
            <attendee>Mark Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GQV8WF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GQV8WF</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Will it rain in Cardiff this weekend?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T093000</dtstart>
            <dtend>20190914T101500</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Will it rain in Cardiff this weekend?</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GQV8WF/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Spencer Organ</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8MY7VN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8MY7VN</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Mission to Mars Rover Microbit Radio Control</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T101500</dtstart>
            <dtend>20190914T110000</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Mission to Mars Rover Microbit Radio Control</summary>
            <description>This workshop utilises rovers used in Software Cornwall&apos;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&apos;t completed.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8MY7VN/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Robert Wiltshire</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HTHFFU@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HTHFFU</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Geometries &amp; Python Turtle</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T113000</dtstart>
            <dtend>20190914T121500</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Geometries &amp; Python Turtle</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HTHFFU/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Aaron Balan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GTG7ZV@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GTG7ZV</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Astro Pi Mission Zero</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T121500</dtstart>
            <dtend>20190914T130000</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Astro Pi Mission Zero</summary>
            <description>Write a program for the Raspberry Pi Sense HAT and send it to space as part of the Astro Pi Mission Zero challenge</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GTG7ZV/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Ben Nuttall</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>83RZK8@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-83RZK8</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Gettin&apos; GUI with it</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T140000</dtstart>
            <dtend>20190914T150000</dtend>
            <duration>010000</duration>
            <summary>**Young Coders** Gettin&apos; GUI with it</summary>
            <description>Creating graphical user interfaces (GUI) with Python. Connect up LEDs and Buttons to your GUI and make it control your world.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/83RZK8/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Martin O&apos;Hanlon</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>9RJLBP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-9RJLBP</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Make stuff with junk</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T150000</dtstart>
            <dtend>20190914T153000</dtend>
            <duration>003000</duration>
            <summary>**Young Coders** Make stuff with junk</summary>
            <description>Take what you learned and use it to build a project out of electronics, arts and craft</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/9RJLBP/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Laura Sach</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JKUELM@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JKUELM</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Presentation prep</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T153000</dtstart>
            <dtend>20190914T163000</dtend>
            <duration>010000</duration>
            <summary>**Young Coders** Presentation prep</summary>
            <description>Get ready to present your project on the main stage</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JKUELM/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Laura Sach</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>APBVXQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-APBVXQ</pentabarf:event-slug>
            <pentabarf:title>A tour of data viz in Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T131500</dtstart>
            <dtend>20190914T133000</dtend>
            <duration>001500</duration>
            <summary>A tour of data viz in Python</summary>
            <description>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&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Poster</category>
            <url>https://pretalx.com/pyconuk-2019/talk/APBVXQ/</url>
            <location>Marble Hall</location>
            
            <attendee>&#201;l&#233;onore Mayola</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>BZGLBP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-BZGLBP</pentabarf:event-slug>
            <pentabarf:title>NeXus Constructor: Visualising the Configurations of Neutron Experiments with Qt for Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T133000</dtstart>
            <dtend>20190914T134500</dtend>
            <duration>001500</duration>
            <summary>NeXus Constructor: Visualising the Configurations of Neutron Experiments with Qt for Python</summary>
            <description>[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&#8217;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&apos;s high level tools we are able to transform components in the 3D view and update them in real-time.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Poster</category>
            <url>https://pretalx.com/pyconuk-2019/talk/BZGLBP/</url>
            <location>Marble Hall</location>
            
            <attendee>Jack Harper</attendee>
            
            <attendee>Dolica Akello-Egwel</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>G8FU93@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-G8FU93</pentabarf:event-slug>
            <pentabarf:title>Active Learning with Bayesian Nonnegative Matrix Factorization for Recommender Systems</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T134500</dtstart>
            <dtend>20190914T140000</dtend>
            <duration>001500</duration>
            <summary>Active Learning with Bayesian Nonnegative Matrix Factorization for Recommender Systems</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Poster</category>
            <url>https://pretalx.com/pyconuk-2019/talk/G8FU93/</url>
            <location>Marble Hall</location>
            
            <attendee>G&#246;n&#252;l Ayc&#305;</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TVYVSN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TVYVSN</pentabarf:event-slug>
            <pentabarf:title>Django Girls Workshop</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T093000</dtstart>
            <dtend>20190914T160000</dtend>
            <duration>063000</duration>
            <summary>Django Girls Workshop</summary>
            <description>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&#8217;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&#8217;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&#8217;ll be able to do it at your own pace. If you&#8217;d like to join us, please apply below.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TVYVSN/</url>
            <location>Lower Hall</location>
            
            <attendee>Ann Barr</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>P7KB7D@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-P7KB7D</pentabarf:event-slug>
            <pentabarf:title>Conference Dinner</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T193000</dtstart>
            <dtend>20190914T220000</dtend>
            <duration>023000</duration>
            <summary>Conference Dinner</summary>
            <description>**Menu**
Mostly Lavender Ice Cream</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/P7KB7D/</url>
            <location>Lower Hall</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GFJSPF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GFJSPF</pentabarf:event-slug>
            <pentabarf:title>Get to grips with pandas and scikit-learn</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T103000</dtstart>
            <dtend>20190914T120000</dtend>
            <duration>013000</duration>
            <summary>Get to grips with pandas and scikit-learn</summary>
            <description>We hear a lot about Machine Learning, but it&#8217;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!***
&lt;br/&gt;Pandas is a popular tool that will allow us to efficiently conduct Exploratory Data Analysis. After loading the data set we&#8217;ll use in this workshop, we&#8217;ll have a first look at it with Pandas and start cleaning it. We&#8217;ll also use visualisation to gain more insights and continue to prepare our data.

**Part two:** ***Where the Ma(th)gic happen.***
&lt;br/&gt;In this part, we&#8217;ll introduce the powerful scikit-learn library. We&apos;ll split the data into training and testing sets and start pre-processing. Then we&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GFJSPF/</url>
            <location>Room A</location>
            
            <attendee>Sandrine Pataut</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>ZCP9L3@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-ZCP9L3</pentabarf:event-slug>
            <pentabarf:title>Implementing a simple API using Django REST Framework</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T103000</dtstart>
            <dtend>20190914T120000</dtend>
            <duration>013000</duration>
            <summary>Implementing a simple API using Django REST Framework</summary>
            <description>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&apos;s OK if that&apos;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/</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/ZCP9L3/</url>
            <location>Room B</location>
            
            <attendee>Miles Cook</attendee>
            
            <attendee>Devang Mehta</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>YSHHNQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-YSHHNQ</pentabarf:event-slug>
            <pentabarf:title>Let&apos;s make a talk</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T103000</dtstart>
            <dtend>20190914T120000</dtend>
            <duration>013000</duration>
            <summary>Let&apos;s make a talk</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/YSHHNQ/</url>
            <location>Room C</location>
            
            <attendee>Gail Ollis</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>AVNA8S@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-AVNA8S</pentabarf:event-slug>
            <pentabarf:title>Unleashing Python from the Computer Science Curriculum</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T103000</dtstart>
            <dtend>20190914T110000</dtend>
            <duration>003000</duration>
            <summary>Unleashing Python from the Computer Science Curriculum</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/AVNA8S/</url>
            <location>Room D</location>
            
            <attendee>Spencer Organ</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TYLR3C@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TYLR3C</pentabarf:event-slug>
            <pentabarf:title>One weird trick for improving your communication</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T113000</dtstart>
            <dtend>20190914T120000</dtend>
            <duration>003000</duration>
            <summary>One weird trick for improving your communication</summary>
            <description>&quot;Before you think about what you&apos;re going to say or write, think about what you want the people listening or reading to do as a result.&quot; This sounds obvious, but I&apos;ve found that keeping it in mind can make a big difference to how well I communicate in a technical or business setting.

I&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TYLR3C/</url>
            <location>Room D</location>
            
            <attendee>David Sim</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GMXKPX@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GMXKPX</pentabarf:event-slug>
            <pentabarf:title>Extracting tabular data from PDFs with Camelot &amp; Excalibur</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T120000</dtstart>
            <dtend>20190914T123000</dtend>
            <duration>003000</duration>
            <summary>Extracting tabular data from PDFs with Camelot &amp; Excalibur</summary>
            <description>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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GMXKPX/</url>
            <location>Room D</location>
            
            <attendee>Vinayak Mehta</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JDAAJF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JDAAJF</pentabarf:event-slug>
            <pentabarf:title>Rapid prototyping scalable Python services using AWS Chalice</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T123000</dtstart>
            <dtend>20190914T130000</dtend>
            <duration>003000</duration>
            <summary>Rapid prototyping scalable Python services using AWS Chalice</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JDAAJF/</url>
            <location>Room D</location>
            
            <attendee>Mashhood Rastgar</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TKXRBD@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TKXRBD</pentabarf:event-slug>
            <pentabarf:title>Dev On Wheels: The Ultimate Computer Game</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T143000</dtstart>
            <dtend>20190914T150000</dtend>
            <duration>003000</duration>
            <summary>Dev On Wheels: The Ultimate Computer Game</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TKXRBD/</url>
            <location>Room D</location>
            
            <attendee>Tom Easterbrook</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QKHKHF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QKHKHF</pentabarf:event-slug>
            <pentabarf:title>Writing Beautiful Python. An overview of PEP 8</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T150000</dtstart>
            <dtend>20190914T153000</dtend>
            <duration>003000</duration>
            <summary>Writing Beautiful Python. An overview of PEP 8</summary>
            <description>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 &apos;tour&apos; 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 &apos;rules&apos;. Luckily for you, you don&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QKHKHF/</url>
            <location>Room D</location>
            
            <attendee>Luke Spademan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>7PVCMM@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-7PVCMM</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Anagrams &amp; Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T093000</dtstart>
            <dtend>20190914T101500</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Anagrams &amp; Python</summary>
            <description>In this workshop we will be making anagrams and playing with our friends as a game.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/7PVCMM/</url>
            <location>Room I</location>
            
            <attendee>Avni Balan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SVMLU9@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SVMLU9</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Cracking Codes with Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T113000</dtstart>
            <dtend>20190914T121500</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Cracking Codes with Python</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SVMLU9/</url>
            <location>Room I</location>
            
            <attendee>Luke Spademan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>TEXVBX@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-TEXVBX</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Mutating Monsters</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T121500</dtstart>
            <dtend>20190914T130000</dtend>
            <duration>004500</duration>
            <summary>**Young Coders** Mutating Monsters</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/TEXVBX/</url>
            <location>Room I</location>
            
            <attendee>Patrick Barry</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>L7DUNN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-L7DUNN</pentabarf:event-slug>
            <pentabarf:title>**Young Coders** Hackathon &amp; presentation prep</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T140000</dtstart>
            <dtend>20190914T163000</dtend>
            <duration>023000</duration>
            <summary>**Young Coders** Hackathon &amp; presentation prep</summary>
            <description>Take what you&apos;ve learned and use it to build a project for the presentations on the main track</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/L7DUNN/</url>
            <location>Room I</location>
            
            <attendee>Ben Nuttall</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>F8HXLK@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-F8HXLK</pentabarf:event-slug>
            <pentabarf:title>TDD in Python with pytest</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190914T143000</dtstart>
            <dtend>20190914T160000</dtend>
            <duration>013000</duration>
            <summary>TDD in Python with pytest</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/F8HXLK/</url>
            <location>Room L</location>
            
            <attendee>Leonardo Giordani</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JDPPNG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JDPPNG</pentabarf:event-slug>
            <pentabarf:title>Introduction</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T090000</dtstart>
            <dtend>20190915T093000</dtend>
            <duration>003000</duration>
            <summary>Introduction</summary>
            <description>Sunday Introduction</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JDPPNG/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>NUSLBQ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-NUSLBQ</pentabarf:event-slug>
            <pentabarf:title>Do we have a diversity problem in Python community?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T093000</dtstart>
            <dtend>20190915T103000</dtend>
            <duration>010000</duration>
            <summary>Do we have a diversity problem in Python community?</summary>
            <description>The diversity statement quoted as follows: &#8220;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.&#8221;

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/</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/NUSLBQ/</url>
            <location>Assembly Room</location>
            
            <attendee>Cheuk Ting Ho</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HDW7HZ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HDW7HZ</pentabarf:event-slug>
            <pentabarf:title>Choosing the right Deep Learning Framework: A Deep Learning Approach</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T110000</dtend>
            <duration>003000</duration>
            <summary>Choosing the right Deep Learning Framework: A Deep Learning Approach</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HDW7HZ/</url>
            <location>Assembly Room</location>
            
            <attendee>Nick Acosta</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QTEQF3@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QTEQF3</pentabarf:event-slug>
            <pentabarf:title>Don&apos;t Cross The Streams: An Introduction to Virtual Environments</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T113000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>003000</duration>
            <summary>Don&apos;t Cross The Streams: An Introduction to Virtual Environments</summary>
            <description>What are virtual environments? How can they help us when developing in Python? In this session we&apos;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&apos;t used a virtual environment before or those who want to learn  about how they work.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QTEQF3/</url>
            <location>Assembly Room</location>
            
            <attendee>Hannah Hazi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>Z8DH3F@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-Z8DH3F</pentabarf:event-slug>
            <pentabarf:title>What does PEP 517 mean for packaging?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T120000</dtstart>
            <dtend>20190915T123000</dtend>
            <duration>003000</duration>
            <summary>What does PEP 517 mean for packaging?</summary>
            <description>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&apos;t exactly made
for bedtime reading. So in this talk, I&apos;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&apos;ve written a PEP 517 backend and a
library for frontends, so I&apos;ve seen the gory details.

I&apos;ll set the context of what there was before PEP 517, and why
people wanted something better. Then I&apos;ll describe how the PEP
came about, and how it envisages different tools working together.

I&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/Z8DH3F/</url>
            <location>Assembly Room</location>
            
            <attendee>Thomas Kluyver</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WGMV7M@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WGMV7M</pentabarf:event-slug>
            <pentabarf:title>Machine Learning on the Edge</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T123000</dtstart>
            <dtend>20190915T130000</dtend>
            <duration>003000</duration>
            <summary>Machine Learning on the Edge</summary>
            <description>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 &quot;small factor&quot; computing experience, I&apos;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&apos;ll conclude with a summary on this type of &quot;edge machine learning&quot; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WGMV7M/</url>
            <location>Assembly Room</location>
            
            <attendee>Frank Kelly</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>W9VFE3@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-W9VFE3</pentabarf:event-slug>
            <pentabarf:title>Research Software Engineers: Who, What, Why and a Django API</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T143000</dtstart>
            <dtend>20190915T150000</dtend>
            <duration>003000</duration>
            <summary>Research Software Engineers: Who, What, Why and a Django API</summary>
            <description>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&#8217;ll briefly describe the up-downs and roundabouts that this career choice has led me on. I&#8217;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&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/W9VFE3/</url>
            <location>Assembly Room</location>
            
            <attendee>Teri Forey</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8QLRDA@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8QLRDA</pentabarf:event-slug>
            <pentabarf:title>Automated report writing using data from a relational database</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T150000</dtstart>
            <dtend>20190915T153000</dtend>
            <duration>003000</duration>
            <summary>Automated report writing using data from a relational database</summary>
            <description>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 &apos;query&apos; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8QLRDA/</url>
            <location>Assembly Room</location>
            
            <attendee>Dani Papamaximou</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8MASEP@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8MASEP</pentabarf:event-slug>
            <pentabarf:title>Is Django too Complicated?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T153000</dtstart>
            <dtend>20190915T160000</dtend>
            <duration>003000</duration>
            <summary>Is Django too Complicated?</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8MASEP/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniel Hepper</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>ZHSZYB@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-ZHSZYB</pentabarf:event-slug>
            <pentabarf:title>So you want to be a manager</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T163000</dtstart>
            <dtend>20190915T170000</dtend>
            <duration>003000</duration>
            <summary>So you want to be a manager</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/ZHSZYB/</url>
            <location>Assembly Room</location>
            
            <attendee>Gil Goncalves</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>L3HSWT@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-L3HSWT</pentabarf:event-slug>
            <pentabarf:title>What do travel, food &amp; health websites have in common? Auditing websites &amp; apps for privacy leaks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T170000</dtstart>
            <dtend>20190915T173000</dtend>
            <duration>003000</duration>
            <summary>What do travel, food &amp; health websites have in common? Auditing websites &amp; apps for privacy leaks</summary>
            <description>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&apos; 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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/L3HSWT/</url>
            <location>Assembly Room</location>
            
            <attendee>Konark Modi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>VBHLRB@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-VBHLRB</pentabarf:event-slug>
            <pentabarf:title>Lightning talks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T173000</dtstart>
            <dtend>20190915T183000</dtend>
            <duration>010000</duration>
            <summary>Lightning talks</summary>
            <description>Short talks</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/VBHLRB/</url>
            <location>Assembly Room</location>
            
            <attendee>Mark Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>PDQSZS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-PDQSZS</pentabarf:event-slug>
            <pentabarf:title>Writing micro-services in Python... Sure! But which framework?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T110000</dtend>
            <duration>003000</duration>
            <summary>Writing micro-services in Python... Sure! But which framework?</summary>
            <description>This talk was inspired by Aaron Bassett&apos;s EuroPython 2018 talk &quot;Hello to the World in 8 Web Frameworks micro, batteries included &amp; async&quot;. It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to &quot;real&quot; 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 &quot;choose framework Z&quot;</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/PDQSZS/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Emma Delescolle</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>FG97WN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-FG97WN</pentabarf:event-slug>
            <pentabarf:title>Mutability for good not evil</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T113000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>003000</duration>
            <summary>Mutability for good not evil</summary>
            <description>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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/FG97WN/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Nick Sarbicki</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SH39DW@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SH39DW</pentabarf:event-slug>
            <pentabarf:title>Stranger things in Twitterverse</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T120000</dtstart>
            <dtend>20190915T123000</dtend>
            <duration>003000</duration>
            <summary>Stranger things in Twitterverse</summary>
            <description>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&#8217; 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&#8217; authenticity.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SH39DW/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Konark Modi</attendee>
            
            <attendee>Pallavi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>ZHKDSD@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-ZHKDSD</pentabarf:event-slug>
            <pentabarf:title>I am telling you 3 things about Chatbot (so you don&apos;t have to learn it the hard way)</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T123000</dtstart>
            <dtend>20190915T130000</dtend>
            <duration>003000</duration>
            <summary>I am telling you 3 things about Chatbot (so you don&apos;t have to learn it the hard way)</summary>
            <description>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&#8217;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 &#8220;intelligent&#8221; 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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/ZHKDSD/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Cheuk Ting Ho</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QXFDWJ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QXFDWJ</pentabarf:event-slug>
            <pentabarf:title>Blue Dot - its a bluetooth dot</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T143000</dtstart>
            <dtend>20190915T150000</dtend>
            <duration>003000</duration>
            <summary>Blue Dot - its a bluetooth dot</summary>
            <description>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&apos;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</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QXFDWJ/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Martin O&apos;Hanlon</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>F9KAQM@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-F9KAQM</pentabarf:event-slug>
            <pentabarf:title>Import as an antipattern - Demystifying Dependency Injection in modern Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T150000</dtstart>
            <dtend>20190915T153000</dtend>
            <duration>003000</duration>
            <summary>Import as an antipattern - Demystifying Dependency Injection in modern Python</summary>
            <description>Dependency Injection (DI) is a technique quite common in other programming languages that has never quite fitted into the Python programmer&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/F9KAQM/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Yeray D&#237;az D&#237;az</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>G93RFU@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-G93RFU</pentabarf:event-slug>
            <pentabarf:title>Here&apos;s Your Mistake...</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T153000</dtstart>
            <dtend>20190915T160000</dtend>
            <duration>003000</duration>
            <summary>Here&apos;s Your Mistake...</summary>
            <description>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&apos;t figure out.  Perhaps surprisingly, these hard concepts also include basic syntax.  And in contrast to Python&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/G93RFU/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Tobias Kohn</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JSHZBX@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JSHZBX</pentabarf:event-slug>
            <pentabarf:title>A Tour of Matplotlib: From Bar Charts to XKCD-Style Plots</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T163000</dtstart>
            <dtend>20190915T170000</dtend>
            <duration>003000</duration>
            <summary>A Tour of Matplotlib: From Bar Charts to XKCD-Style Plots</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JSHZBX/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Susam Pal</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>MRPCLS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-MRPCLS</pentabarf:event-slug>
            <pentabarf:title>FastAPI from the ground up</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T170000</dtstart>
            <dtend>20190915T173000</dtend>
            <duration>003000</duration>
            <summary>FastAPI from the ground up</summary>
            <description>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&apos;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&apos;t required.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/MRPCLS/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Chris Withers</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QKCCGF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QKCCGF</pentabarf:event-slug>
            <pentabarf:title>Jobs Fair</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T130000</dtstart>
            <dtend>20190915T143000</dtend>
            <duration>013000</duration>
            <summary>Jobs Fair</summary>
            <description>Jobs Fair</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QKCCGF/</url>
            <location>Marble Hall</location>
            
            <attendee>Owen Campbell</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>ZRTNDG@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-ZRTNDG</pentabarf:event-slug>
            <pentabarf:title>Code Dojo</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T193000</dtstart>
            <dtend>20190915T220000</dtend>
            <duration>023000</duration>
            <summary>Code Dojo</summary>
            <description>It&apos;s a very welcoming format where a coding challenge is set and everyone takes part as one of a team. It&apos;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&apos;ll describe the evening&apos;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&apos;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&apos;t.
    * We go home happy</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/ZRTNDG/</url>
            <location>Lower Hall</location>
            
            <attendee>Tom Viner</attendee>
            
            <attendee>Daniel Pope</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JNDWKS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JNDWKS</pentabarf:event-slug>
            <pentabarf:title>Python on Hardware Community Showcase (Open Session)</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>013000</duration>
            <summary>Python on Hardware Community Showcase (Open Session)</summary>
            <description>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&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JNDWKS/</url>
            <location>Room A</location>
            
            <attendee>Carlos Pereira Atencio</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>KA3UM9@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-KA3UM9</pentabarf:event-slug>
            <pentabarf:title>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</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>013000</duration>
            <summary>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</summary>
            <description>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&apos;ll cover programming topics, such as [how to use Django&apos;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&apos;t inadvertently constrain it to a single deployment environment. We&apos;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&apos;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&apos;ll learn are transferable; they&apos;ll expand your repertoire and become valuable components in your developer&apos;s toolbox.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/KA3UM9/</url>
            <location>Room B</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>VPHQ8A@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-VPHQ8A</pentabarf:event-slug>
            <pentabarf:title>Automating web applications with Selenium WebDriver</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>013000</duration>
            <summary>Automating web applications with Selenium WebDriver</summary>
            <description>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</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/VPHQ8A/</url>
            <location>Room C</location>
            
            <attendee>Colin Bell</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SPY8JN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SPY8JN</pentabarf:event-slug>
            <pentabarf:title>Benefits of competition based libraries for beginners in Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T113000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>003000</duration>
            <summary>Benefits of competition based libraries for beginners in Python</summary>
            <description>As in many fields, first impressions matter in programming too. A student&apos;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&#8217;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&#8217; feedback, we saw that the presence of the library had facilitated their learning.

In this session, we will try to tackle questions such as &#8220;Do libraries really benefit beginners while learning Python?&#8221;, &#8220;Is a competition based approach a good motivator for inexperienced programmers?&#8221;, and &#8220;What should a developer keep in mind while creating a library for beginners?&#8221;. 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/</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SPY8JN/</url>
            <location>Room D</location>
            
            <attendee>Sedat yalcin</attendee>
            
            <attendee>Can Ersoz</attendee>
            
            <attendee>Ya&#351;ar &#304;dikut</attendee>
            
            <attendee>Yoel Kastro</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>FFGRAF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-FFGRAF</pentabarf:event-slug>
            <pentabarf:title>Dash: Interactive Data Visualization Web Apps with no Javascript</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T120000</dtstart>
            <dtend>20190915T123000</dtend>
            <duration>003000</duration>
            <summary>Dash: Interactive Data Visualization Web Apps with no Javascript</summary>
            <description>Your data science or machine learning project probably won&apos;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&apos;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&apos;ve embraced Dash to produce proof-of-concept models for our projects in alpha. Although we&apos;re not officially connected to the plotly/Dash project, by using the library daily across many projects, we&apos;ve learned many lessons and what we feel are best practises we&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/FFGRAF/</url>
            <location>Room D</location>
            
            <attendee>Dom Weldon</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SMSLJT@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SMSLJT</pentabarf:event-slug>
            <pentabarf:title>Dictionaries, behind the scenes</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T123000</dtstart>
            <dtend>20190915T130000</dtend>
            <duration>003000</duration>
            <summary>Dictionaries, behind the scenes</summary>
            <description>You have been working with Python dictionaries for a while and you feel comfortable using them, now you&#8217;re interested in taking the next step. With this talk you&#8217;ll get a look at how dictionaries work on the inside, things ranging from performance to security, and some surprises. You&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SMSLJT/</url>
            <location>Room D</location>
            
            <attendee>Gisela Rossi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GLQJCB@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GLQJCB</pentabarf:event-slug>
            <pentabarf:title>Mock Object Library: Common Pitfalls and Best Practices</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T143000</dtstart>
            <dtend>20190915T150000</dtend>
            <duration>003000</duration>
            <summary>Mock Object Library: Common Pitfalls and Best Practices</summary>
            <description>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&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GLQJCB/</url>
            <location>Room D</location>
            
            <attendee>Sunaina Pai</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>UY9EFF@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-UY9EFF</pentabarf:event-slug>
            <pentabarf:title>Using Pomelo to Enhance Algorithmic Thinking</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T150000</dtstart>
            <dtend>20190915T153000</dtend>
            <duration>003000</duration>
            <summary>Using Pomelo to Enhance Algorithmic Thinking</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/UY9EFF/</url>
            <location>Room D</location>
            
            <attendee>Yoel Nasi</attendee>
            
            <attendee>Sedat yalcin</attendee>
            
            <attendee>Can Aydin</attendee>
            
            <attendee>batuhan bayraktar</attendee>
            
            <attendee>Rana Taki</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>NLMNPY@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-NLMNPY</pentabarf:event-slug>
            <pentabarf:title>Writing micro-services in Python... Sure! But which framework?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T113000</dtstart>
            <dtend>20190915T130000</dtend>
            <duration>013000</duration>
            <summary>Writing micro-services in Python... Sure! But which framework?</summary>
            <description>This workshop was inspired by Aaron Bassett&apos;s EuroPython 2018 talk &quot;Hello to the World in 8 Web Frameworks micro, batteries included &amp; async&quot;. It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to &quot;real&quot; 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 &quot;choose framework Z&quot;</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/NLMNPY/</url>
            <location>Room I</location>
            
            <attendee>Emma Delescolle</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>MVGWY7@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-MVGWY7</pentabarf:event-slug>
            <pentabarf:title>Plug &amp; train: flexible customisation and extension of python&apos;s deep learning frameworks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T143000</dtstart>
            <dtend>20190915T160000</dtend>
            <duration>013000</duration>
            <summary>Plug &amp; train: flexible customisation and extension of python&apos;s deep learning frameworks</summary>
            <description>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&apos;s flexibility.
When subclassing neural networks, users are able to define hooks that alter
either what the model does with the data (the &quot;forward pass&quot;), or how it changes
in response to feedback during training (the &quot;backward pass&quot;).

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&apos;s overloading functionality, we&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/MVGWY7/</url>
            <location>Room J</location>
            
            <attendee>Jan Freyberg</attendee>
            
            <attendee>Isobel Weinberg</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>JCVVUM@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-JCVVUM</pentabarf:event-slug>
            <pentabarf:title>What are they talking about? Mining topics in documents with topic modelling and Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190915T103000</dtstart>
            <dtend>20190915T120000</dtend>
            <duration>013000</duration>
            <summary>What are they talking about? Mining topics in documents with topic modelling and Python</summary>
            <description>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&apos;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&apos;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&apos;re planning to attend the tutorial, please download the material beforehand: https://github.com/bonzanini/topic-modelling</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/JCVVUM/</url>
            <location>Room K</location>
            
            <attendee>Marco Bonzanini</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>G8M38E@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-G8M38E</pentabarf:event-slug>
            <pentabarf:title>Introduction</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T090000</dtstart>
            <dtend>20190916T093000</dtend>
            <duration>003000</duration>
            <summary>Introduction</summary>
            <description>Monday Introduction</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/G8M38E/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WBE8WB@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WBE8WB</pentabarf:event-slug>
            <pentabarf:title>while history: continue</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T093000</dtstart>
            <dtend>20190916T103000</dtend>
            <duration>010000</duration>
            <summary>while history: continue</summary>
            <description>Amidst a software industry reinventing everything from first principles, let&apos;s see if we can&apos;t actually learn a bit from ancient history. Featuring, in no particular order, the BDFL of the Catholic church, pneumatic tubes, C&#230;sar&apos;s legacy, right- and left side traffic, hostile acquisitions, high-frequency trading, and of course Python 2.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WBE8WB/</url>
            <location>Assembly Room</location>
            
            <attendee>Tobias Kunze</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>8XCQTW@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-8XCQTW</pentabarf:event-slug>
            <pentabarf:title>The Fallacy of Meritocracy</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T103000</dtstart>
            <dtend>20190916T110000</dtend>
            <duration>003000</duration>
            <summary>The Fallacy of Meritocracy</summary>
            <description>The Fallacy of Meritocracy</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/8XCQTW/</url>
            <location>Assembly Room</location>
            
            <attendee>Nikoleta Glynatsi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HERDDR@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HERDDR</pentabarf:event-slug>
            <pentabarf:title>The world&apos;s cheapest, simplest plotter</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T113000</dtstart>
            <dtend>20190916T120000</dtend>
            <duration>003000</duration>
            <summary>The world&apos;s cheapest, simplest plotter</summary>
            <description>I present an ultra-cheap (total cost of materials: &#8364;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&apos;s most inconvenient camera: take a photo using the Raspberry Pi&apos;s camera, convert it into lines, and draw it.

This is fun, but it&apos;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&apos;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&apos;t just for people with well-equipped workshops and the engineering skills to use them.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HERDDR/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>ANWJGD@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-ANWJGD</pentabarf:event-slug>
            <pentabarf:title>An Introduction to Hardware Drivers in (Micro)Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T120000</dtstart>
            <dtend>20190916T123000</dtend>
            <duration>003000</duration>
            <summary>An Introduction to Hardware Drivers in (Micro)Python</summary>
            <description>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&#8217;s never been easier to adventure in the embedded space, and using a familiar language is a great advantage. It&#8217;s incredible that we can simply &#8220;upip install&#8221; a module to control our brand new sensor, display, controller, etc; but how does it work? Or what do we do if there isn&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/ANWJGD/</url>
            <location>Assembly Room</location>
            
            <attendee>Carlos Pereira Atencio</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SJLVMS@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SJLVMS</pentabarf:event-slug>
            <pentabarf:title>Real-time data acquisition, from Arduino to the web, using PubSub with Redis, Django and other friends</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T123000</dtstart>
            <dtend>20190916T130000</dtend>
            <duration>003000</duration>
            <summary>Real-time data acquisition, from Arduino to the web, using PubSub with Redis, Django and other friends</summary>
            <description>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&#8217;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SJLVMS/</url>
            <location>Assembly Room</location>
            
            <attendee>Mario Orlandi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>QBPBDR@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-QBPBDR</pentabarf:event-slug>
            <pentabarf:title>Automated Timeseries Analysis with Gaussian Processes</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T143000</dtstart>
            <dtend>20190916T150000</dtend>
            <duration>003000</duration>
            <summary>Automated Timeseries Analysis with Gaussian Processes</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/QBPBDR/</url>
            <location>Assembly Room</location>
            
            <attendee>Joe Hall</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>PYHRRW@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-PYHRRW</pentabarf:event-slug>
            <pentabarf:title>How to use Python to expose politicians?</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T150000</dtstart>
            <dtend>20190916T153000</dtend>
            <duration>003000</duration>
            <summary>How to use Python to expose politicians?</summary>
            <description>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&#8217;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/PYHRRW/</url>
            <location>Assembly Room</location>
            
            <attendee>Rafael Garcia-Dias</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>SAZB3V@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-SAZB3V</pentabarf:event-slug>
            <pentabarf:title>Python in the browser</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T153000</dtstart>
            <dtend>20190916T160000</dtend>
            <duration>003000</duration>
            <summary>Python in the browser</summary>
            <description>I&apos;ve never quite got on with JavaScript, but it&apos;s the only choice for writing dynamic web pages, isn&apos;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&apos;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&apos;re seeing a move to a web where developers can take more control over how they build things.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/SAZB3V/</url>
            <location>Assembly Room</location>
            
            <attendee>Shaun Taylor-Morgan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>VREQRJ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-VREQRJ</pentabarf:event-slug>
            <pentabarf:title>Typed attrs dataclasses with cattrs converters for JSON REST microservices.</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T163000</dtstart>
            <dtend>20190916T170000</dtend>
            <duration>003000</duration>
            <summary>Typed attrs dataclasses with cattrs converters for JSON REST microservices.</summary>
            <description>REST microservices commonly use JSON as inputs and outputs. It&apos;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&apos;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&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/VREQRJ/</url>
            <location>Assembly Room</location>
            
            <attendee>Damian Swistowski</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>VCP83L@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-VCP83L</pentabarf:event-slug>
            <pentabarf:title>Lightning talks</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T170000</dtstart>
            <dtend>20190916T183000</dtend>
            <duration>013000</duration>
            <summary>Lightning talks</summary>
            <description>Short talks.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/VCP83L/</url>
            <location>Assembly Room</location>
            
            <attendee>Mark Smith</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>7LTYFU@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-7LTYFU</pentabarf:event-slug>
            <pentabarf:title>Battles with reproducibility and collaboration in large organisations</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T103000</dtstart>
            <dtend>20190916T110000</dtend>
            <duration>003000</duration>
            <summary>Battles with reproducibility and collaboration in large organisations</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/7LTYFU/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Richard Louden</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>FL9SUA@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-FL9SUA</pentabarf:event-slug>
            <pentabarf:title>Charming the Snake - Writing Secure Python Code</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T113000</dtstart>
            <dtend>20190916T120000</dtend>
            <duration>003000</duration>
            <summary>Charming the Snake - Writing Secure Python Code</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/FL9SUA/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Kashish</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>FPW89T@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-FPW89T</pentabarf:event-slug>
            <pentabarf:title>Massively Multiplayer Online Games with Python</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T120000</dtstart>
            <dtend>20190916T123000</dtend>
            <duration>003000</duration>
            <summary>Massively Multiplayer Online Games with Python</summary>
            <description>Usually Python isn&apos;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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/FPW89T/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Dmitry Karpov</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>NXZGG9@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-NXZGG9</pentabarf:event-slug>
            <pentabarf:title>Concurrent asyncio and sanity</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T143000</dtstart>
            <dtend>20190916T150000</dtend>
            <duration>003000</duration>
            <summary>Concurrent asyncio and sanity</summary>
            <description>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&apos;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</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/NXZGG9/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Martijn Pieters</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GCLBFH@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GCLBFH</pentabarf:event-slug>
            <pentabarf:title>Managing Big Data in Machine Learning projects</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T150000</dtstart>
            <dtend>20190916T153000</dtend>
            <duration>003000</duration>
            <summary>Managing Big Data in Machine Learning projects</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GCLBFH/</url>
            <location>Ferrier Hall</location>
            
            <attendee>V Vishnu Anirudh</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WK9PH7@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WK9PH7</pentabarf:event-slug>
            <pentabarf:title>Adversarial Robustness Toolbox: How to attack and defend your machine learning models</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T153000</dtstart>
            <dtend>20190916T160000</dtend>
            <duration>003000</duration>
            <summary>Adversarial Robustness Toolbox: How to attack and defend your machine learning models</summary>
            <description>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&#8217;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&#8217;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&#8217;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</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WK9PH7/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Beat Buesser</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>WYXAJU@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-WYXAJU</pentabarf:event-slug>
            <pentabarf:title>Hangar; git for your data</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T163000</dtstart>
            <dtend>20190916T170000</dtend>
            <duration>003000</duration>
            <summary>Hangar; git for your data</summary>
            <description>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 &#8220;Data-Defined software&#8221; 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!</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/WYXAJU/</url>
            <location>Ferrier Hall</location>
            
            <attendee>Richard Izzo</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>Z9VU8Z@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-Z9VU8Z</pentabarf:event-slug>
            <pentabarf:title>Telling Stories With Python and Ren&apos;Py</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T103000</dtstart>
            <dtend>20190916T120000</dtend>
            <duration>013000</duration>
            <summary>Telling Stories With Python and Ren&apos;Py</summary>
            <description>You might be familiar with interactive fiction from &apos;Choose Your Own Adventure&apos; books, visual novels, or text-based games where what you type controls the story. Ren&apos;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&apos;ll make a start on your own interactive fiction game in Ren&apos;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&apos;Py installed (get it from www.renpy.org ) and a text editor such as Gedit.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/</url>
            <location>Room A</location>
            
            <attendee>Hannah Hazi</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>XVHHWL@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-XVHHWL</pentabarf:event-slug>
            <pentabarf:title>Hardware Hacking Workshop</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T103000</dtstart>
            <dtend>20190916T120000</dtend>
            <duration>013000</duration>
            <summary>Hardware Hacking Workshop</summary>
            <description>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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/XVHHWL/</url>
            <location>Room C</location>
            
            <attendee>Sarah Townson</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>HAEXPV@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-HAEXPV</pentabarf:event-slug>
            <pentabarf:title>Build a full-stack web app in Python with Anvil</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190916T103000</dtstart>
            <dtend>20190916T120000</dtend>
            <duration>013000</duration>
            <summary>Build a full-stack web app in Python with Anvil</summary>
            <description>Anvil is a platform for rapidly developing web apps using nothing but Python.

It&apos;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&apos;s a commercial platform that&apos;s free to use, with paid options for professional projects.

This is an interactive workshop where you&apos;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&#8217;ll need a laptop to follow along.

For a preview, have a look at this short video https://anvil.works/#about</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Workshop</category>
            <url>https://pretalx.com/pyconuk-2019/talk/HAEXPV/</url>
            <location>Room J</location>
            
            <attendee>Shaun Taylor-Morgan</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>GCF9LN@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-GCF9LN</pentabarf:event-slug>
            <pentabarf:title>Introduction</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190917T090000</dtstart>
            <dtend>20190917T093000</dtend>
            <duration>003000</duration>
            <summary>Introduction</summary>
            <description>Tuesday Introduction</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Talk</category>
            <url>https://pretalx.com/pyconuk-2019/talk/GCF9LN/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>K973NJ@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-K973NJ</pentabarf:event-slug>
            <pentabarf:title>Sprints</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190917T093000</dtstart>
            <dtend>20190917T181000</dtend>
            <duration>084000</duration>
            <summary>Sprints</summary>
            <description>**What happens at a sprint?**

It&#8217;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&#8217;ll select a ticket (representing a bug, or an improvement that needs to be made) from the project&apos;s issue tracker, and get to work on that. As you work, you might want to check with a more experienced coder whether you&#8217;re going about it the right way and get feedback on what you&#8217;re doing.

**So can I join in?**

Absolutely. Everyone&#8217;s welcome. It&#8217;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&#8217;ve never taken part in a sprint before though.**

That&#8217;s no problem. There&#8217;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&apos;ll need to know the basics of using the appropriate version control system (it&apos;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&#8217;ll also need your own computer with a suitable Python environment set up on it - but there&apos;ll be people to help with that too.

**But I&#8217;m not actually a very good Python programmer.**

That&#8217;s OK too, neither am I and neither is everyone else. You truly don&#8217;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&#8217;d be worried about holding up everyone else though.**

It simply doesn&#8217;t work like that. For one thing, one of the main points of a sprint is to encourage and help new people. You&#8217;ll be able to work at your own pace, learning the things you need to learn as you go along, and you&#8217;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&#8217;s like.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/K973NJ/</url>
            <location>Assembly Room</location>
            
            <attendee>Daniele Procida</attendee>
            
        </vevent>
        
        <vevent>
            <method>PUBLISH</method>
            <uid>7D3TT9@@pretalx.com</uid>
            <pentabarf:event-id></pentabarf:event-id>
            <pentabarf:event-slug>-7D3TT9</pentabarf:event-slug>
            <pentabarf:title>Trans*Code</pentabarf:title>
            <pentabarf:subtitle></pentabarf:subtitle>
            <pentabarf:language>en</pentabarf:language>
            <pentabarf:language-code>en</pentabarf:language-code>
            <dtstart>20190917T093000</dtstart>
            <dtend>20190917T181000</dtend>
            <duration>084000</duration>
            <summary>Trans*Code</summary>
            <description>**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.</description>
            <class>PUBLIC</class>
            <status>CONFIRMED</status>
            <category>Something Else</category>
            <url>https://pretalx.com/pyconuk-2019/talk/7D3TT9/</url>
            <location>Room I</location>
            
            <attendee>Emma Delescolle</attendee>
            
        </vevent>
        
    </vcalendar>
</iCalendar>
