{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://pretalx.com/pyconuk-2019/schedule/", "version": "0.64", "base_url": "https://pretalx.com", "conference": {"acronym": "pyconuk-2019", "title": "PyCon UK 2019", "start": "2019-09-13", "end": "2019-09-17", "daysCount": 5, "timeslot_duration": "00:05", "time_zone_name": "Europe/London", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "Assembly Room", "slug": "25-assembly-room", "guid": "ffd4abe1-8fd2-50c6-84fb-43f5835bc9bc", "description": null, "capacity": 600}, {"name": "Ferrier Hall", "slug": "26-ferrier-hall", "guid": "5c7856f8-75f9-54ae-84a4-e4d847fb29a4", "description": null, "capacity": null}, {"name": "Marble Hall", "slug": "96-marble-hall", "guid": "796ec673-3ff9-590e-8cf1-bd481200dea0", "description": null, "capacity": null}, {"name": "Lower Hall", "slug": "27-lower-hall", "guid": "20ef9fd4-6e98-5493-9f5d-a116bd975a5b", "description": null, "capacity": null}, {"name": "Room A", "slug": "28-room-a", "guid": "f78fe877-e68f-5c7c-b658-b47fcb7d39c5", "description": null, "capacity": null}, {"name": "Room B", "slug": "29-room-b", "guid": "3a25addd-339a-5a4d-ae9c-c4c1d2058eb7", "description": null, "capacity": null}, {"name": "Room C", "slug": "30-room-c", "guid": "26f318b2-e260-5b14-9961-940be82868ae", "description": null, "capacity": null}, {"name": "Room D", "slug": "31-room-d", "guid": "fdd5e5a7-0f58-5357-8489-099b95578759", "description": null, "capacity": null}, {"name": "Room I", "slug": "32-room-i", "guid": "d4d4f66a-58fb-5d37-8765-0d3a644421df", "description": null, "capacity": null}, {"name": "Room J", "slug": "33-room-j", "guid": "70ed1015-4f78-5684-9ac2-2d489d467e64", "description": null, "capacity": null}, {"name": "Room K", "slug": "34-room-k", "guid": "57a482e7-04d2-548a-8835-a6e64f72c18c", "description": null, "capacity": null}, {"name": "Room L", "slug": "35-room-l", "guid": "b5c69e24-6cb9-5a44-b959-d8c7e2e514b1", "description": null, "capacity": null}, {"name": "Jail", "slug": "118-jail", "guid": "f7513bca-75b3-5818-90bc-4c2126e56c11", "description": "Her Majesty's Prison, Cardiff", "capacity": 25}], "tracks": [{"name": "Young Coders", "slug": "79-young-coders", "color": "#FF0000"}, {"name": "Social", "slug": "80-social", "color": "#0000FF"}, {"name": "Keynote", "slug": "83-keynote", "color": "#FF00FF"}], "days": [{"index": 1, "date": "2019-09-13", "day_start": "2019-09-13T04:00:00+01:00", "day_end": "2019-09-14T03:59:00+01:00", "rooms": {"Assembly Room": [{"guid": "f7a8cb07-094e-5df2-a7c5-49a0ec30f3b6", "code": "MPGPVU", "id": 2544, "logo": null, "date": "2019-09-13T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2544-introduction", "url": "https://pretalx.com/pyconuk-2019/talk/MPGPVU/", "title": "Introduction", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Friday Introduction", "description": "Friday Introduction", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/MPGPVU/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/MPGPVU/", "attachments": []}, {"guid": "f5da839d-bd11-5b3a-993d-e00fee75df59", "code": "DKQLGQ", "id": 2583, "logo": null, "date": "2019-09-13T09:30:00+01:00", "start": "09:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2583-reproducible-science-the-good-the-bad-the-ugly-and-the-untold", "url": "https://pretalx.com/pyconuk-2019/talk/DKQLGQ/", "title": "Reproducible Science: The Good, The Bad, The Ugly and The Untold", "subtitle": "", "track": "Keynote", "type": "Talk", "language": "en", "abstract": "Coming soon...", "description": "Coming soon...", "recording_license": "", "do_not_record": false, "persons": [{"code": "M9T83C", "name": "Dr. Tania Allard", "avatar": "https://pretalx.com/media/avatars/M9T83C_p3EazfN.webp", "biography": "Tania is a developer advocate at Microsoft. She is passionate about reproducible and robust scientific computing and data science. \r\nShe is also the organiser of PyLadies NorthWest and a PSF fellow.", "public_name": "Dr. Tania Allard", "guid": "f9849d9c-b12c-5e6d-b79d-fbc257982a5c", "url": "https://pretalx.com/pyconuk-2019/speaker/M9T83C/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/DKQLGQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/DKQLGQ/", "attachments": []}, {"guid": "da80c00d-13c7-560e-b8ee-2b7259a41000", "code": "3ZRJS8", "id": 2402, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2402-astro-pi-python-on-the-international-space-station", "url": "https://pretalx.com/pyconuk-2019/talk/3ZRJS8/", "title": "Astro Pi: Python on the International Space Station", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "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.", "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.\r\n\r\nMission 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.\r\n\r\nMission 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.\r\n\r\nA 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.\r\n\r\nAs well as sharing details of the OS maintainance and devops for the Astro Pis, I'll share photos taken from space and show findings from student experiments using opencv, tensorflow, scikit-learn, ephem and more.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQDLDB", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/MQDLDB_Y3STrAi.webp", "biography": "Ben Nuttall is Programme Technical Manager at the Raspberry Pi Foundation in Cambridge, UK. Ben is a developer and maker who loves all things open source, and he leads the GPIO Zero and piwheels projects.", "public_name": "Ben Nuttall", "guid": "482e9f7f-80a4-5211-962e-e76669e15456", "url": "https://pretalx.com/pyconuk-2019/speaker/MQDLDB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/3ZRJS8/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/3ZRJS8/", "attachments": []}, {"guid": "70e5b8c3-c315-5fcd-95a0-540dc67188b2", "code": "8XZNDS", "id": 1866, "logo": null, "date": "2019-09-13T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1866-you-are-in-a-maze-of-twisty-little-passages", "url": "https://pretalx.com/pyconuk-2019/talk/8XZNDS/", "title": "You are in a maze of twisty little passages", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "You are a robot tasked with mapping a maze, but a lot of these rooms look weirdly similar. What do you do? A light hearted introduction to some neat algorithms.", "description": "You are a poor little robot, lost in a maze. Your mission, you should choose to accept it (robots don't get to turn missions down) is to map out the maze.\r\n\r\nBut there's a problem! Maybe it's your tiny robot sensorium not being good enough, but you can't tell the difference between most of these rooms! How can you possibly map the maze when all of these rooms look basically the same?\r\n\r\nFortunately, there's an algorithm for that.\r\n\r\nIn this talk I'll teach you a little bit about a neat area of theoretical computer science called *formal language inference*. You probably don't *need* to know anything about this area, but it's a lot of fun, and will serve as a nice approachable introduction to some foundational computer science.\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8P7A39", "name": "David R. MacIver", "avatar": null, "biography": "David is a long time PyCon UK speaker. Past talks include one about Hypothesis, a neat testing library that you should all be using, successfully trolling the PyCon UK organizers into using linear programming for scheduling, and a keynote introducing 800ish Python programmers to anarchist social theories. He's not very good at taking talks, or biographies, seriously, but somehow he keeps getting allowed back and people keep attending his talks anyway.", "public_name": "David R. MacIver", "guid": "aa75b9fd-969d-53cd-bc7c-dfbf770e234d", "url": "https://pretalx.com/pyconuk-2019/speaker/8P7A39/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8XZNDS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8XZNDS/", "attachments": []}, {"guid": "152bc24b-4a31-5927-a18c-385ed6c7a79f", "code": "8HMJJL", "id": 2258, "logo": null, "date": "2019-09-13T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2258-sans-i-o-programming-patterns-what-why-and-how", "url": "https://pretalx.com/pyconuk-2019/talk/8HMJJL/", "title": "Sans I/O programming patterns \u2013 what, why, and how", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Programmers have plenty of powerful, flexible libraries \u2013 and yet we often end up reinventing the wheel. Why? Because they\u2019re not reusable \u2013 code gets trapped by its I/O model.\r\n\r\nIn this talk, we\u2019ll look at the benefits and techniques for writing \u201csans I/O\u201d code.", "description": "This talk looks at the \u201csans I/O\u201d programming pattern. I\u2019ll 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\u2019ll also look at some examples of code that uses this pattern, so you can see how to use it in your codebase.\r\n\r\nThis pattern isn\u2019t revolutionary or life-changing, but it does give you a codebase that's nicer to work with.", "recording_license": "", "do_not_record": false, "persons": [{"code": "TNK3TE", "name": "Alex Chan", "avatar": "https://pretalx.com/media/avatars/TNK3TE_KFmoFiw.webp", "biography": null, "public_name": "Alex Chan", "guid": "8a61fbff-bd38-5397-bd3a-ae7c2ee9ee71", "url": "https://pretalx.com/pyconuk-2019/speaker/TNK3TE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8HMJJL/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8HMJJL/", "attachments": []}, {"guid": "a83f91d5-ad8c-54ae-bed6-c365c2f45eed", "code": "8CXAGR", "id": 1843, "logo": null, "date": "2019-09-13T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1843-asynchronous-web-development-with-flask", "url": "https://pretalx.com/pyconuk-2019/talk/8CXAGR/", "title": "Asynchronous Web Development with Flask", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A common misconception is that traditional frameworks such as Flask and Django are incompatible with asynchronous web servers. In this talk I'm going to show you how to write an asynchronous web application using Flask.", "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.\r\n\r\nSo 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?\r\n\r\nIn this talk I'm going to show you how to write a fully asynchronous web application using Flask. All the techniques I'll show are also applicable to Django and most other WSGI web frameworks!", "recording_license": "", "do_not_record": false, "persons": [{"code": "WBUCQB", "name": "Miguel Grinberg", "avatar": "https://pretalx.com/media/avatars/WBUCQB_KRVgWyV.webp", "biography": "Miguel Grinberg wrote his first line of code in 1983 and hasn't stopped coding since. He blogs at https://blog.miguelgrinberg.com about a variety of topics including web development, Python, robotics, photography and the occasional movie review. Miguel is the author of the Flask Mega-Tutorial and the O'Reilly book \"Flask Web Development\". He calls Portland, Oregon home, but is currently on a \"working vacation\" in Ireland.", "public_name": "Miguel Grinberg", "guid": "ceceff4f-1f78-54f6-82eb-4320db84b83a", "url": "https://pretalx.com/pyconuk-2019/speaker/WBUCQB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8CXAGR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8CXAGR/", "attachments": []}, {"guid": "063c52c2-7534-5459-8e15-b812ed3695f4", "code": "DHYMLQ", "id": 2343, "logo": null, "date": "2019-09-13T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2343-technical-debt-remediation-in-a-massive-python-codebase", "url": "https://pretalx.com/pyconuk-2019/talk/DHYMLQ/", "title": "Technical Debt Remediation in a Massive Python Codebase", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The Quartz engineering team at Bank of America hosts one of the world's largest python codebases. Changes in core components of the platform can have high impact.", "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'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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WJJV9F", "name": "Irit Katriel", "avatar": null, "biography": "Technical lead for the Quartz dependency graph at Bank of America. PhD in computer science, focused on graph algorithms.", "public_name": "Irit Katriel", "guid": "a5fa9406-439a-55b6-845c-57f1e173b7d8", "url": "https://pretalx.com/pyconuk-2019/speaker/WJJV9F/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/DHYMLQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/DHYMLQ/", "attachments": []}, {"guid": "c766a41d-fde4-529d-a245-890d3edc4aac", "code": "HTBP7D", "id": 2381, "logo": null, "date": "2019-09-13T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2381-training-my-dog-with-python", "url": "https://pretalx.com/pyconuk-2019/talk/HTBP7D/", "title": "Training my dog with Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will cover a range of topics around a tool I have built to enhance work sessions with my dog.", "description": "This talk will culminate in describing a Django Rest Framework I have built to keep track of the behaviours (\"tricks\") that my dog has learnt for the sport of discdog which involves acrobatic catches of frisbees.  The tool also generates a particular sequence of these behaviours (a \"routine\") which ensures our training sessions always serve the purpose of being mentally stimulating.\r\n\r\nI will start by describing some modern concepts of dog behaviour and present their parallels to higher education pedagogy (my day job is an educator).\r\n\r\nFollowing 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.)\r\n\r\nI will then describe the tool that has been built and describe how it assists with our training.\r\n\r\nThis talk should be of interest to people who don't dislike dogs, like cool things and/or want to see how someone who is not a web developer used the Django Rest Framework to improve a part of their life.\r\n\r\nDepending on how much time I have to work on the tool there's a chance that there will be some machine learning as well (because \"machine learning\", who knows maybe even some blockchain). That's a joke, there will not be blockchain.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EM9DEL", "name": "Vince Knight", "avatar": null, "biography": "I am a [mathematician at Cardiff University](https://vknight.org) and an organiser of PyCon UK as well as Cardiff's Python Meetup: PyDiff. I am one of the core developers of the [Axelrod](https://axelrod.readthedocs.io/en/stable/) library which is a research tool for studying emergent behaviour. I have spoken at a number of academic and software conferences. My dog is my best friend.", "public_name": "Vince Knight", "guid": "52c4ba0a-122b-54d7-b3c8-a72817fcb1e1", "url": "https://pretalx.com/pyconuk-2019/speaker/EM9DEL/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HTBP7D/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HTBP7D/", "attachments": []}, {"guid": "c68d8f86-5c70-53fa-a1b5-6a6f80100cd3", "code": "NXNPMX", "id": 2427, "logo": null, "date": "2019-09-13T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2427-more-than-you-ever-wanted-to-know-about-python-functions", "url": "https://pretalx.com/pyconuk-2019/talk/NXNPMX/", "title": "More Than You Ever Wanted To Know About Python Functions", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Let's talk about functions, methods, callables and closures - what they are, what you can do with them ... and what's inside.\r\n\r\nAfterwards you'll know more about callables, along with techniques both practical and so extreme your colleagues will never let you merge them to master.", "description": "What exactly _are_ functions? Let's talk about functions, methods, callables and closures - what they are, what you can give them, what they can give you, what you can do with them ... and what's inside.\r\n\r\nYou probably think you already know everything about functions, but you probably don't!\r\n\r\n**Input & Output**: How do you get things in and out of functions? I'll cover parameters and the myriad of ways they can be specified, provided and accessed - including helpful hints to avoid common mistakes! I'll cover return values, briefly, along with variable scopes and exceptions.\r\n\r\n**Closures**: What are they, how do they work and how they can affect memory usage.\r\n\r\n**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.\r\n\r\n**\\_\\_magic\\_\\_**:Make your own callables from any object!\r\n\r\n**Introspection**: Using modern Python techniques, what can you find out about a function, and what can you do with that information?\r\n\r\n**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.)\r\n\r\nBy the end of this talk, I guarantee* you'll know more about callables than when you walked in, along with techniques both practical and so extreme your colleagues will never let you merge them to master.\r\n\r\n(*This guarantee is legally non-binding and cannot be redeemed in any way.)", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQSK8D", "name": "Mark Smith", "avatar": "https://pretalx.com/media/avatars/HQSK8D_oYSHdxI.webp", "biography": "My name is Mark Smith, although I'm known as Judy2k online. I'm a Developer Advocate for Nexmo. I love writing stupid Python code in an attempt to really understand how Python works. When I'm not doing this, you'll find me crocheting, building custom keyboards, or designing models for 3D printing.", "public_name": "Mark Smith", "guid": "1d392c5d-21c4-5b0c-8eb4-e0038abfd547", "url": "https://pretalx.com/pyconuk-2019/speaker/HQSK8D/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/NXNPMX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/NXNPMX/", "attachments": []}, {"guid": "e2b185c1-4d08-51c0-9d38-bad93e810503", "code": "PJRZXZ", "id": 2358, "logo": null, "date": "2019-09-13T17:00:00+01:00", "start": "17:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2358-how-to-write-readable-tests", "url": "https://pretalx.com/pyconuk-2019/talk/PJRZXZ/", "title": "How to write readable tests", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "So often, our tests are much harder to understand than the rest of our code. This is a shame! Find out how to write tests that act as living documentation from which you can gain deeper understanding of your system.", "description": "Have you ever found yourself scratching your head when reading an automated test? Even if we take pride in our application code, it\u2019s all too easy for us to neglect readability in our tests.\r\n\r\nBut tests can be more than just a safety net that nobody reads unless they break. In this talk, I\u2019ll show you how to write Python tests that you will love, and keep coming back to.\r\n\r\nTopics will include:\r\n\r\n- Showing what matters and hiding the rest\r\n- Don\u2019t Repeat Yourself in tests, too\r\n- Using custom dataclasses\r\n- Arrange, Act, Assert\r\n- Telling a story\r\n- Showing your working\r\n- Sentinels", "recording_license": "", "do_not_record": false, "persons": [{"code": "QCTWRT", "name": "David Seddon", "avatar": "https://pretalx.com/media/avatars/QCTWRT_YpQ2pI4.webp", "biography": "I like clean application architecture and code that humans can understand. I usually use Python and Django.\r\n\r\nI'm the creator of a number of open source Python libraries including [Import Linter](https://import-linter.readthedocs.io/), which allows you to impose constraints on your project's imports.\r\n\r\nI work at Octopus Energy in London, and I like to [blog](https://seddonym.me/).", "public_name": "David Seddon", "guid": "8c6838c8-a00f-50b4-88e2-1b1e636cedca", "url": "https://pretalx.com/pyconuk-2019/speaker/QCTWRT/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/PJRZXZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/PJRZXZ/", "attachments": []}, {"guid": "3b87ff68-1d88-5565-b221-e6280220a067", "code": "WKYUSG", "id": 2545, "logo": null, "date": "2019-09-13T17:30:00+01:00", "start": "17:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2545-lightning-talks", "url": "https://pretalx.com/pyconuk-2019/talk/WKYUSG/", "title": "Lightning talks", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Lightning talks.", "description": "Short talks.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQSK8D", "name": "Mark Smith", "avatar": "https://pretalx.com/media/avatars/HQSK8D_oYSHdxI.webp", "biography": "My name is Mark Smith, although I'm known as Judy2k online. I'm a Developer Advocate for Nexmo. I love writing stupid Python code in an attempt to really understand how Python works. When I'm not doing this, you'll find me crocheting, building custom keyboards, or designing models for 3D printing.", "public_name": "Mark Smith", "guid": "1d392c5d-21c4-5b0c-8eb4-e0038abfd547", "url": "https://pretalx.com/pyconuk-2019/speaker/HQSK8D/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WKYUSG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WKYUSG/", "attachments": []}], "Ferrier Hall": [{"guid": "ca43fc91-3f3c-573f-9a80-373b659c84d7", "code": "8VC9EY", "id": 2413, "logo": null, "date": "2019-09-13T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2413-optimizing-input-building-your-own-customized-keyboard", "url": "https://pretalx.com/pyconuk-2019/talk/8VC9EY/", "title": "Optimizing Input: Building your own customized keyboard", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Keyboards, the main way we interact with computers, have remained unchanged for a century, despite being free from mechanical necessity. Alternatives made possible by recent technology can optimize the way we input text and interact with our devices.", "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.\r\n\r\nThe 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.\r\n\r\nWe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "D7UUMQ", "name": "Daniel Rios", "avatar": "https://pretalx.com/media/avatars/D7UUMQ_pIVWZBl.webp", "biography": "I'm a community-taught developer who always tries to give back. I coach at the OpenTechSchool Python-Co learning and have coached at four DjangoGirls in Berlin. I also encourage and help beginners in their own programming journeys.\r\n\r\nI've been programming in Python since 2012, with Django since 2014. I've been working professionally as a Web Developer at Jonas und der Wolf in Berlin since 2016.", "public_name": "Daniel Rios", "guid": "a91010a0-a43f-5d01-9b86-79b1e37453fd", "url": "https://pretalx.com/pyconuk-2019/speaker/D7UUMQ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8VC9EY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8VC9EY/", "attachments": []}, {"guid": "25a5b351-636f-5b78-95ab-89b06acd0416", "code": "98UHZP", "id": 2455, "logo": null, "date": "2019-09-13T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2455-code-walk-this-way", "url": "https://pretalx.com/pyconuk-2019/talk/98UHZP/", "title": "Code walk this way", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How can you help Pythonistas learn a new code base more quickly and level up their Python skills? One way is with a 'code walk' \u2014 talking through a code base while reading the code together. I will talk about how I like to structure a code walk and its benefits.", "description": "How can you help Pythonistas learn a new code base more quickly and level up their Python skills? One way is with a 'code walk' \u2014 talking through a code base while reading the code together. \r\n\r\nOver the last five years I have spent a lot of time doing 'code archaeology' i.e. trying to understand how and why someone else's code works! Of all the techniques I've come across, code walking is one of the most unusual, but it has excited me the most, and I want to share my ideas on how to do it with you.\r\n\r\nI 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. \r\n\r\nI'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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QFAK73", "name": "Mary Chester-Kadwell", "avatar": null, "biography": "I'm a Senior Software Developer at Cambridge University Library and Cambridge Digital Humanities where I work on a lot of different code bases in a variety of languages, including my favourite, Python. My background is in archaeology but I shifted career about five years ago, partly by taking courses with the Open University and partly by learning the hard way, on the job!", "public_name": "Mary Chester-Kadwell", "guid": "d5649367-9db8-545e-b57c-2728a828e8a7", "url": "https://pretalx.com/pyconuk-2019/speaker/QFAK73/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/98UHZP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/98UHZP/", "attachments": []}, {"guid": "8504b7f4-7ff7-5195-a8df-4304304fc833", "code": "QQP9QB", "id": 2357, "logo": null, "date": "2019-09-13T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2357-static-typing-in-python", "url": "https://pretalx.com/pyconuk-2019/talk/QQP9QB/", "title": "Static Typing in Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, we'll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional \"type hints\" and various tools to aid in adding types to Python code.", "description": "Python is well-known as a programming language without static types. This means that you don't need to say what a given variable will hold, or whether your function will return a string or an integer (or sometimes one, and sometimes another!). This has historically made Python a very flexible and beginner-friendly language.\r\n\r\nIn this talk, we'll discuss the advantages and disadvantages to a static type system, as well as recent efforts to introduce static typing to Python via optional \"type hints\" and various tools to aid in adding types to Python code. We'll see what this means for Python, for Python programmers, and what the future has in store for Python's type system.\r\n\r\nThis talk is for Python programmers who either don't know what static typing is, don't know why why they might want it, or who do have some understanding, but aren't sure what benefits they might get by adding type annotations to their code.\r\n\r\nAttendees should know that there is a distinction between typed and untyped code, and understand what some types (list, int, string, etc) are, but don't need to know exactly what static typing is or have direct experience with typed code.\r\n\r\nAfter 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YRRKXN", "name": "Dustin Ingram", "avatar": "https://pretalx.com/media/avatars/YRRKXN_HRijtVC.webp", "biography": "Dustin is a Developer Advocate at Google, focused on supporting the Python community on Google Cloud. He's also a member of the Python Packaging Authority, maintainer of PyPI, and organizer for the PyTexas conference.", "public_name": "Dustin Ingram", "guid": "c18f5588-9859-58f2-8b5e-866bbd02da2f", "url": "https://pretalx.com/pyconuk-2019/speaker/YRRKXN/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QQP9QB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QQP9QB/", "attachments": []}, {"guid": "3dbb120d-cbc4-5e32-9902-eb293960c9b5", "code": "LVNR7V", "id": 2450, "logo": null, "date": "2019-09-13T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2450-awesome-live-api-docs-for-under-resourced-teams", "url": "https://pretalx.com/pyconuk-2019/talk/LVNR7V/", "title": "Awesome live API docs for under-resourced teams", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Since all software dev teams are under-resourced, let's see how to get pretty good \"living\" docs with as little effort as possible. These allow the API to be used directly from the docs. We'll look at a real open source app built with Flask, Swagger and SwaggerUI.", "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.\r\n\r\nBut 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.\r\n\r\nThis is where our journey begins - a team of 3 developers who could only be part-time on this project but had lofty 'live API docs' ambitions. Come and see how they achieved whatever good they managed, and how you could do do better if you were to start upon a similar path today.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DMQMAC", "name": "Emanuil Tolev", "avatar": "https://pretalx.com/media/avatars/DMQMAC_S0WIrc2.webp", "biography": "Emanuil is a Community Engineer with Elastic, the company behind the open source Elastic Stack (Elasticsearch, APM, Kibana, Beats, and Logstash). He's based in London. He used to be a freelance web developer + ops lead and ran a small open science web dev consultancy with partners for several years. Interested in mentorship, inclusion, small businesses, archery and always curious about how the world works in detail.", "public_name": "Emanuil Tolev", "guid": "df715973-4a97-5c98-a101-a3cc054bc01a", "url": "https://pretalx.com/pyconuk-2019/speaker/DMQMAC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/LVNR7V/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/LVNR7V/", "attachments": []}, {"guid": "c44f3cb6-2b54-57d9-83e6-7828f4ad456c", "code": "GHRAJT", "id": 1788, "logo": null, "date": "2019-09-13T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-1788-syntactic-sugar-vs-maintainability", "url": "https://pretalx.com/pyconuk-2019/talk/GHRAJT/", "title": "Syntactic sugar vs maintainability", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Is it ever worth committing coding sins for the greater good? We'll look at techniques which can make your code easier to use at the cost of being harder to maintain, and when the effort is worth the reward.", "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'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.\r\n\r\nUsing real world examples we'll touch on topics such as automatic registration using metaclasses; changing base classes at runtime to save your users a line of code; and the joys and pitfalls of monkey patching things which should probably never be monkey patched.\r\n\r\nBy the end of the talk you'll know why doing these things is usually a bad idea, and why I think it's worth doing them anyway.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CYDYQC", "name": "Richard Terry", "avatar": null, "biography": "Richard has been programming for 25 years, has been paid for it for 15, and has been using Python for 10. He is CTO at Wildfish, a London-based Python and Django consultancy, having previously been a freelancer, contractor and senior developer. Richard has worked on a wide range of projects, and enjoys solving challenging problems in interesting ways.", "public_name": "Richard Terry", "guid": "a617f713-abd2-55f3-9b15-d927bc815025", "url": "https://pretalx.com/pyconuk-2019/speaker/CYDYQC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GHRAJT/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GHRAJT/", "attachments": []}, {"guid": "a6b9866b-f946-5aff-9dec-348feb42ffab", "code": "MDL9VK", "id": 1963, "logo": null, "date": "2019-09-13T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-1963-regexplained-understanding-the-theory-of-regular-expressions", "url": "https://pretalx.com/pyconuk-2019/talk/MDL9VK/", "title": "Regexplained - Understanding the theory of Regular Expressions", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk aims to break down Regular Expressions to their base concept as finite automata.\r\nAttendees will leave this with an understanding of the theory of Regular Expressions,\r\nallowing them to better understand and construct complex regexes.\r\n\r\nNo prior knowledge of regexes or finite automata is required.", "description": "Many people see Regular Expressions as being a messy collection of unintelligible symbols\r\nwhich somehow match strings. However, Regular Expressions come from a\r\ntheoretical computer science concept in the family of finite automate, or\r\nfinite state machines. Understanding how to visually and mentally represent a regular expression\r\nas a finite automata can help to understand how they work, how they match\r\nstrings and what one can and can't do with them.\r\n\r\nThis talk is suitable for attendees of any computer science background and\r\nexperience level, having seen a regex before would be useful but not essential.\r\n\r\nAttendees will leave this talk with a better understanding of how to visualise a\r\nregex as a state machine. Attendees can use this knowledge to help them better\r\nconstruct and understand powerful regexes.", "recording_license": "", "do_not_record": false, "persons": [{"code": "A7KWC9", "name": "Samathy Barratt", "avatar": "https://pretalx.com/media/avatars/A7KWC9_jC76Zo0.webp", "biography": "Samathy is a security software pythonista and free-software hacker. She enjoys computer science from the\r\nhardware to the software via the theory.\r\n\r\nSamathy is excited to learn, eager to share and enthusiastic about Python and\r\nthe people who make the community. \r\nShe can normally be found consuming fancy pour-over coffee, immersed in a sci-fi universe or writing Python and D.", "public_name": "Samathy Barratt", "guid": "e8cc11c7-ceb6-50bb-b267-c0adde42c493", "url": "https://pretalx.com/pyconuk-2019/speaker/A7KWC9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/MDL9VK/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/MDL9VK/", "attachments": []}, {"guid": "f0ab42e7-83dc-5127-b1f4-60d157255fac", "code": "PJCYDP", "id": 2366, "logo": null, "date": "2019-09-13T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2366-philosophy-of-refactoring", "url": "https://pretalx.com/pyconuk-2019/talk/PJCYDP/", "title": "Philosophy of Refactoring", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Many of us can recite the advantages of well factored code, yet in practice it is easy to let standards slide. This talk explores the *mindset* one should adopt to have a well factored codebase, complete with examples of how this looks in practice.", "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.\r\n\r\nThis 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.\r\n\r\nExamples 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.\r\n\r\nLet *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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XPRWYU", "name": "Jacob Unna", "avatar": "https://pretalx.com/media/avatars/XPRWYU_5qhpOBj.webp", "biography": "Jacob is a software engineer in Deloitte's AI and Analytics practice, helping financial services clients deliver more value to their customers and streamline their back office systems. He relishes the challenge of working with different people and technologies, and thinks himself incredibly lucky to be alive at a time when the pace of innovation is so relentless.\r\n\r\nHe lives in Manchester with his wife and son, and in his free time enjoys walking in the Peak District.", "public_name": "Jacob Unna", "guid": "ee0cce3c-4598-5906-b6f8-cb8b700612aa", "url": "https://pretalx.com/pyconuk-2019/speaker/XPRWYU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/PJCYDP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/PJCYDP/", "attachments": []}], "Lower Hall": [{"guid": "54165096-8242-536c-b019-2d4da9758f2a", "code": "3SSVNY", "id": 2740, "logo": null, "date": "2019-09-13T16:30:00+01:00", "start": "16:30", "duration": "01:00", "room": "Lower Hall", "slug": "pyconuk-2019-2740-djangogirls-setup-helpdesk", "url": "https://pretalx.com/pyconuk-2019/talk/3SSVNY/", "title": "DjangoGirls Setup Helpdesk", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Help with laptop setup for DjangoGirls workshop", "description": "We'll have coaches on hand to help setup your laptop ready for Saturday's workshop.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NYRRVL", "name": "Ann Barr", "avatar": "https://pretalx.com/media/avatars/NYRRVL_SCbDdnZ.webp", "biography": "PyCon UK organising volunteer and organiser of past two PyCon UK Django Girls workshops.", "public_name": "Ann Barr", "guid": "42e07c09-2c91-5e0e-b583-f94fd42e3a8e", "url": "https://pretalx.com/pyconuk-2019/speaker/NYRRVL/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/3SSVNY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/3SSVNY/", "attachments": []}, {"guid": "4efec104-f4c3-5876-8f5d-486f781d081c", "code": "D9ZVRG", "id": 2627, "logo": null, "date": "2019-09-13T19:30:00+01:00", "start": "19:30", "duration": "02:30", "room": "Lower Hall", "slug": "pyconuk-2019-2627-board-games-and-manual-technology-evening", "url": "https://pretalx.com/pyconuk-2019/talk/D9ZVRG/", "title": "Board Games and Manual Technology Evening", "subtitle": "", "track": "Social", "type": "Something Else", "language": "en", "abstract": "Not a screen or keyboard in sight!", "description": "Everybody is welcome, whatever level of experience you have.\r\n\r\nIf you've never played/knitted/crocheted before, come along and see what it's all about. If you've been playing/knitting/crocheting for years, come and show us what it's all about!", "recording_license": "", "do_not_record": false, "persons": [{"code": "97GCZS", "name": "Sandy", "avatar": "https://pretalx.com/media/avatars/97GCZS_JfXU9mj.webp", "biography": "I still think I'm a sysadmin, but people keep reminding me I'm not.", "public_name": "Sandy", "guid": "9845bfd4-0670-5248-9a35-0cf220845a30", "url": "https://pretalx.com/pyconuk-2019/speaker/97GCZS/"}, {"code": "3MS7VE", "name": "Becky Smith", "avatar": "https://pretalx.com/media/avatars/3MS7VE_CZSpf8O.webp", "biography": null, "public_name": "Becky Smith", "guid": "a4dd365b-7e1d-5db6-bb17-c8701ee6b5b4", "url": "https://pretalx.com/pyconuk-2019/speaker/3MS7VE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/D9ZVRG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/D9ZVRG/", "attachments": []}], "Room B": [{"guid": "d2ca8d84-c8a4-5351-b755-c1e83eac346a", "code": "SLMPZN", "id": 2405, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room B", "slug": "pyconuk-2019-2405-step-into-the-ai-era-deep-reinforcement-learning-workshop", "url": "https://pretalx.com/pyconuk-2019/talk/SLMPZN/", "title": "Step Into the AI Era: Deep Reinforcement Learning Workshop", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "By engaging in the revolution of AI and deep learning, reinforcement learning has also evolved from being able to solve simple game puzzles to beating human records in Atari games. It has also opened up the possibility of using reinforcement learning in making real life decisions.", "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.\r\n\r\nIn 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.\r\n\r\nMost of the problem in the real world are model-free setting, i.e. we don\u2019t 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.\r\n\r\nIn 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.\r\n\r\nAs 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.\r\n\r\nWe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8EGVC9", "name": "Cheuk Ting Ho", "avatar": "https://pretalx.com/media/avatars/8EGVC9_LbezfQb.webp", "biography": "Cheuk constantly contributes to the community by giving AI and deep learning workshops, organize sprints for open source projects, volunteering at Datakind for charities. At the same time contribute to open source projects including Pandas, Keras, Scikit-learn and Dateutil. Cheuk has also been a guest speaker at University of Oxford and Queen Mary University of London, and various conferences including PyData in Amsterdam and Berlin, PyCon in Israel, UK and Germany, EuroPython and PyLondinium. Believing in gender equality, Cheuk is currently a co-organizer of AI club for Gender Minorities to support Tech Diversity and Inclusion.", "public_name": "Cheuk Ting Ho", "guid": "716d26c2-170b-5a5e-86e5-9d4cecf3bbdd", "url": "https://pretalx.com/pyconuk-2019/speaker/8EGVC9/"}, {"code": "PU8SB3", "name": "Charlotte Feather", "avatar": null, "biography": "Charlotte is a back end software developer, focusing on Scala and previously at Deloitte Digital. Outside of development she has spent the last year leading development projects in a Product Manager role and thus is very interested in the importance of real world user applications of technologies.", "public_name": "Charlotte Feather", "guid": "ad0a2add-1796-5b04-a53a-90b0a74f6dac", "url": "https://pretalx.com/pyconuk-2019/speaker/PU8SB3/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SLMPZN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SLMPZN/", "attachments": []}], "Room C": [{"guid": "70959aeb-764b-5194-89ed-3bc50d8d8eaf", "code": "RTB7BQ", "id": 2362, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room C", "slug": "pyconuk-2019-2362-demystifying-neural-networks", "url": "https://pretalx.com/pyconuk-2019/talk/RTB7BQ/", "title": "Demystifying Neural Networks", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Let's write a (tiny but working) Neural Network library from scratch!\r\nWell, almost from scratch, we will still use `NumPy`.\r\nAnd we will try to do it in less than 1000 lines of code.", "description": "We see many talks that explain neural networks (NNs), that describe the\r\ndifferent architectures and the problems for which each architecture is best.\r\nWe are **not** going to talk about that here.  Instead, we will talk about the\r\nimplementation of NNs, about how we make NNs work in code - not by using a\r\nlibrary but by writing it ourselves.\r\n\r\nHave you ever experimented with `pytorch`?  With `Tensorflow`?  With `PySpark`?\r\nHave you built and trained a NN with one of these libraries?  The process of\r\ndoing so is simple: You describe the overall NN architecture, feed the data,\r\nand then execute a training procedure which runs for a while.  This training\r\nprocess \"magically\" produces a trained NN (be it well trained or badly\r\ntrained), which can then be used for predictions.\r\n\r\nThe process of getting a trained NN begs a question: *what* is the magic that\r\ntrains the NN into a predictive tool?  Several resources explain NNs as a bunch\r\nof circles connected by arrows, that is a good conceptual representation of a\r\nNN but has no similarity with the actual implementation of the NN or of its\r\ntraining procedure.  Below the hood the implementation of a NN and its training\r\nmakes no circles or arrows, instead it is a clever sequence of matrix\r\nmultiplications.\r\n\r\nWe will go through the conceptual representation of a NN and then expand it and\r\ndescribe the implementation.  We will look at some mathematical concepts and\r\nthen we will see how to implement those concepts in `NumPy`.  We will use\r\n`NumPy` but we will see that we can substitute the `NumPy` parts of our code\r\nwith GPU or distributed processing.\r\n\r\nThe objective is to understand how NN libraries are programmed, and understand\r\nwhere the GPU (`Tensorflow`, `pytorch`) or the distributed processing\r\n(`PySpark`) is used within a NN library.  We want to demystify NN libraries, to\r\nprove that it is possible to write a simple NN library in less than 1000 lines\r\nof code.\r\n\r\nP.S. `NumPy` matrix multiplication (`np.dot`) knowledge is required.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GMRABP", "name": "Michal Grochmal", "avatar": "https://pretalx.com/media/avatars/GMRABP_BLcLe5O.webp", "biography": "Official mad scientist and open standards enthusiast. Still trying to get my PhD, and someday that will happen.", "public_name": "Michal Grochmal", "guid": "e7ae60dc-812f-5b28-a175-46236aa02435", "url": "https://pretalx.com/pyconuk-2019/speaker/GMRABP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/RTB7BQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/RTB7BQ/", "attachments": []}], "Room D": [{"guid": "575bd3a3-e7d7-569d-b68d-ff9cea38feeb", "code": "WJGTWP", "id": 2047, "logo": null, "date": "2019-09-13T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2047-logging-rethought-2-the-actions-of-frank-taylor-jr", "url": "https://pretalx.com/pyconuk-2019/talk/WJGTWP/", "title": "Logging Rethought 2: The Actions of Frank Taylor Jr.", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We build services, potentially used by millions of people. And despite all the testing we do, some interactions with these services will not work out the way we hope. Wouldn\u2019t it be great to reconstruct what let to a problem and analyze if the problem occurred at other times?", "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?\r\n\r\nLogging, 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\u2019s happening in a service.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQANK3", "name": "Markus Holtermann", "avatar": null, "biography": "Markus Holtermann works as a back-end and infrastructure engineer at Crate.io. He has been a Django core contributor since early 2015. He is a member of the Django security and operations team as well as an organizer of DjangoCon conferences. Markus has been a project lead at the German ubuntuusers.de community support platform where he discovered Python and Django in 2010.", "public_name": "Markus Holtermann", "guid": "401ddd6d-4016-5354-b7c9-38dbbadec8b9", "url": "https://pretalx.com/pyconuk-2019/speaker/RQANK3/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WJGTWP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WJGTWP/", "attachments": []}, {"guid": "e92b6d17-b832-5b94-8ec0-cef73b37175a", "code": "S8ZQQS", "id": 1935, "logo": null, "date": "2019-09-13T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1935-python-in-medicine-a-toolkit-for-exploring-neonatal-ventilator-data", "url": "https://pretalx.com/pyconuk-2019/talk/S8ZQQS/", "title": "Python in Medicine: A toolkit for exploring neonatal ventilator data", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Modern ventilators generate large amounts of pressure and flow data that clinicians cannot realistically monitor over long periods of time. A toolkit for segmentation and extracting breath-wise features would provide a means for summarising this information and investigating the relationship of different ventilator and patient characteristics to individual breaths.", "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.\r\n\r\nUsing 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQFYMJ", "name": "David Chong", "avatar": "https://pretalx.com/media/avatars/RQFYMJ_CmH8jry.webp", "biography": "I am a medical student at the University of Cambridge and a self-taught programmer who started programming since 12 years old because I wanted to make computer games. Over the years I have picked up most main stream programming languages including C++, Java, R, Python, full stack web development etc. When I went to University I started to work on computational projects in genomics, cancer, neuroscience, and biomaker events. I have an interest in computer science in general not just machine learning, and am always trying to find biology or clinically related projects to work on. I also enjoy trying out new food and recipes, playing osrs, and forcing myself to exercise (not sure if I enjoy this).", "public_name": "David Chong", "guid": "b3689da4-e13f-5343-9331-cc08a2549b55", "url": "https://pretalx.com/pyconuk-2019/speaker/RQFYMJ/"}, {"code": "YCAS7K", "name": "Gusztav Belteki", "avatar": null, "biography": "I am a consultant neonatologist (doctor looking after sick newborn infants) in Rosie Hospital, Cambridge. I am interested in mechanical ventilation of sick babies. I am also a Python enthusiast and I am using Python and its data science packages ( numpy, pandas, matplotlib, scipy, scikit-learn) to analyse the high-throughput data downloaded from neonatal  ventilators (breathing machines). I am studying how ventilators perform and how babies interact with the ventilators", "public_name": "Gusztav Belteki", "guid": "a9a60c37-f996-54da-bbb8-65b4f00a5f2f", "url": "https://pretalx.com/pyconuk-2019/speaker/YCAS7K/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/S8ZQQS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/S8ZQQS/", "attachments": []}, {"guid": "aac22a85-72a4-5e1e-b95f-ee8cf29c3002", "code": "HJM7JE", "id": 2152, "logo": null, "date": "2019-09-13T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2152-the-dos-and-don-ts-of-task-queues", "url": "https://pretalx.com/pyconuk-2019/talk/HJM7JE/", "title": "The dos and don'ts of task queues", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Let\u2019s talk about our experience with Celery and intentions to switch to RQ which failed. We\u2019ll show our setup of larger apps than the ones presented in doc examples together with useful tips&tricks on the orchestration of such apps.", "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\u2019ll 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\u2019ll tell a failure story of ours but resulting in a valuable lesson.\r\n\r\nMost of our services use Celery and it\u2019s 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\u2019t talk about comparing the frameworks but rather about the approach on how to experiment with new things in your environment. After that, we\u2019ll 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.\r\n\r\n*Conditions may apply.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VLYFCA", "name": "Petr Stehl\u00edk", "avatar": "https://pretalx.com/media/avatars/VLYFCA_N9SgzDc.webp", "biography": "Python engineer at Kiwi.com focusing on finance apps. Based in Brno, Czech Republic.\r\n\r\nI am a developer who likes to break stuff and then put it back together which then works even better. I am always keen to share my knowledge and learn from others.", "public_name": "Petr Stehl\u00edk", "guid": "68f79b7f-d4df-547d-97d7-7563a85247a1", "url": "https://pretalx.com/pyconuk-2019/speaker/VLYFCA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HJM7JE/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HJM7JE/", "attachments": [{"title": "Presentation", "url": "/media/pyconuk-2019/submissions/HJM7JE/resources/The_dos_and_donts_of_task_queues.pdf", "type": "related"}]}, {"guid": "65a6c7a6-51aa-58fe-9865-29de8669630a", "code": "TVSVX8", "id": 2437, "logo": null, "date": "2019-09-13T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2437-automating-code-review-as-much-as-possible", "url": "https://pretalx.com/pyconuk-2019/talk/TVSVX8/", "title": "Automating Code Review As Much As Possible", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "While the best code is no code at all, we do need to deal with the rest of it", "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.\r\n\r\nFortunately, there is a wide range of tools that are very good at taking much of the common and tedious checking off your hands. Using these can leave us free to focus on the big picture, whether reviewing someone else's code or checking over your own.\r\n\r\nNaturally, I ended up spending more time wrangling with these tools than actually coding, but I did learn which ones were worthwhile for which situation.\r\n\r\nIn this talk we'll look at the tools available to check the code style, find bugs, or detect security issues, and find out how to best use (or avoid) them to speed up development both now and in the long-run.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XGFE9K", "name": "Qasim K", "avatar": "https://pretalx.com/media/avatars/XGFE9K_zwFWQVp.webp", "biography": "Professional Software Engineer for the past four years, and a hobbyist in love with Python for *much* longer. I first attended PyCon UK in 2016, gave my first big [talk at PyCon UK 2018](https://www.youtube.com/watch?v=y1mQ99vUBx8), and mentored at [DjangoGirls in Manchester](https://djangogirls.org/manchester/) earlier this year. [I write a blog](https://qasimk.io/), and I want to continue to find ways to contribute back to our community!", "public_name": "Qasim K", "guid": "5a129712-d15f-598d-8f10-f5076c430a8b", "url": "https://pretalx.com/pyconuk-2019/speaker/XGFE9K/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TVSVX8/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TVSVX8/", "attachments": []}], "Room I": [{"guid": "7ef99934-6fd8-5b7d-82d9-206de9785421", "code": "VKJJVG", "id": 1923, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room I", "slug": "pyconuk-2019-1923-flask-restplus-workshop-for-beginners", "url": "https://pretalx.com/pyconuk-2019/talk/VKJJVG/", "title": "Flask-restplus workshop for beginners", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Small workshop how to build your first api's using flask restplus. Hands-on! Please make sure you have python 3.6+ and pip installed!\r\n\r\nThis will be the link to the workshop code: https://github.com/wbbraam/pyconFlaskRestplus", "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.\r\n\r\nDuring this workshop we will teach you how to build a simple API and test it. Flask has been known as a good and simple option to build your python based api's. Flask-restplus however gives you some of the much needed extra's that will make your life even easier.\r\n\r\nAt the end of this workshop, you will be able to write python code to build and model your very own api's. And spin up the flask server with an included swagger interface to test and document your API's.", "recording_license": "", "do_not_record": false, "persons": [{"code": "G833HA", "name": "Wietse Braam", "avatar": "https://pretalx.com/media/avatars/G833HA_V3wcvFp.webp", "biography": "I have started IT at the age of 20, educated as a cobol programmer on Mainframe and HpNSK. \r\nAfter 7 years of developing in cobol, C and C++ on this platform (and some windows) I changed course and moved to a different company, where I became responsible for coding and EDI engine in perl, as well as setting up a SOA/Bpm solution using java and SAP PI. I also touched my frist python code at this job,\r\n3 Years later I moved back to ING, this time in the position of Infrastructure engineer, responsible for developing Websphere MQ, Tibco, and Managed file transfer solutions on lots of platforms (Mainframe, Hpnsk, Linux, Windows, Solaris, Aix, etc.\r\n\r\nAt this job I got the opportunity to become a chapterlead, which basically is a management function where you are HR responsible for a team of engineers (I mainly function as a coach for them) while also being the lead engineer in certain areas for the department.\r\n\r\nIn the meantime I also switched teams within ING and am now in a team that focusses on software development mainly developing microservices using Java Spring and python flask. That run on an openshift platform.\r\n\r\nNext to work, IT has always been a hobby as well. And I have been working on lots of side projects (from helping a friends back-end coding in python to game development in C++ and Java).\r\n\r\nHobby wise. I play keyboards and write music for my progressive rock/metal band and a synthpop side project. And am also doing a lot of volunteer work for our local scouting group, where I am a board member and responsible for coaching the teams of scouts leaders, helping with difficult talks with kids, parents and within the teams.", "public_name": "Wietse Braam", "guid": "a87260d0-95f6-55f9-ba34-ab7ebf5466a8", "url": "https://pretalx.com/pyconuk-2019/speaker/G833HA/"}, {"code": "TMQYVC", "name": "Alp Inan", "avatar": null, "biography": null, "public_name": "Alp Inan", "guid": "c77b3684-bdf9-5cb3-b495-063ca4feccb9", "url": "https://pretalx.com/pyconuk-2019/speaker/TMQYVC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/VKJJVG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/VKJJVG/", "attachments": []}], "Room J": [{"guid": "a9a6afdb-5e53-5868-bcc1-8fad9fa75d1c", "code": "KCWURZ", "id": 2452, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room J", "slug": "pyconuk-2019-2452-intro-to-integrating-search-into-your-django-app", "url": "https://pretalx.com/pyconuk-2019/talk/KCWURZ/", "title": "Intro to integrating search into your Django app", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "A hands-on tutorial for people who want to start learning about and integrating search & discovery into their apps.", "description": "We'll start with a few basic things to keep in mind about full-text search, product search, catalogues, result relevance and user experience. We'll then go through a series of steps together that will leave you with a minimal working Django example you can take back and apply to your work projects. Time is limited, so the focus will be on getting you to see and go through a simple approach you can copy easily later to produce useful prototypes for your work. Only open source will be used - Elasticsearch for the search back-end. This is an intro workshop, so only basic data modelling, search and aggregations/facets are covered.\r\n\r\nFor anyone building something that needs search, the presenter will be available at the conf outside of this session for 1:1 discussions on what you're trying to do with search & discovery, how it might help or what excites you about the possibilities it opens up.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DMQMAC", "name": "Emanuil Tolev", "avatar": "https://pretalx.com/media/avatars/DMQMAC_S0WIrc2.webp", "biography": "Emanuil is a Community Engineer with Elastic, the company behind the open source Elastic Stack (Elasticsearch, APM, Kibana, Beats, and Logstash). He's based in London. He used to be a freelance web developer + ops lead and ran a small open science web dev consultancy with partners for several years. Interested in mentorship, inclusion, small businesses, archery and always curious about how the world works in detail.", "public_name": "Emanuil Tolev", "guid": "df715973-4a97-5c98-a101-a3cc054bc01a", "url": "https://pretalx.com/pyconuk-2019/speaker/DMQMAC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/KCWURZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/KCWURZ/", "attachments": []}], "Jail": [{"guid": "8f2f263f-9883-59b7-869f-a40482125445", "code": "TW9CEG", "id": 2736, "logo": null, "date": "2019-09-13T10:30:00+01:00", "start": "10:30", "duration": "03:00", "room": "Jail", "slug": "pyconuk-2019-2736-just-visiting", "url": "https://pretalx.com/pyconuk-2019/talk/TW9CEG/", "title": "Just Visiting", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "A visit to Her Majesty's Prison, Cardiff", "description": "During PyCon UK 2019 there will be a visit to HMP Cardiff. The application is open to conference delegates only.\r\n\r\nThe 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. \r\n\r\nThe 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.\r\n\r\nDue 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.\r\n\r\nFor more information email David Spademan at pyconukprisonvisit@gmail.com\r\n\r\nSign up at https://forms.gle/KEB2RcKgxYNDhANy5", "recording_license": "", "do_not_record": false, "persons": [{"code": "MZP3YQ", "name": "David Spademan", "avatar": "https://pretalx.com/media/avatars/MZP3YQ_MT3fCVT.webp", "biography": "Even though he is not a coder David has become a regular visitor to PyCon UK supporting his son, Luke. David has found the community to be very welcoming and presented a Lightning Talk last year on the idea of coding in prisons.\r\n\r\nDavid is a prison chaplain and is passionate about providing prisoners with hope and purpose. This can include inspiring and helping them to code and in providing employment opportunities on release. \r\n\r\nHe is keen to get a Code Club going in his own prison, HMP Onley - this ambition is still to be realised.\r\n\r\nDavid is at PyCon UK from Friday to Monday and happy to connect with anyone during that time with any questions or just to say hello.", "public_name": "David Spademan", "guid": "76d1d057-5963-55f5-af1f-befe55d97d84", "url": "https://pretalx.com/pyconuk-2019/speaker/MZP3YQ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TW9CEG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TW9CEG/", "attachments": []}]}}, {"index": 2, "date": "2019-09-14", "day_start": "2019-09-14T04:00:00+01:00", "day_end": "2019-09-15T03:59:00+01:00", "rooms": {"Assembly Room": [{"guid": "b8831665-8f3d-588f-9b42-5988bffddadb", "code": "PRWPCE", "id": 2546, "logo": null, "date": "2019-09-14T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2546-introduction", "url": "https://pretalx.com/pyconuk-2019/talk/PRWPCE/", "title": "Introduction", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Saturday Introduction", "description": "Saturday Introduction", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/PRWPCE/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/PRWPCE/", "attachments": []}, {"guid": "051a4ddc-5d70-5a9f-9af4-36045a27e00f", "code": "79GTCG", "id": 2580, "logo": null, "date": "2019-09-14T09:30:00+01:00", "start": "09:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2580-leadership-and-identity-in-the-pan-african-python-movement", "url": "https://pretalx.com/pyconuk-2019/talk/79GTCG/", "title": "Leadership and Identity in the Pan-African Python movement", "subtitle": "", "track": "Keynote", "type": "Talk", "language": "en", "abstract": "In this talk, I will be discussing three lessons about leadership that I learned during my time chairing Pycon Africa 2019. I will also be sharing how personal and group identity played a consistent and significant role throughout the process.", "description": "Coming soon...", "recording_license": "", "do_not_record": false, "persons": [{"code": "HVPX8T", "name": "Marlene Mhangami", "avatar": "https://pretalx.com/media/avatars/HVPX8T_rGIu7CR.webp", "biography": "Marlene is the current Chair of Pycon Africa, a Director for the Python Software Foundation, and a co-founder of ZimboPy, a Zimbabwean non-profit that empowers women to pursue careers in technology. She also works as the hub manager for a local technology hub in Harare where she is based. \r\n\r\nMarlene enjoys helping foster the growth of technology communities in Africa and is passionate about seeing the continents technology sector thrive. In her spare time, she reads, journals and occasionally can be found painting or running.", "public_name": "Marlene Mhangami", "guid": "131fafe6-d812-5e12-9ea3-53c45f363a0d", "url": "https://pretalx.com/pyconuk-2019/speaker/HVPX8T/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/79GTCG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/79GTCG/", "attachments": []}, {"guid": "ab7aa62d-3ab8-504b-a808-f4ab4d374da1", "code": "YDBBKR", "id": 1776, "logo": null, "date": "2019-09-14T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1776-depression-in-the-workplace-let-s-talk", "url": "https://pretalx.com/pyconuk-2019/talk/YDBBKR/", "title": "Depression in the Workplace; Let's talk.", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Depression affects a surprising amount of people, and despite the common belief that your personal issues shouldn't come to work with you, it does. This talk will touch on what depression is, how it affects someone's life and ways to communicate with someone who suffers from it.", "description": ":wave:\r\nThis 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. \r\n\r\nI will go through what depression is, and how it affects someone in the real world. This involves delving into my personal depression, compared against the symptoms which are on the NHS website and explaining how they have an effect. It's emphasised that it affects people differently - But by explaining how it actually affects someone who is actively suffering from it, it's more real.\r\n\r\nI'll then go over things such as what to say, but a little more focus on what not to say. Such as: avoiding recommending solutions, when you're not a medical doctor or psychologist; giving people space; being open for sharing (if you want to be), but not pressuring it.\r\n\r\nI've given this talk at my workplace; the comments were that it was raw, and really resonated with people.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NWZA87", "name": "Chloe Parkes", "avatar": "https://pretalx.com/media/avatars/NWZA87_SxzWg3k.webp", "biography": "I'm a Senior Software Engineer (Remote), focusing mainly on Python. I've been in this field for 7 years.\r\n\r\nI'm one of the PyCon UK organisers.", "public_name": "Chloe Parkes", "guid": "1b391c18-81a6-5cde-b801-666224f25d5c", "url": "https://pretalx.com/pyconuk-2019/speaker/NWZA87/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/YDBBKR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/YDBBKR/", "attachments": []}, {"guid": "b602fce6-cb69-59c6-bfbc-06ea074b4477", "code": "Z3EC7X", "id": 1991, "logo": null, "date": "2019-09-14T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1991-robotic-microscopy-for-everyone", "url": "https://pretalx.com/pyconuk-2019/talk/Z3EC7X/", "title": "Robotic Microscopy for Everyone", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The OpenFlexure Microscope is an open-source, 3D-printed motorised microscope targeted towards medical applications in sub-Saharan Africa. This talk will introduce our work with local innovation hubs, research institutions, and clinics to develop control software that encourages contributions across all communities, from school pupils to professors.", "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.\r\n\r\nIn 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.\r\n\r\nOur 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. \r\n\r\nOpen-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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XPW8YU", "name": "Deleted User", "avatar": null, "biography": "", "public_name": "Deleted User", "guid": "e0390ae9-837c-551d-8261-dfc6c4f30d53", "url": "https://pretalx.com/pyconuk-2019/speaker/XPW8YU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/Z3EC7X/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/Z3EC7X/", "attachments": []}, {"guid": "b55df735-a1e8-5122-8b9d-40296b5b855c", "code": "THXL7L", "id": 2444, "logo": null, "date": "2019-09-14T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2444-clean-architectures-in-python", "url": "https://pretalx.com/pyconuk-2019/talk/THXL7L/", "title": "Clean Architectures in Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What is a good software architecture? Why should we bother structuring the code and spending time testing it? The clean architecture is a good way to structure an application to make it easy to develop, debug, maintain, and change.", "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.\r\n\r\nThe \u201cclean architecture\u201d 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 \u201cClean Architectures in Python\u201d 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7BS3PU", "name": "Leonardo Giordani", "avatar": "https://pretalx.com/media/avatars/7BS3PU_JK6QVEx.webp", "biography": "Born in 1977, I started coding in April 1987 on a Sinclair ZX Spectrum. I then moved to MS-DOS PCs and in 1996 I started using Linux and became interested in operating system internals. I love architectures, algorithms, mathematics and cryptography.\r\n\r\nI currently work as an infrastructure engineer and Python developer.\r\n\r\nFrom 2013 I blog some technical thoughts at www.thedigitalcatonline.com\r\n\r\nIn 2018 I published the free book \u201cClean Architectures in Python\u201d http://bit.ly/getpycabook", "public_name": "Leonardo Giordani", "guid": "4786ba65-3acb-506e-984d-97637abd7490", "url": "https://pretalx.com/pyconuk-2019/speaker/7BS3PU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/THXL7L/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/THXL7L/", "attachments": []}, {"guid": "c5155321-def7-5765-b56e-bd4651ed382b", "code": "UV33DC", "id": 1925, "logo": null, "date": "2019-09-14T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1925-code-styles-aren-t-black-and-white", "url": "https://pretalx.com/pyconuk-2019/talk/UV33DC/", "title": "Code Styles Aren\u2019t Black and White", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We all have a code style. We all have opinions how code should look. We all seem to love (and hate) having long arguments about which code styles are better. What if there was a way out of the bikeshedding?", "description": "Code styles are important to us. So important that we\u2019re 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\u2019ve wasted on them?\r\n\r\nA 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.\r\n\r\nWhat 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?\r\n\r\nIn this talk, I\u2019d like to discuss what code styles are and why they\u2019re 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JJ8BUD", "name": "Mika Naylor", "avatar": "https://pretalx.com/media/avatars/JJ8BUD_Cr1y9b0.webp", "biography": "Mika is a haphazard collection of cells based in Berlin working with devops, distributed systems and IoT data. She is also a contributor to the Black python code formatter, the author of the F\u00e6reld time tracker and a fan of weird science fiction.", "public_name": "Mika Naylor", "guid": "fcbee88e-5eb2-5208-b047-1c498b36c9c8", "url": "https://pretalx.com/pyconuk-2019/speaker/JJ8BUD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/UV33DC/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/UV33DC/", "attachments": []}, {"guid": "60930a26-8ef5-5110-b14a-5e0d189f2071", "code": "CYBVCZ", "id": 2685, "logo": null, "date": "2019-09-14T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2685-data-scientist-career-path-how-to-find-your-way-through-the-data-science-maze", "url": "https://pretalx.com/pyconuk-2019/talk/CYBVCZ/", "title": "Data Scientist Career Path: How to find your way through the data science maze", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The demand of data science is huge and employers are investing significant time and money in Data Scientists. During this talk we will share our experiences, and provide a survival guide to help get you started in your data science career.", "description": "Organisations and individuals are \u201calways on\u201d, 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.\r\n \r\nThe data science job outlook continues to be on the upward trajectory as the influx of data isn\u2019t likely to cease anytime soon and enterprises will need individuals with the skills to parse through data tangle and help increase its value.\r\n \r\nThis talk will offer a data science survival guide and cover \u2013 \u2018What I wish I\u2019d known about data science\u2019, We will share our insights and most valuable lessons learned on breaking into the field of data science and launching a career.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MEPJWH", "name": "Solveiga Vivian-Griffiths", "avatar": null, "biography": null, "public_name": "Solveiga Vivian-Griffiths", "guid": "4fc5f28f-ba02-5620-9e38-dab0093a3acb", "url": "https://pretalx.com/pyconuk-2019/speaker/MEPJWH/"}, {"code": "3FWPYQ", "name": "Natalie Jakomis", "avatar": null, "biography": null, "public_name": "Natalie Jakomis", "guid": "0e583d9d-b551-5283-8122-15cad214ff3f", "url": "https://pretalx.com/pyconuk-2019/speaker/3FWPYQ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/CYBVCZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/CYBVCZ/", "attachments": []}, {"guid": "3c602b20-16a9-50bc-95aa-d1b12ef299dc", "code": "FP3GN8", "id": 1777, "logo": null, "date": "2019-09-14T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1777-the-fastest-way-to-learn-data-science", "url": "https://pretalx.com/pyconuk-2019/talk/FP3GN8/", "title": "The Fastest Way to Learn Data Science", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "It's not about what you know it's about what you can do", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HECTRR", "name": "Rebecca Vickery", "avatar": "https://pretalx.com/media/avatars/HECTRR_E4Dz6BV.webp", "biography": "Rebecca is a data scientist at Holiday Extras. Her role has been instrumental in developing some of the first machine learning capabilities for the business and helping to move the business from descriptive reporting to predictive and prescriptive analytics. Previously she has spent over 10 years working in various data analyst roles within the travel industry. In addition, she writes regularly about data science and artificial intelligence on Medium and is passionate about forming links between schools and the tech industry by organising open days at Holiday Extras and delivering talks at local schools.", "public_name": "Rebecca Vickery", "guid": "3590d8c0-e4ba-55fe-8ec4-03f319cc7b40", "url": "https://pretalx.com/pyconuk-2019/speaker/HECTRR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/FP3GN8/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/FP3GN8/", "attachments": []}, {"guid": "a0e85272-1b25-5c36-9489-11de289585d6", "code": "XFGGN7", "id": 2316, "logo": null, "date": "2019-09-14T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2316-lies-damned-lies-and-statistics", "url": "https://pretalx.com/pyconuk-2019/talk/XFGGN7/", "title": "Lies, Damned Lies, and Statistics", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We are exposed to the use of statistics in everyday life, but it is quite easy to fall victim of statistical fallacies. This talk will help you recognise these fallacies, so you can protect yourself from the misuse of statistics, ultimately becoming a better citizen.", "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.\r\n\r\nThe 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.\r\n\r\nAgenda: \r\n- Correlation and causation \r\n- Simpson\u2019s Paradox \r\n- Sampling bias and polluted surveys \r\n- Data visualisation gone wild \r\n- Statistical significance (and Data dredging a.k.a. p-hacking)", "recording_license": "", "do_not_record": false, "persons": [{"code": "UQCFX7", "name": "Marco Bonzanini", "avatar": "https://pretalx.com/media/avatars/UQCFX7_AQIjLAz.webp", "biography": "Marco is a Data Science Consultant and Trainer based in London, co-organiser of the [PyData London meetup](https://www.meetup.com/PyData-London-Meetup/) and chairperson of the [PyData London conference](https://pydata.org/london2019/) 2018-19.", "public_name": "Marco Bonzanini", "guid": "8573b341-9370-59a9-89eb-5bf7104cf298", "url": "https://pretalx.com/pyconuk-2019/speaker/UQCFX7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/XFGGN7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/XFGGN7/", "attachments": [{"title": "Slides", "url": "/media/pyconuk-2019/submissions/XFGGN7/resources/presentation-wide.pdf", "type": "related"}]}, {"guid": "9794cb66-b29b-5195-93c7-5242c1f1f67a", "code": "DQ3SQX", "id": 2554, "logo": null, "date": "2019-09-14T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2554-young-coders-show-and-tell", "url": "https://pretalx.com/pyconuk-2019/talk/DQ3SQX/", "title": "**Young Coders** Show and Tell", "subtitle": "", "track": "Young Coders", "type": "Something Else", "language": "en", "abstract": "Children's Day Show and Tell", "description": "Children's Day Show and Tell", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQDLDB", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/MQDLDB_Y3STrAi.webp", "biography": "Ben Nuttall is Programme Technical Manager at the Raspberry Pi Foundation in Cambridge, UK. Ben is a developer and maker who loves all things open source, and he leads the GPIO Zero and piwheels projects.", "public_name": "Ben Nuttall", "guid": "482e9f7f-80a4-5211-962e-e76669e15456", "url": "https://pretalx.com/pyconuk-2019/speaker/MQDLDB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/DQ3SQX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/DQ3SQX/", "attachments": []}, {"guid": "bd7ba1ae-4d7f-5697-b380-7456d1b55aa3", "code": "XXTKMY", "id": 2553, "logo": null, "date": "2019-09-14T17:00:00+01:00", "start": "17:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2553-ukpa-agm", "url": "https://pretalx.com/pyconuk-2019/talk/XXTKMY/", "title": "UKPA AGM", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Annual General Meeting of  the UK Python Association", "description": "Annual General Meeting of  the UK Python Association", "recording_license": "", "do_not_record": false, "persons": [{"code": "AM3BCT", "name": "Owen Campbell", "avatar": "https://pretalx.com/media/avatars/AM3BCT_923MnV5.webp", "biography": "Owen is a Chartered Engineer with 20 years' experience as a freelance consultant.\r\n\r\nHe's a founding trustee of the UK Python Association and a member of the 2019 PyCon UK organisation team.", "public_name": "Owen Campbell", "guid": "632c522f-e849-57e3-84a8-99349c5e6233", "url": "https://pretalx.com/pyconuk-2019/speaker/AM3BCT/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/XXTKMY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/XXTKMY/", "attachments": []}, {"guid": "69e08c9b-885b-5e3e-9052-d9ffe35fbb66", "code": "BLJDUS", "id": 2552, "logo": null, "date": "2019-09-14T17:30:00+01:00", "start": "17:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2552-lightning-talks", "url": "https://pretalx.com/pyconuk-2019/talk/BLJDUS/", "title": "Lightning talks", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Lightning talks", "description": "Short talks", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQSK8D", "name": "Mark Smith", "avatar": "https://pretalx.com/media/avatars/HQSK8D_oYSHdxI.webp", "biography": "My name is Mark Smith, although I'm known as Judy2k online. I'm a Developer Advocate for Nexmo. I love writing stupid Python code in an attempt to really understand how Python works. When I'm not doing this, you'll find me crocheting, building custom keyboards, or designing models for 3D printing.", "public_name": "Mark Smith", "guid": "1d392c5d-21c4-5b0c-8eb4-e0038abfd547", "url": "https://pretalx.com/pyconuk-2019/speaker/HQSK8D/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/BLJDUS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/BLJDUS/", "attachments": []}], "Ferrier Hall": [{"guid": "9f17b821-3122-5146-8261-d49e418464e5", "code": "GQV8WF", "id": 2705, "logo": null, "date": "2019-09-14T09:30:00+01:00", "start": "09:30", "duration": "00:45", "room": "Ferrier Hall", "slug": "pyconuk-2019-2705-young-coders-will-it-rain-in-cardiff-this-weekend", "url": "https://pretalx.com/pyconuk-2019/talk/GQV8WF/", "title": "**Young Coders** Will it rain in Cardiff this weekend?", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "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": "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "U3YM7N", "name": "Spencer Organ", "avatar": "https://pretalx.com/media/avatars/U3YM7N_mqT4us9.webp", "biography": "Im a 44 year old educator from the West Midlands and have been teaching Science and KS3 Computer Science since 1997. In addition to teaching I consider myself a digital maker and content creator. I am a certified Raspberry Pi Educator, speaker and workshop facilitator.", "public_name": "Spencer Organ", "guid": "cd79e8bf-d846-5796-acc9-53aea80b0542", "url": "https://pretalx.com/pyconuk-2019/speaker/U3YM7N/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GQV8WF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GQV8WF/", "attachments": []}, {"guid": "3c613f93-f0e1-5368-8dda-764e52136b9f", "code": "8MY7VN", "id": 2706, "logo": null, "date": "2019-09-14T10:15:00+01:00", "start": "10:15", "duration": "00:45", "room": "Ferrier Hall", "slug": "pyconuk-2019-2706-young-coders-mission-to-mars-rover-microbit-radio-control", "url": "https://pretalx.com/pyconuk-2019/talk/8MY7VN/", "title": "**Young Coders** Mission to Mars Rover Microbit Radio Control", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "This workshop utilises rovers used in Software Cornwall's work experience.", "description": "This workshop utilises rovers used in Software Cornwall's work experience. Instead of Arduinos the rovers have a Microbit hacked in utilising the radio capabilities. Students, in pairs, have to program another Microbit as the radio control for the rover. Basic code is given to get the rover moving forwards but they have to create the rest of the other movements themselves.\r\nThe exercise takes about 45 minutes depending on experience. Those students that finish early are asked to help those who haven't completed.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WGR3TH", "name": "Robert Wiltshire", "avatar": null, "biography": null, "public_name": "Robert Wiltshire", "guid": "12628779-98a0-5b7a-a5e6-6285ffbeda6d", "url": "https://pretalx.com/pyconuk-2019/speaker/WGR3TH/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8MY7VN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8MY7VN/", "attachments": []}, {"guid": "ff013c02-620e-5055-b63a-5e13f65afaa5", "code": "HTHFFU", "id": 2707, "logo": null, "date": "2019-09-14T11:30:00+01:00", "start": "11:30", "duration": "00:45", "room": "Ferrier Hall", "slug": "pyconuk-2019-2707-young-coders-geometries-python-turtle", "url": "https://pretalx.com/pyconuk-2019/talk/HTHFFU/", "title": "**Young Coders** Geometries & Python Turtle", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Understanding geometry and python can be learnt alongside.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YHR9VR", "name": "Aaron Balan", "avatar": null, "biography": null, "public_name": "Aaron Balan", "guid": "ab6604c6-ca3e-599c-b58e-2c84a8ebd531", "url": "https://pretalx.com/pyconuk-2019/speaker/YHR9VR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HTHFFU/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HTHFFU/", "attachments": []}, {"guid": "bc2b3e70-fd16-5bde-959c-233a32753767", "code": "GTG7ZV", "id": 2708, "logo": null, "date": "2019-09-14T12:15:00+01:00", "start": "12:15", "duration": "00:45", "room": "Ferrier Hall", "slug": "pyconuk-2019-2708-young-coders-astro-pi-mission-zero", "url": "https://pretalx.com/pyconuk-2019/talk/GTG7ZV/", "title": "**Young Coders** Astro Pi Mission Zero", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Write a program for the Raspberry Pi Sense HAT and send it to space!", "description": "Write a program for the Raspberry Pi Sense HAT and send it to space as part of the Astro Pi Mission Zero challenge", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQDLDB", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/MQDLDB_Y3STrAi.webp", "biography": "Ben Nuttall is Programme Technical Manager at the Raspberry Pi Foundation in Cambridge, UK. Ben is a developer and maker who loves all things open source, and he leads the GPIO Zero and piwheels projects.", "public_name": "Ben Nuttall", "guid": "482e9f7f-80a4-5211-962e-e76669e15456", "url": "https://pretalx.com/pyconuk-2019/speaker/MQDLDB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GTG7ZV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GTG7ZV/", "attachments": []}, {"guid": "e624d18f-edd3-5638-9328-db15f0453195", "code": "83RZK8", "id": 2709, "logo": null, "date": "2019-09-14T14:00:00+01:00", "start": "14:00", "duration": "01:00", "room": "Ferrier Hall", "slug": "pyconuk-2019-2709-young-coders-gettin-gui-with-it", "url": "https://pretalx.com/pyconuk-2019/talk/83RZK8/", "title": "**Young Coders** Gettin' GUI with it", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Creating graphical user interfaces (GUI) with Python. Connect up LEDs and Buttons to your GUI and make it control your world.", "description": "Creating graphical user interfaces (GUI) with Python. Connect up LEDs and Buttons to your GUI and make it control your world.", "recording_license": "", "do_not_record": false, "persons": [{"code": "TFFFBZ", "name": "Martin O'Hanlon", "avatar": "https://pretalx.com/media/avatars/TFFFBZ_6lJGcm5.png", "biography": "Martin works in the learning team at Pi where he creates projects, learning resources and online courses. As a child he wanted to be either a computer scientist, astronaut or snowboard instructor.", "public_name": "Martin O'Hanlon", "guid": "428208b2-5d5e-5e6e-b9fd-71e6f95b7983", "url": "https://pretalx.com/pyconuk-2019/speaker/TFFFBZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/83RZK8/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/83RZK8/", "attachments": []}, {"guid": "ae91f416-518f-5e59-a02d-fcfad68ce69f", "code": "9RJLBP", "id": 2710, "logo": null, "date": "2019-09-14T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2710-young-coders-make-stuff-with-junk", "url": "https://pretalx.com/pyconuk-2019/talk/9RJLBP/", "title": "**Young Coders** Make stuff with junk", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Take what you learned and use it to build a project out of electronics, arts and craft", "description": "Take what you learned and use it to build a project out of electronics, arts and craft", "recording_license": "", "do_not_record": false, "persons": [{"code": "XXD8J7", "name": "Laura Sach", "avatar": null, "biography": null, "public_name": "Laura Sach", "guid": "9fd305ec-17f0-56c9-82a2-2ada795a7cd2", "url": "https://pretalx.com/pyconuk-2019/speaker/XXD8J7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/9RJLBP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/9RJLBP/", "attachments": []}, {"guid": "2db72ff9-090f-546f-a3d4-339331897721", "code": "JKUELM", "id": 2711, "logo": null, "date": "2019-09-14T15:30:00+01:00", "start": "15:30", "duration": "01:00", "room": "Ferrier Hall", "slug": "pyconuk-2019-2711-young-coders-presentation-prep", "url": "https://pretalx.com/pyconuk-2019/talk/JKUELM/", "title": "**Young Coders** Presentation prep", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Get ready to present your project on the main stage", "description": "Get ready to present your project on the main stage", "recording_license": "", "do_not_record": false, "persons": [{"code": "XXD8J7", "name": "Laura Sach", "avatar": null, "biography": null, "public_name": "Laura Sach", "guid": "9fd305ec-17f0-56c9-82a2-2ada795a7cd2", "url": "https://pretalx.com/pyconuk-2019/speaker/XXD8J7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JKUELM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JKUELM/", "attachments": []}], "Marble Hall": [{"guid": "44922b98-2a73-58fb-adce-ffdbd0a1adec", "code": "APBVXQ", "id": 2446, "logo": null, "date": "2019-09-14T13:15:00+01:00", "start": "13:15", "duration": "00:15", "room": "Marble Hall", "slug": "pyconuk-2019-2446-a-tour-of-data-viz-in-python", "url": "https://pretalx.com/pyconuk-2019/talk/APBVXQ/", "title": "A tour of data viz in Python", "subtitle": "", "track": null, "type": "Poster", "language": "en", "abstract": "On my poster I\u2019ll do a tour of libraries available for visualising data using Python by showing and discussing examples.", "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. \r\n\r\nLuckily many libraries are available for us to visualise data in Python! I\u2019ll introduce the main ones and discuss which are more suited for what usage. \r\n\r\nThe links to the code examples will be shared and the examples will be demoed on my laptop.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SYBQX7", "name": "\u00c9l\u00e9onore Mayola", "avatar": "https://pretalx.com/media/avatars/SYBQX7_qhJJDeq.webp", "biography": "I\u2019m a data scientist and developer with a background in Biomedical research.\r\n\r\nI currently freelance and work with a team of data journalists (Journalism++) in Stockholm, Sweden. \r\nI\u2019m a co-organiser at PyLadies Stockholm and a co-founder at EMMS Tech as well as a former organiser of PyLadies London.", "public_name": "\u00c9l\u00e9onore Mayola", "guid": "4b277ffc-651d-5636-808a-b8ab98fd4afb", "url": "https://pretalx.com/pyconuk-2019/speaker/SYBQX7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/APBVXQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/APBVXQ/", "attachments": []}, {"guid": "e460ee4f-fb4f-5f21-92dc-2e19aa5df0bd", "code": "BZGLBP", "id": 2403, "logo": null, "date": "2019-09-14T13:30:00+01:00", "start": "13:30", "duration": "00:15", "room": "Marble Hall", "slug": "pyconuk-2019-2403-nexus-constructor-visualising-the-configurations-of-neutron-experiments-with-qt-for-python", "url": "https://pretalx.com/pyconuk-2019/talk/BZGLBP/", "title": "NeXus Constructor: Visualising the Configurations of Neutron Experiments with Qt for Python", "subtitle": "", "track": null, "type": "Poster", "language": "en", "abstract": "The NeXus data format provides a way of describing neutron, muon and x-ray experiments. In this poster we illustrate how our NeXus Constructor tool utilises Python and Qt in order to allow programming-unsavvy researchers to visualise and modify the contents of these files with minimal assistance.", "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.\r\n\r\nNeutron 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.\r\n\r\nHistorically, 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.  \r\n\r\nTo 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\u2019s main purpose is to make editing the description of the geometry of an instrument straightforward for the scientists that use and maintain them.  \r\n\r\nTo create the NeXus Constructor, we have used [h5py](https://www.h5py.org/) and [Qt for Python](https://wiki.qt.io/Qt_for_Python). Our tool is making use of a 3D view in the recently added Qt3D module to display the instrument components with their geometry information. Using Qt's high level tools we are able to transform components in the 3D view and update them in real-time.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SNTDF9", "name": "Jack Harper", "avatar": null, "biography": "Software developer for the ISIS department of Science and Technology Facilities Council", "public_name": "Jack Harper", "guid": "7063884a-6b93-5f1f-8748-47280efb7b9f", "url": "https://pretalx.com/pyconuk-2019/speaker/SNTDF9/"}, {"code": "LNJLVP", "name": "Dolica Akello-Egwel", "avatar": null, "biography": null, "public_name": "Dolica Akello-Egwel", "guid": "980d97fd-dead-50c5-8d74-88d5e3685ca9", "url": "https://pretalx.com/pyconuk-2019/speaker/LNJLVP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/BZGLBP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/BZGLBP/", "attachments": []}, {"guid": "34e83903-6e33-5658-a847-45c2768649c8", "code": "G8FU93", "id": 2055, "logo": null, "date": "2019-09-14T13:45:00+01:00", "start": "13:45", "duration": "00:15", "room": "Marble Hall", "slug": "pyconuk-2019-2055-active-learning-with-bayesian-nonnegative-matrix-factorization-for-recommender-systems", "url": "https://pretalx.com/pyconuk-2019/talk/G8FU93/", "title": "Active Learning with Bayesian Nonnegative Matrix Factorization for Recommender Systems", "subtitle": "", "track": null, "type": "Poster", "language": "en", "abstract": "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.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FQKE3S", "name": "G\u00f6n\u00fcl Ayc\u0131", "avatar": "https://pretalx.com/media/avatars/FQKE3S_mp3Jus7.webp", "biography": "I am [G\u00f6n\u00fcl](https://www.linkedin.com/in/g%C3%B6n%C3%BCl-ayc%C4%B1/), a full-time Ph.D. student in the Computer Engineering Department at [Bogazici University](http://www.boun.edu.tr/en_US), Istanbul, Turkey. My current research interest is Privacy in Online Social Networks. <br>\r\nMy undergraduate degree was in Mathematics. I learned to use Python almost three years ago and now, I totally use Python programming language. <br>\r\nI am one of the co-organizer and mentor of Django Girls Istanbul. I am also a member of [PyIstanbul](https://www.meetup.com/python-istanbul/) for Python users in Istanbul and [inzva (the sanctuary of Turkish Hackerspace community)](https://inzva.com/).", "public_name": "G\u00f6n\u00fcl Ayc\u0131", "guid": "03ca20af-06d8-50c0-9535-236429575a84", "url": "https://pretalx.com/pyconuk-2019/speaker/FQKE3S/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/G8FU93/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/G8FU93/", "attachments": []}], "Lower Hall": [{"guid": "22e3d0c0-b5ad-5dfd-b0c7-fbcb26643a10", "code": "TVYVSN", "id": 1857, "logo": null, "date": "2019-09-14T09:30:00+01:00", "start": "09:30", "duration": "06:30", "room": "Lower Hall", "slug": "pyconuk-2019-1857-django-girls-workshop", "url": "https://pretalx.com/pyconuk-2019/talk/TVYVSN/", "title": "Django Girls Workshop", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "To run a Django Girls workshop in line with the Django Girls organiser's manual for up to 60 women/non-binary attendees apply online via our website (https://djangogirls.org/pyconuk/).", "description": "To run the workshop Saturday 14th September 9.30-16.30.\r\n\r\nThe 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.\r\n \r\nDjango Girls is a crash course that is aimed at total beginners. You don\u2019t 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\u2019re able to follow our English tutorial. You will work through the tutorial in a small group of three attendees and one coach so you\u2019ll be able to do it at your own pace. If you\u2019d like to join us, please apply below.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NYRRVL", "name": "Ann Barr", "avatar": "https://pretalx.com/media/avatars/NYRRVL_SCbDdnZ.webp", "biography": "PyCon UK organising volunteer and organiser of past two PyCon UK Django Girls workshops.", "public_name": "Ann Barr", "guid": "42e07c09-2c91-5e0e-b583-f94fd42e3a8e", "url": "https://pretalx.com/pyconuk-2019/speaker/NYRRVL/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TVYVSN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TVYVSN/", "attachments": []}, {"guid": "701d4b97-94ef-5e74-aad0-fc6273540a1f", "code": "P7KB7D", "id": 2737, "logo": null, "date": "2019-09-14T19:30:00+01:00", "start": "19:30", "duration": "02:30", "room": "Lower Hall", "slug": "pyconuk-2019-2737-conference-dinner", "url": "https://pretalx.com/pyconuk-2019/talk/P7KB7D/", "title": "Conference Dinner", "subtitle": "", "track": "Social", "type": "Something Else", "language": "en", "abstract": "Conference Dinner", "description": "**Menu**\r\nMostly Lavender Ice Cream", "recording_license": "", "do_not_record": false, "persons": [{"code": "7SBZQ8", "name": "Daniele Procida", "avatar": null, "biography": null, "public_name": "Daniele Procida", "guid": "88994cc6-a01f-5906-978e-d37c760f887c", "url": "https://pretalx.com/pyconuk-2019/speaker/7SBZQ8/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/P7KB7D/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/P7KB7D/", "attachments": []}], "Room A": [{"guid": "7edb99c7-26f0-51a4-bc84-a1ead8ba4d99", "code": "GFJSPF", "id": 2257, "logo": null, "date": "2019-09-14T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room A", "slug": "pyconuk-2019-2257-get-to-grips-with-pandas-and-scikit-learn", "url": "https://pretalx.com/pyconuk-2019/talk/GFJSPF/", "title": "Get to grips with pandas and scikit-learn", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "This session will be an exposition of data wrangling with pandas and machine learning with scikit-learn. It will cover a classification project, from importing the data to evaluating model performance.  \r\n This hands-on workshop is aimed at a \"beginner\" Data Science audience (but small experience in python is preferable).", "description": "We hear a lot about Machine Learning, but it\u2019s 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.\r\n\r\n**Part one:** ***Grab your spade and dig in!***\r\n<br/>Pandas is a popular tool that will allow us to efficiently conduct Exploratory Data Analysis. After loading the data set we\u2019ll use in this workshop, we\u2019ll have a first look at it with Pandas and start cleaning it. We\u2019ll also use visualisation to gain more insights and continue to prepare our data.\r\n\r\n**Part two:** ***Where the Ma(th)gic happen.***\r\n<br/>In this part, we\u2019ll introduce the powerful scikit-learn library. We'll split the data into training and testing sets and start pre-processing. Then we\u2019ll choose, tune and train a Machine Learning model and finally evaluate its performance using cross-validation and a confusion matrix.\r\n\r\nDuring 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.\r\n\r\nTo 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZKYAY9", "name": "Sandrine Pataut", "avatar": "https://pretalx.com/media/avatars/ZKYAY9_HPeS736.webp", "biography": "From Paris import Sandrine as SP\r\n\r\nSP is a French Mathematician turned Data Scientist. She is currently working in financial services and is active in the London tech scene as an open source community leader.\r\n\r\nTags: Machine Learning, Basketball, Cooking, Numpy, Badminton, Family, Pandas, Cat, Travelling, scikit-learn,  Friends, Discovering, Data Science, Gardening, Python, Comics", "public_name": "Sandrine Pataut", "guid": "59665dbd-2ee2-5cc0-82f8-13e7b2d6c2e3", "url": "https://pretalx.com/pyconuk-2019/speaker/ZKYAY9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GFJSPF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GFJSPF/", "attachments": []}], "Room B": [{"guid": "e8494119-08fa-56f7-8659-7a21faae2813", "code": "ZCP9L3", "id": 2684, "logo": null, "date": "2019-09-14T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room B", "slug": "pyconuk-2019-2684-implementing-a-simple-api-using-django-rest-framework", "url": "https://pretalx.com/pyconuk-2019/talk/ZCP9L3/", "title": "Implementing a simple API using Django REST Framework", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Django REST Framework \u201c\u2026 is a powerful and flexible toolkit for building Web APIs.\u201d This workshop will give you a overview so you can get started your own APIs, and you can explore just how powerful it is.", "description": "This workshop will take delegates through the simple creation of an API and a few examples.\r\n\r\nFor the best experience, attendees should bring  a laptop and be prepared to install a few things inside a virtual machine. (It's OK if that's not possible as I will be showing everything from my own laptop too).\r\n\r\nIt would also be very useful to install everything in advance of the workshop. Full instructions are at: https://github.com/devangmehta123/pycon-uk-2019/", "recording_license": "", "do_not_record": false, "persons": [{"code": "CNVUXU", "name": "Miles Cook", "avatar": null, "biography": null, "public_name": "Miles Cook", "guid": "5f686480-cc4d-560c-8fa6-ba5b80d59ab4", "url": "https://pretalx.com/pyconuk-2019/speaker/CNVUXU/"}, {"code": "VTBLBD", "name": "Devang Mehta", "avatar": null, "biography": null, "public_name": "Devang Mehta", "guid": "402d1f11-a686-5480-9771-511439833127", "url": "https://pretalx.com/pyconuk-2019/speaker/VTBLBD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/ZCP9L3/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/ZCP9L3/", "attachments": []}], "Room C": [{"guid": "1a651c6d-4f5c-57ac-8fbb-728dc9164a0d", "code": "YSHHNQ", "id": 1826, "logo": null, "date": "2019-09-14T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room C", "slug": "pyconuk-2019-1826-let-s-make-a-talk", "url": "https://pretalx.com/pyconuk-2019/talk/YSHHNQ/", "title": "Let's make a talk", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "How do you write a talk? In this practical workshop you will find out. You\u2019ll receive some guidance, techniques and principles, but there will also be time to prepare a lightning talk and present it.", "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. \r\n\r\nNo 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).\r\n\r\nNumbers 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CEENHC", "name": "Gail Ollis", "avatar": null, "biography": "I have been presenting at conferences since 2007. It has also become part of my day job, as a lecturer in programming and cyberpsychology at Bournemouth University. But that\u2019s my accidental second career. I was a commercial software developer for two decades and became so obsessed with the human aspects of the job that I took a psychology degree to investigate further. In 2019 I\u2019ve finally completed my PhD in psychology of software development and I\u2019m planning to apply my special interdisciplinary outlook to cyber security research. I can\u2019t see myself ever becoming a full-time researcher, though. Working with students can sometimes be frustrating and I have never worked longer hours, but it\u2019s the most fulfilling work I have ever done.", "public_name": "Gail Ollis", "guid": "3b2f901e-0f5e-540b-a641-88e6169e9c65", "url": "https://pretalx.com/pyconuk-2019/speaker/CEENHC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/YSHHNQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/YSHHNQ/", "attachments": []}], "Room D": [{"guid": "3cda4a45-a3a3-5347-b4d6-e296362a7165", "code": "AVNA8S", "id": 2317, "logo": null, "date": "2019-09-14T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2317-unleashing-python-from-the-computer-science-curriculum", "url": "https://pretalx.com/pyconuk-2019/talk/AVNA8S/", "title": "Unleashing Python from the Computer Science Curriculum", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Python is very well established in Secondary School Computer Science lessons but it also has a wider appeal across the whole curriculum.  Join my journey in introducing Python across different areas of a secondary school curriculum and how it helped a school with no IT and CS teachers.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "U3YM7N", "name": "Spencer Organ", "avatar": "https://pretalx.com/media/avatars/U3YM7N_mqT4us9.webp", "biography": "Im a 44 year old educator from the West Midlands and have been teaching Science and KS3 Computer Science since 1997. In addition to teaching I consider myself a digital maker and content creator. I am a certified Raspberry Pi Educator, speaker and workshop facilitator.", "public_name": "Spencer Organ", "guid": "cd79e8bf-d846-5796-acc9-53aea80b0542", "url": "https://pretalx.com/pyconuk-2019/speaker/U3YM7N/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/AVNA8S/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/AVNA8S/", "attachments": []}, {"guid": "f66b801d-fd1d-589c-850f-de9b1d77a152", "code": "TYLR3C", "id": 1862, "logo": null, "date": "2019-09-14T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1862-one-weird-trick-for-improving-your-communication", "url": "https://pretalx.com/pyconuk-2019/talk/TYLR3C/", "title": "One weird trick for improving your communication", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The best advice I've been given on technical communication is \"understand what you want to achieve before you think about what you want to say\". I'm going to discuss why I think this is important, with examples ranging from planning meetings to writing documentation.", "description": "\"Before you think about what you're going to say or write, think about what you want the people listening or reading to do as a result.\" This sounds obvious, but I've found that keeping it in mind can make a big difference to how well I communicate in a technical or business setting.\r\n\r\nI'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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9SCXBR", "name": "David Sim", "avatar": null, "biography": "Based in Cambridge, Pythonista for about a decade. Professionally interested in natural language and data mining, unprofessionally interested in experimental music, beer and mountains. Head of R&D at Transversal.", "public_name": "David Sim", "guid": "e0b15fc0-96ed-5a7b-94ca-b91876e44e34", "url": "https://pretalx.com/pyconuk-2019/speaker/9SCXBR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TYLR3C/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TYLR3C/", "attachments": []}, {"guid": "4b5056d5-5635-54a0-9d8f-3f33a00b5eb3", "code": "GMXKPX", "id": 1865, "logo": null, "date": "2019-09-14T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1865-extracting-tabular-data-from-pdfs-with-camelot-excalibur", "url": "https://pretalx.com/pyconuk-2019/talk/GMXKPX/", "title": "Extracting tabular data from PDFs with Camelot & Excalibur", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Extracting tables from PDFs is hard. The Portable Document Format was not designed for tabular data. Sadly, a lot of open data is shared as PDFs and getting tables out for analysis is a pain. Camelot and Excalibur can help you extract tabular data fr", "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't work.\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NR33XU", "name": "Vinayak Mehta", "avatar": "https://pretalx.com/media/avatars/NR33XU_Fd8QCAt.webp", "biography": "Data Engineer at Grofers. Open-source Human. Worked on Camelot and Excalibur: PDF Table Extraction for Humans.", "public_name": "Vinayak Mehta", "guid": "7661f4dd-a0d2-5b65-aaec-d0cb5458090f", "url": "https://pretalx.com/pyconuk-2019/speaker/NR33XU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GMXKPX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GMXKPX/", "attachments": []}, {"guid": "e6863e16-6a58-5c88-88e0-a38b807dbf77", "code": "JDAAJF", "id": 1856, "logo": null, "date": "2019-09-14T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1856-rapid-prototyping-scalable-python-services-using-aws-chalice", "url": "https://pretalx.com/pyconuk-2019/talk/JDAAJF/", "title": "Rapid prototyping scalable Python services using AWS Chalice", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Looking to deploy Python code on AWS Lambda? Getting started with serverless can be a bit daunting at times with creating the functions, configuring them, configuring api gateways and what not. In this talk you will learn about the magic of rapid serverless api development using AWS Chalice.", "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.\r\n\r\nWe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JSCSDC", "name": "Mashhood Rastgar", "avatar": "https://pretalx.com/media/avatars/JSCSDC_a86P42i.webp", "biography": "Mashhood leads the engineering team at Sastaticket.pk. He enjoys building awesome products and working with open source technologies. He is also an active developer community member, is currently serving as a Google Developer Expert. He is often seen speaking at conferences and mentoring different startups.", "public_name": "Mashhood Rastgar", "guid": "6dd78d0e-6373-5419-9071-31da36793d79", "url": "https://pretalx.com/pyconuk-2019/speaker/JSCSDC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JDAAJF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JDAAJF/", "attachments": []}, {"guid": "cdc51ec1-a377-5a37-9e27-f4d2ac3e3495", "code": "TKXRBD", "id": 2254, "logo": null, "date": "2019-09-14T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2254-dev-on-wheels-the-ultimate-computer-game", "url": "https://pretalx.com/pyconuk-2019/talk/TKXRBD/", "title": "Dev On Wheels: The Ultimate Computer Game", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Come and witness the live action video game of a graduate software developer\u2019s journey. But not just any graduate. This is Tom, dev_on_wheels!", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XZEULF", "name": "Tom Easterbrook", "avatar": null, "biography": "Tom is a recently graduated Computing student at Bournemouth University in South West England. Despite being born with Quadriplegic Cerebral Palsy he has used his love and passion for technology to propel himself forward, grounded in a firm interest of current affairs and the world around him. Graduating is the end of Episode 1. If you would like to be part of the story in Episode 2, reach out.", "public_name": "Tom Easterbrook", "guid": "3c85d49e-de73-561b-a355-cf962a9e2bdb", "url": "https://pretalx.com/pyconuk-2019/speaker/XZEULF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TKXRBD/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TKXRBD/", "attachments": []}, {"guid": "82fb8a49-b471-556d-8b5a-aee12a1f7538", "code": "QKHKHF", "id": 1973, "logo": null, "date": "2019-09-14T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1973-writing-beautiful-python-an-overview-of-pep-8", "url": "https://pretalx.com/pyconuk-2019/talk/QKHKHF/", "title": "Writing Beautiful Python. An overview of PEP 8", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Writing code that looks nice can be hard. Why do we need nice looking code anyway? In this talk I'll give you a tour of PEP 8 (The Style Guide for Python Code) and show you how you can force yourself to write code that looks nice.", "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 'tour' I will show you examples of both well formatted and badly formatted code and will explain the difference and why they are important.\r\n\r\nIt can be hard to memorise all these 'rules'. Luckily for you, you don't have to. There are two types of tools I will go over that help you write nice looking code:\r\n* A Linter will notify you of badly formatted code.\r\n* An auto formatter will reformat you code on save to comply with the standards).\r\n\r\nAt the end of the this talk you will have to tools and knowledge necessarily to go forth and right beautiful code.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JLGFCW", "name": "Luke Spademan", "avatar": "https://pretalx.com/media/avatars/JLGFCW_WcSHx7K.webp", "biography": "Luke Spademan is currently studying A Level Maths, Further Maths, Computer Science, and Physics. When he isn't doing school work he enjoys writing python programs and playing with opensource applications.", "public_name": "Luke Spademan", "guid": "e6baad5c-5c83-5735-8f1c-3b392276d6fe", "url": "https://pretalx.com/pyconuk-2019/speaker/JLGFCW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QKHKHF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QKHKHF/", "attachments": []}], "Room I": [{"guid": "c9beeb55-3f2f-52d9-b776-08d9e667eab0", "code": "7PVCMM", "id": 2712, "logo": null, "date": "2019-09-14T09:30:00+01:00", "start": "09:30", "duration": "00:45", "room": "Room I", "slug": "pyconuk-2019-2712-young-coders-anagrams-python", "url": "https://pretalx.com/pyconuk-2019/talk/7PVCMM/", "title": "**Young Coders** Anagrams & Python", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "We will be making anagrams and playing with our friends as a game", "description": "In this workshop we will be making anagrams and playing with our friends as a game.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KSZALY", "name": "Avni Balan", "avatar": null, "biography": null, "public_name": "Avni Balan", "guid": "849981a9-c2a8-5a3c-801b-39d894774a62", "url": "https://pretalx.com/pyconuk-2019/speaker/KSZALY/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/7PVCMM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/7PVCMM/", "attachments": []}, {"guid": "9203c468-9e97-5fd8-9ea9-c2c8638fbc86", "code": "SVMLU9", "id": 2713, "logo": null, "date": "2019-09-14T11:30:00+01:00", "start": "11:30", "duration": "00:45", "room": "Room I", "slug": "pyconuk-2019-2713-young-coders-cracking-codes-with-python", "url": "https://pretalx.com/pyconuk-2019/talk/SVMLU9/", "title": "**Young Coders** Cracking Codes with Python", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "What is encryption? How does it work?", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JLGFCW", "name": "Luke Spademan", "avatar": "https://pretalx.com/media/avatars/JLGFCW_WcSHx7K.webp", "biography": "Luke Spademan is currently studying A Level Maths, Further Maths, Computer Science, and Physics. When he isn't doing school work he enjoys writing python programs and playing with opensource applications.", "public_name": "Luke Spademan", "guid": "e6baad5c-5c83-5735-8f1c-3b392276d6fe", "url": "https://pretalx.com/pyconuk-2019/speaker/JLGFCW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SVMLU9/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SVMLU9/", "attachments": []}, {"guid": "f375024c-5180-5d59-b857-d0d8a1744750", "code": "TEXVBX", "id": 2714, "logo": null, "date": "2019-09-14T12:15:00+01:00", "start": "12:15", "duration": "00:45", "room": "Room I", "slug": "pyconuk-2019-2714-young-coders-mutating-monsters", "url": "https://pretalx.com/pyconuk-2019/talk/TEXVBX/", "title": "**Young Coders** Mutating Monsters", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Making a pokemon style monster generator and evolver using turtle", "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)\r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HBRMNC", "name": "Patrick Barry", "avatar": null, "biography": null, "public_name": "Patrick Barry", "guid": "4a0b4144-3e62-5dd2-85eb-e2a980319bd0", "url": "https://pretalx.com/pyconuk-2019/speaker/HBRMNC/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/TEXVBX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/TEXVBX/", "attachments": []}, {"guid": "bf5869c7-664e-5b56-b385-c9c7295ec078", "code": "L7DUNN", "id": 2715, "logo": null, "date": "2019-09-14T14:00:00+01:00", "start": "14:00", "duration": "02:30", "room": "Room I", "slug": "pyconuk-2019-2715-young-coders-hackathon-presentation-prep", "url": "https://pretalx.com/pyconuk-2019/talk/L7DUNN/", "title": "**Young Coders** Hackathon & presentation prep", "subtitle": "", "track": "Young Coders", "type": "Workshop", "language": "en", "abstract": "Hackathon for intermediate track of the children's day", "description": "Take what you've learned and use it to build a project for the presentations on the main track", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQDLDB", "name": "Ben Nuttall", "avatar": "https://pretalx.com/media/avatars/MQDLDB_Y3STrAi.webp", "biography": "Ben Nuttall is Programme Technical Manager at the Raspberry Pi Foundation in Cambridge, UK. Ben is a developer and maker who loves all things open source, and he leads the GPIO Zero and piwheels projects.", "public_name": "Ben Nuttall", "guid": "482e9f7f-80a4-5211-962e-e76669e15456", "url": "https://pretalx.com/pyconuk-2019/speaker/MQDLDB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/L7DUNN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/L7DUNN/", "attachments": []}], "Room L": [{"guid": "a0d7acf4-a3b9-5f58-b4b3-e7cfae0029e0", "code": "F8HXLK", "id": 2448, "logo": null, "date": "2019-09-14T14:30:00+01:00", "start": "14:30", "duration": "01:30", "room": "Room L", "slug": "pyconuk-2019-2448-tdd-in-python-with-pytest", "url": "https://pretalx.com/pyconuk-2019/talk/F8HXLK/", "title": "TDD in Python with pytest", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Test-Driven Development is a methodology that can greatly improve the quality of your software. I strongly believe that developing software without following as much as possible a test-driven approach leads to massive delays and greater issues when requirements change (always, that is).", "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.\r\n\r\nThe workshop is specifically tailored for beginners, as I will review the basic rules of TDD and implement a very simple application.\r\n\r\nI successfully run the workshop at London PyLadies Meetup, PyCon UK, PyCon IE, and Pycon IT\r\n\r\nAttendees, please clone the repository at https://github.com/lgiordani/pytest_workshop and follow the instructions. Please do it before the workshop.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7BS3PU", "name": "Leonardo Giordani", "avatar": "https://pretalx.com/media/avatars/7BS3PU_JK6QVEx.webp", "biography": "Born in 1977, I started coding in April 1987 on a Sinclair ZX Spectrum. I then moved to MS-DOS PCs and in 1996 I started using Linux and became interested in operating system internals. I love architectures, algorithms, mathematics and cryptography.\r\n\r\nI currently work as an infrastructure engineer and Python developer.\r\n\r\nFrom 2013 I blog some technical thoughts at www.thedigitalcatonline.com\r\n\r\nIn 2018 I published the free book \u201cClean Architectures in Python\u201d http://bit.ly/getpycabook", "public_name": "Leonardo Giordani", "guid": "4786ba65-3acb-506e-984d-97637abd7490", "url": "https://pretalx.com/pyconuk-2019/speaker/7BS3PU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/F8HXLK/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/F8HXLK/", "attachments": []}]}}, {"index": 3, "date": "2019-09-15", "day_start": "2019-09-15T04:00:00+01:00", "day_end": "2019-09-16T03:59:00+01:00", "rooms": {"Assembly Room": [{"guid": "0d9dd215-caf8-5014-a2ad-275373c530f3", "code": "JDPPNG", "id": 2547, "logo": null, "date": "2019-09-15T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2547-introduction", "url": "https://pretalx.com/pyconuk-2019/talk/JDPPNG/", "title": "Introduction", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Sunday Introduction", "description": "Sunday Introduction", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JDPPNG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JDPPNG/", "attachments": []}, {"guid": "603acc18-8e0e-5d91-8816-85e520267805", "code": "NUSLBQ", "id": 2352, "logo": null, "date": "2019-09-15T09:30:00+01:00", "start": "09:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2352-do-we-have-a-diversity-problem-in-python-community", "url": "https://pretalx.com/pyconuk-2019/talk/NUSLBQ/", "title": "Do we have a diversity problem in Python community?", "subtitle": "", "track": "Keynote", "type": "Talk", "language": "en", "abstract": "Python community cares about diversity. So do we still have a problem in, especially gender, diversity? We will look at some data and see if there\u2019s a true problem, discuss what the problem may be and how to fix it.", "description": "The diversity statement quoted as follows: \u201cThe 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.\u201d\r\n\r\nDiversity, 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.\r\n\r\nFirst, 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.\r\n\r\nThis talk is for all that who cares about diversity in our community.\r\n\r\n[1] https://reshamas.github.io/why-women-are-flourishing-in-r-community-but-lagging-in-python/", "recording_license": "", "do_not_record": false, "persons": [{"code": "8EGVC9", "name": "Cheuk Ting Ho", "avatar": "https://pretalx.com/media/avatars/8EGVC9_LbezfQb.webp", "biography": "Cheuk constantly contributes to the community by giving AI and deep learning workshops, organize sprints for open source projects, volunteering at Datakind for charities. At the same time contribute to open source projects including Pandas, Keras, Scikit-learn and Dateutil. Cheuk has also been a guest speaker at University of Oxford and Queen Mary University of London, and various conferences including PyData in Amsterdam and Berlin, PyCon in Israel, UK and Germany, EuroPython and PyLondinium. Believing in gender equality, Cheuk is currently a co-organizer of AI club for Gender Minorities to support Tech Diversity and Inclusion.", "public_name": "Cheuk Ting Ho", "guid": "716d26c2-170b-5a5e-86e5-9d4cecf3bbdd", "url": "https://pretalx.com/pyconuk-2019/speaker/8EGVC9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/NUSLBQ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/NUSLBQ/", "attachments": []}, {"guid": "921c92e2-4f36-5492-aa1c-3b57fd309f23", "code": "HDW7HZ", "id": 1881, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1881-choosing-the-right-deep-learning-framework-a-deep-learning-approach", "url": "https://pretalx.com/pyconuk-2019/talk/HDW7HZ/", "title": "Choosing the right Deep Learning Framework: A Deep Learning Approach", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will demonstrate how deep learning can be used to identify a deep learning framework such as TensorFlow or PyTorch that would best help a developer build out deep neural networks based on how they write and the problems they solve.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "B9D39R", "name": "Nick Acosta", "avatar": "https://pretalx.com/media/avatars/B9D39R_MxL1uRx.webp", "biography": "Before becoming an AI Advocate at IBM, Nick studied computer science at Purdue University and the University of Southern California, and was a high performance computing consultant for Hewlett-Packard in Grenoble, France. He now specializes in machine learning and utilizes it to understand machine learning developers of various communities, startups, and enterprises in order to help them succeed on IBM's data science platform. He has a strong interest in data science education and open source software.", "public_name": "Nick Acosta", "guid": "c8a1c33d-ed07-5e07-be01-fa3a4215a114", "url": "https://pretalx.com/pyconuk-2019/speaker/B9D39R/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HDW7HZ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HDW7HZ/", "attachments": []}, {"guid": "2beadaf1-f67c-548b-bdec-bf31fa5ad432", "code": "QTEQF3", "id": 1873, "logo": null, "date": "2019-09-15T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1873-don-t-cross-the-streams-an-introduction-to-virtual-environments", "url": "https://pretalx.com/pyconuk-2019/talk/QTEQF3/", "title": "Don't Cross The Streams: An Introduction to Virtual Environments", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Let's learn about virtual environments - why it's useful, how it works, getting started.", "description": "What are virtual environments? How can they help us when developing in Python? In this session we'll find out how to get started and then dig down into how virtualenv works under the hood. There will also be a whistle-stop tour of the various options for package management in Python, and a chance to learn from my mistakes!\r\n\r\nThis session is mainly intended for people who haven't used a virtual environment before or those who want to learn  about how they work.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JNFPPU", "name": "Hannah Hazi", "avatar": "https://pretalx.com/media/avatars/JNFPPU_5sk2oiA.webp", "biography": "I've had the chance to be involved in all sorts of interesting projects across my career, from cutting edge medical technologies to dispensing soup to printing with chocolate, detergent and cheese! I currently work at Stratasys, helping develop software for our industrial 3D printers. I love to meet people getting started with Python - it's my first love and always the language I return to. If you want to get me talking, tell me about something you'd like to 3D print.", "public_name": "Hannah Hazi", "guid": "156fb128-4675-53c3-ab56-4f08188c9e16", "url": "https://pretalx.com/pyconuk-2019/speaker/JNFPPU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QTEQF3/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QTEQF3/", "attachments": []}, {"guid": "1964001e-193c-5f64-8d25-05d51ffbe515", "code": "Z8DH3F", "id": 2379, "logo": null, "date": "2019-09-15T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2379-what-does-pep-517-mean-for-packaging", "url": "https://pretalx.com/pyconuk-2019/talk/Z8DH3F/", "title": "What does PEP 517 mean for packaging?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Packaging Python code is a thorny area, but it's getting better.\r\nPEP 517 is a dry, technical specification for an important step:\r\nallowing packagers to choose alternatives to setuptools.\r\nI'll talk about how projects can take advantage of this, and the\r\nfun of writing your own packaging tools.", "description": "Packaging has never been an easy topic in Python. PEP 517 was\r\nhammered out over several hundred emails - sometimes heated - on\r\nthe distutils-sig mailing list. The goal: to dethrone distutils and\r\nsetuptools as the single blessed way of making Python packages.\r\n\r\nThe precise, formal language of a specification isn't exactly made\r\nfor bedtime reading. So in this talk, I'll unpack what it means for\r\npeople who want to put their code on PyPI. I was part of the discussion\r\nto create the proposal, I've written a PEP 517 backend and a\r\nlibrary for frontends, so I've seen the gory details.\r\n\r\nI'll set the context of what there was before PEP 517, and why\r\npeople wanted something better. Then I'll describe how the PEP\r\ncame about, and how it envisages different tools working together.\r\n\r\nI'll show practical examples of how you can take advantage of PEP 517\r\nenabled tools like Flit or enscons for packaging your own project,\r\nand some of the difficulties existing projects might encounter in the\r\ntransition. Finally, I'll briefly go into how and why you might write\r\nyour own tools around PEP 517: either backends to build packages, or\r\nfrontends to use those packages.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3CLNKX", "name": "Thomas Kluyver", "avatar": null, "biography": "Thomas is a data analysis software engineer at European XFEL, an international research facility near Hamburg. He uses Python extensively to slice and dice data, and in particular to build tools for other people to do the slicing and dicing. He also contributes to open-source projects around a variety of themes, ranging from scientific computing to Python 3 migration to packaging.", "public_name": "Thomas Kluyver", "guid": "b9815007-4d02-5d6c-bf04-7d7da2a9808c", "url": "https://pretalx.com/pyconuk-2019/speaker/3CLNKX/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/Z8DH3F/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/Z8DH3F/", "attachments": []}, {"guid": "c2868624-1dca-5664-b1e6-99e701ed298f", "code": "WGMV7M", "id": 2442, "logo": null, "date": "2019-09-15T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2442-machine-learning-on-the-edge", "url": "https://pretalx.com/pyconuk-2019/talk/WGMV7M/", "title": "Machine Learning on the Edge", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "An introduction to the Jetson Nano Developer kit by a data scientist", "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.\r\n\r\nAs an industrial engineer and data scientist with limited \"small factor\" computing experience, I'll explain how I got on getting it set up, with my review of the spec and features of this device. Once all running and with the correct dependencies, we will move on to how to start training and inference with deep learning models in Python and both Tensorflow and PyTorch, followed by use of Jetson.GPIO to interface with micro sensing units.\r\n\r\nAfter 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. \r\n\r\nI'll conclude with a summary on this type of \"edge machine learning\" device- and my view on whether this new distributed computing paradigm will represent a threat to cloud-based machine learning in the medium to long term.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WFTMBD", "name": "Frank Kelly", "avatar": "https://pretalx.com/media/avatars/WFTMBD_v08pHK2.webp", "biography": "Frank is a data scientist, recovering engineer and Python user working on smart city related projects including most recently, road network condition modelling and eco-friendly car journey planning. He manages a team of data scientists based in Amsterdam whilst working remotely from Bristol where he also helps run the local PyData meet up.", "public_name": "Frank Kelly", "guid": "c40dd9bd-ca35-5183-9465-6d2f1585e88f", "url": "https://pretalx.com/pyconuk-2019/speaker/WFTMBD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WGMV7M/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WGMV7M/", "attachments": []}, {"guid": "34be0e2b-ef65-5ff5-a7b6-193766a9259c", "code": "W9VFE3", "id": 1999, "logo": null, "date": "2019-09-15T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-1999-research-software-engineers-who-what-why-and-a-django-api", "url": "https://pretalx.com/pyconuk-2019/talk/W9VFE3/", "title": "Research Software Engineers: Who, What, Why and a Django API", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will describe my experience of leaving academic research to become a Research Software Engineer (RSE).  As an example of the kind of work RSEs do, I\u2019ll describe a recent project that used Django, a REST API and a mobile app built with Ionic.", "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! \r\n\r\nHaving moved into an RSE post just over a year ago, I\u2019ll briefly describe the up-downs and roundabouts that this career choice has led me on. I\u2019ll 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\u2019ll also describe how a project like this works as an RSE and how that may differ from academia and industry. \r\n\r\nHopefully 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "L8J3V9", "name": "Teri Forey", "avatar": "https://pretalx.com/media/avatars/L8J3V9_DnIvewv.webp", "biography": "After spending many years studying and then working as a genetics researchers I recently left academia for a Research Software Engineering post at the University of Leicester. I'm a self-taught programmer with the now terrifying job title of 'python specialist'.", "public_name": "Teri Forey", "guid": "4426a592-c904-53b0-afbd-2df45a85e6da", "url": "https://pretalx.com/pyconuk-2019/speaker/L8J3V9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/W9VFE3/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/W9VFE3/", "attachments": []}, {"guid": "5f5d08d4-461a-519b-9cba-e682615eb044", "code": "8QLRDA", "id": 2248, "logo": null, "date": "2019-09-15T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2248-automated-report-writing-using-data-from-a-relational-database", "url": "https://pretalx.com/pyconuk-2019/talk/8QLRDA/", "title": "Automated report writing using data from a relational database", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "As part of the Development Consent Order submission for large infrastructure (Highways scheme), a book of reference needs to be submitted. The user previously needed to export spreadsheets from a database and populate the document manually. We have automated this process on a jupyter notebook.", "description": "Introduction:\r\n\r\nThe 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.\r\n\r\nPart 1: Presentation of the problem.\r\n\r\nAs 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\r\n  parties and extract all information available.\r\n\r\nPart 2: Development.\r\n\r\n  The typical structure of this relational database will be presented.\r\n The 'query' consists of a .csv file containing the relevant Site IDs. A site ID can correspond to one plot of land with many buildings, multiple uses, and different owners and interested parties. As a result, we end up with a rather complex relational system through which we have to navigate. Using the site ID we join the tables connected to the initial table and we filter according to keywords. An example of this process will be presented.\r\n\r\n The process that we developed to loop through the site IDs and store the data to be saved in a document will be presented.\r\n  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.\r\n\r\nPart 3: What can go wrong?\r\n\r\nThis part details the difficulties we encountered in compiling all this information in 5 word documents (Parts 1- 5). Problems encountered include:\r\n  1) How to insert in the same cell, different rows from a different Dataframe.\r\n  2) Typos, ampersands, spaces, and null values.\r\n  3) Bold and italics in the same sentence (with entries from different\r\n  Dataframes).\r\n\r\n The methods we used to solve these problems will be presented.\r\n\r\nPart 4: The future.\r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7ABSLG", "name": "Dani Papamaximou", "avatar": "https://pretalx.com/media/avatars/7ABSLG_VSfEZj6.webp", "biography": "Dani combines her mathematical competency and programming tools to streamline repetitive engineering tasks and minimising iterations in order to produce efficient and safe designs/solutions. Data -if interpreted correctly- can provide answers leading to feasible solutions while the outliers can highlight potential risks and errors in engineering projects. Dani's goal is to bridge the programming and engineering disciplines and develop tools to improve decision making at early design stages.", "public_name": "Dani Papamaximou", "guid": "26993ee4-dab7-5d21-a057-431613b8df8d", "url": "https://pretalx.com/pyconuk-2019/speaker/7ABSLG/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8QLRDA/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8QLRDA/", "attachments": []}, {"guid": "05cba725-88cf-552a-957f-431f5ae976a7", "code": "8MASEP", "id": 2435, "logo": null, "date": "2019-09-15T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2435-is-django-too-complicated", "url": "https://pretalx.com/pyconuk-2019/talk/8MASEP/", "title": "Is Django too Complicated?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "When you start a new project, typically the choice between a big framework like Django and a microframework like Flask comes up. This talk will show you that the difference is not as big as one might think and that Django is suitable for projects of all sizes.", "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.\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WV3US9", "name": "Daniel Hepper", "avatar": "https://pretalx.com/media/avatars/WV3US9_NEBVUwe.webp", "biography": "Daniel Hepper is an independent software developer, consultant, and trainer with a focus on web development with Python and Django. He has a degree in Computer Science from the University of Karlsruhe and has been writing software professionally for over 15 years. His clients range from self-funded startups to international corporations. He enjoys sharing his experiences and helping developers level up their software development skills.", "public_name": "Daniel Hepper", "guid": "bf7d856c-fdd2-5da7-9bad-bb605386c68c", "url": "https://pretalx.com/pyconuk-2019/speaker/WV3US9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8MASEP/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8MASEP/", "attachments": []}, {"guid": "3160b8e2-991b-532c-82a1-ea1160a23033", "code": "ZHSZYB", "id": 2396, "logo": null, "date": "2019-09-15T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2396-so-you-want-to-be-a-manager", "url": "https://pretalx.com/pyconuk-2019/talk/ZHSZYB/", "title": "So you want to be a manager", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Many developers will eventually make the choice of becoming a manager, the goal of this talk to help them make that decision.", "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.\r\nThis 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.\r\nMany developers will eventually make the choice of becoming a manager, the goal of this talk to help them make that decision.", "recording_license": "", "do_not_record": false, "persons": [{"code": "A7ZZEW", "name": "Gil Goncalves", "avatar": "https://pretalx.com/media/avatars/A7ZZEW_PPDvxlA.webp", "biography": "Gil is the backend lead at Unmade, he loves Python and people", "public_name": "Gil Goncalves", "guid": "71fdbb19-76dd-58b7-9130-740cf3bca6df", "url": "https://pretalx.com/pyconuk-2019/speaker/A7ZZEW/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/ZHSZYB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/ZHSZYB/", "attachments": []}, {"guid": "8efe3515-20df-5bcb-ba2e-e544b835e75e", "code": "L3HSWT", "id": 2409, "logo": null, "date": "2019-09-15T17:00:00+01:00", "start": "17:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2409-what-do-travel-food-health-websites-have-in-common-auditing-websites-apps-for-privacy-leaks", "url": "https://pretalx.com/pyconuk-2019/talk/L3HSWT/", "title": "What do travel, food & health websites have in common? Auditing websites & apps for privacy leaks", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Organizations with digital products that lack even the most basic data security practices are living in a utopian world where people leave their safe open and never expect a burglar to walk in.", "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.\r\n\r\nAs an example:\r\n\r\nIt is a common practice to load fonts from third-party CDNs. But is it necessary for the website to share sensitive data like users' booking IDs in order to load the fonts from a CDN?\r\n\r\nThese data leaks are bad in itself, but in the GDPR-era, companies could face huge penalties for such accidental leaks.\r\n\r\nAt 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.\r\n\r\nIt 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.\r\n\r\nEverything is done locally, and no data is sent out to our servers. (Actually they don't even exist)\r\n\r\n\r\nInsights that the Babel presents:\r\n* Hostnames that application connects to.\r\n* Classifies them as First-Party and Third-parties used by the application.\r\n* Using data from open-source project WhoTracksMe to map third-party domains to company names.\r\n* Local search interface to look for PII and how it is being shared with different companies.\r\n* URLs being shared with third-parties via network headers / query parameters.\r\n* URLs that contain sensitive data, are they behind a login page or not.\r\n* Values like EmailID etc being shared with third-parties.\r\n* Configuration to flag, pre-defined list of values, hostname that are not supposed to be transferred.\r\n* 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.\r\n* Adoption of basic security headers via observatory.mozilla.org\r\n\r\nTakeaways for the audience:\r\n* Common pitfalls while using third-parties and how apps end up accidentally leaking sensitive data.\r\n* How can they audit partners before implementing them in production.\r\n* How they can audit their own apps and bring in privacy checks as part of their software life cycle.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CFRHM7", "name": "Konark Modi", "avatar": "https://pretalx.com/media/avatars/CFRHM7_rtIYdQb.webp", "biography": "Konark works as a Tech lead with Cliqz GmbH \u2013 developing privacy-focused search engine and browser technologies under the Cliqz and Ghostery brands. Helping Cliqz GmbH in making privacy a mainstream topic, Konark works on projects ranging across Privacy by design, Anonymous Data collection like Human Web, Human-web proxy network, Anti-Tracking etc.\r\n\r\nPrior to Cliqz, Konark was working with one of the largest e-commerce website in India(Makemytrip.com) in data platform and security team, solving interesting challenges related to data warehousing, business intelligence and data security.\r\n\r\nAs an active member of the community, he loves contributing and getting involved at various fronts in whatever way he can - be it through organizing conferences for like-minded people or just disrupting social causes through technology.\r\n\r\nHis recent personal projects, in an endeavor to find and help organizations fix vulnerabilities have spanned across web browsers, health trackers, Government services, travel mobile apps to name a few.\r\n\r\nKonark has been a speaker and presenter at numerous international conferences like Privacy Week, MRMCD, Apache Big Data, Berlin BuzzWords to name a few.\r\n\r\nTwitter: @konarkmodi", "public_name": "Konark Modi", "guid": "7662dc06-5841-52fa-aa35-9b942fddb3c5", "url": "https://pretalx.com/pyconuk-2019/speaker/CFRHM7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/L3HSWT/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/L3HSWT/", "attachments": []}, {"guid": "09715c70-dec4-5186-b1a3-af8393deb900", "code": "VBHLRB", "id": 2550, "logo": null, "date": "2019-09-15T17:30:00+01:00", "start": "17:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2550-lightning-talks", "url": "https://pretalx.com/pyconuk-2019/talk/VBHLRB/", "title": "Lightning talks", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Lightning talks", "description": "Short talks", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQSK8D", "name": "Mark Smith", "avatar": "https://pretalx.com/media/avatars/HQSK8D_oYSHdxI.webp", "biography": "My name is Mark Smith, although I'm known as Judy2k online. I'm a Developer Advocate for Nexmo. I love writing stupid Python code in an attempt to really understand how Python works. When I'm not doing this, you'll find me crocheting, building custom keyboards, or designing models for 3D printing.", "public_name": "Mark Smith", "guid": "1d392c5d-21c4-5b0c-8eb4-e0038abfd547", "url": "https://pretalx.com/pyconuk-2019/speaker/HQSK8D/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/VBHLRB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/VBHLRB/", "attachments": []}], "Ferrier Hall": [{"guid": "d065fe58-5e49-59e5-81aa-fe878ca40a7e", "code": "PDQSZS", "id": 2320, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2320-writing-micro-services-in-python-sure-but-which-framework", "url": "https://pretalx.com/pyconuk-2019/talk/PDQSZS/", "title": "Writing micro-services in Python... Sure! But which framework?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "When googling \"python micro-service framework\", there are plenty of \"Hello world\" examples out there for **many** (micro-)frameworks.\r\n\r\nBut how do they scale in the \"real\" world? How can I connect framework X to a database or what do you need to do to use OAuth2 with framework Y?", "description": "This talk was inspired by Aaron Bassett's EuroPython 2018 talk \"Hello to the World in 8 Web Frameworks micro, batteries included & async\". It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to \"real\" life use-cases.\r\n\r\nIn order to learn about that, I went through several steps:\r\n- I decided on 4 micro-services I wanted to build and that were somewhat representative of services you might need in a production setting\r\n- 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)\r\n- I implemented those micro-services using several frameworks\r\n- I deployed them with production settings on a Raspberry Pi cluster\r\n- I tested the performance of each architecture\r\n\r\nThis 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 ;) \r\n\r\n**Spoiler**: I will not end the talk with \"choose framework Z\"", "recording_license": "", "do_not_record": false, "persons": [{"code": "QN7YGR", "name": "Emma Delescolle", "avatar": "https://pretalx.com/media/avatars/QN7YGR_hHm4wUy.webp", "biography": "Long-time pythonista, Django fan, co-maintainer and co-author of DRF-Schema-Adapter. Recently interested by Python running on different hardware.\r\n\r\nI am from Belgium and have been involved in open-source at different levels for a bit more than a decade now.\r\n\r\nOne of the things I enjoy the most is sharing knowledge with others. And this is why I enjoy writing tutorials as well as giving talks and workshops.", "public_name": "Emma Delescolle", "guid": "67c5d47f-59b8-5e67-843f-896eca790506", "url": "https://pretalx.com/pyconuk-2019/speaker/QN7YGR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/PDQSZS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/PDQSZS/", "attachments": []}, {"guid": "7f95704b-4d7d-5536-a755-230190670ce5", "code": "FG97WN", "id": 2285, "logo": null, "date": "2019-09-15T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2285-mutability-for-good-not-evil", "url": "https://pretalx.com/pyconuk-2019/talk/FG97WN/", "title": "Mutability for good not evil", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Mutability is a common GOTCHA for new pythonistas. So where is it a good idea to use mutability? And more importantly where is it a bad idea?", "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.\r\n\r\nLet's see if we can make use of mutability as a tool to create features instead of bugs.\r\n\r\nThis 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.\r\n\r\nI expect to be disagreed with.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XD9E8Q", "name": "Nick Sarbicki", "avatar": "https://pretalx.com/media/avatars/XD9E8Q_1EuYcio.webp", "biography": "I'm a consultant Python developer helping teams to solve a variety of problems ranging from fighting fake news with ML to scaling sites for Google.\r\n\r\nContributor to Open Source.\r\n\r\nBlogger at [nick.sarbicki.com](https://nick.sarbicki.com).\r\n\r\nAdmin of the Python Slack workspace ([pyslackers.com](https://pyslackers.com)).", "public_name": "Nick Sarbicki", "guid": "4e083bb4-53fa-5c62-a610-1a7908111dad", "url": "https://pretalx.com/pyconuk-2019/speaker/XD9E8Q/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/FG97WN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/FG97WN/", "attachments": []}, {"guid": "09f8339c-218d-5118-9b71-6e0b4c50ccb1", "code": "SH39DW", "id": 2418, "logo": null, "date": "2019-09-15T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2418-stranger-things-in-twitterverse", "url": "https://pretalx.com/pyconuk-2019/talk/SH39DW/", "title": "Stranger things in Twitterverse", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Uncovering Twitter troll armies by monitoring and analyzing millions of tweets using Python to identify suspicious entities that intended to skew online conversations and spread misinformation.", "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.\r\n\r\nIn our talk, based on the analysis, we would like to share the following:\r\n* Identification of trending topics along with for-and-against Hashtags surrounding a given topic.\r\n* Classification of users based on the likelihood of suspicious activity\r\n* Monitoring of above users\u2019 accounts to understand their individual and collective impact and implication on steering of the online conversation\r\n* Tools used to manage, collect and analyze the dataset:\r\n        * Python3\r\n        * Pandas\r\n        * Postgres\r\n        * Jupyter\r\n        * Bokeh etc.\r\n\r\nBased on our leanings we have created a framework with Python ecosystem that monitors tweets in real-time and comes with the following features:\r\n* An Interface that easily configures keywords/hashtags to be monitored\r\n* Classifies users in real-time and monitors their activity\r\n* Identifies popular hashtags/keywords and feeds them back for monitoring their usage.\r\n* Dashboard that displays the following insights:\r\n* Number of unique tweets\r\n* Percentage tweets from suspicious users.\r\n* Volume of tweets from suspicious users, contributing to popular hashtags.\r\n* Flagging the compromised hashtags.\r\n* Top Users\r\n* Top Hashtags\r\n* Top Keyword\r\n\r\nTakeaways for the audience\r\n* Creating awareness about open twitter data and its research possibilities.\r\n* A quick overview of how bots are all-pervasive and impacting online conversations.\r\n* Provide a self-service tool built entirely in Python eco-system that empowers users and researchers to verify Twitter conversations\u2019 authenticity.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CFRHM7", "name": "Konark Modi", "avatar": "https://pretalx.com/media/avatars/CFRHM7_rtIYdQb.webp", "biography": "Konark works as a Tech lead with Cliqz GmbH \u2013 developing privacy-focused search engine and browser technologies under the Cliqz and Ghostery brands. Helping Cliqz GmbH in making privacy a mainstream topic, Konark works on projects ranging across Privacy by design, Anonymous Data collection like Human Web, Human-web proxy network, Anti-Tracking etc.\r\n\r\nPrior to Cliqz, Konark was working with one of the largest e-commerce website in India(Makemytrip.com) in data platform and security team, solving interesting challenges related to data warehousing, business intelligence and data security.\r\n\r\nAs an active member of the community, he loves contributing and getting involved at various fronts in whatever way he can - be it through organizing conferences for like-minded people or just disrupting social causes through technology.\r\n\r\nHis recent personal projects, in an endeavor to find and help organizations fix vulnerabilities have spanned across web browsers, health trackers, Government services, travel mobile apps to name a few.\r\n\r\nKonark has been a speaker and presenter at numerous international conferences like Privacy Week, MRMCD, Apache Big Data, Berlin BuzzWords to name a few.\r\n\r\nTwitter: @konarkmodi", "public_name": "Konark Modi", "guid": "7662dc06-5841-52fa-aa35-9b942fddb3c5", "url": "https://pretalx.com/pyconuk-2019/speaker/CFRHM7/"}, {"code": "YXBB37", "name": "Pallavi", "avatar": "https://pretalx.com/media/avatars/YXBB37_RlxMcad.webp", "biography": "As a Digital Product enthusiast, I have worked in different roles in the Product Management domain with expertise in optimization of eCommerce conversion funnels. At present, I work as a Product Analyst with one of Europe's largest e-commerce based mobility solution, FlixBus.\r\n\r\nOutside of office, it is the ever-so interesting intersection of humanities with technology that continues to inspire me. I like to focus on social media and its impact on shaping political landscapes.\r\n\r\nTwitter: @Pi_modi", "public_name": "Pallavi", "guid": "e55067f7-9da7-54ce-a324-bba159c03945", "url": "https://pretalx.com/pyconuk-2019/speaker/YXBB37/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SH39DW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SH39DW/", "attachments": []}, {"guid": "6ff0d9c7-ac58-5128-964b-ac16c7095414", "code": "ZHKDSD", "id": 2350, "logo": null, "date": "2019-09-15T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2350-i-am-telling-you-3-things-about-chatbot-so-you-don-t-have-to-learn-it-the-hard-way", "url": "https://pretalx.com/pyconuk-2019/talk/ZHKDSD/", "title": "I am telling you 3 things about Chatbot (so you don't have to learn it the hard way)", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Now we can talk to our gadgets as if it\u2019s a real human. It makes you wonder when you chat with the \u201ccustomer service\u201d online, is that a real person or a robot on the other side? I built a chatbot, and here\u2019s 3 things that I discovered.", "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?\r\n\r\nThe first thing I am going to tell you, is what are the main components of a chatbot. It\u2019s 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.\r\n\r\nThe 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 \u201cintelligent\u201d of the bot. We can also see how we could make adjustment in training to suit different purpose.\r\n\r\nThe 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.\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8EGVC9", "name": "Cheuk Ting Ho", "avatar": "https://pretalx.com/media/avatars/8EGVC9_LbezfQb.webp", "biography": "Cheuk constantly contributes to the community by giving AI and deep learning workshops, organize sprints for open source projects, volunteering at Datakind for charities. At the same time contribute to open source projects including Pandas, Keras, Scikit-learn and Dateutil. Cheuk has also been a guest speaker at University of Oxford and Queen Mary University of London, and various conferences including PyData in Amsterdam and Berlin, PyCon in Israel, UK and Germany, EuroPython and PyLondinium. Believing in gender equality, Cheuk is currently a co-organizer of AI club for Gender Minorities to support Tech Diversity and Inclusion.", "public_name": "Cheuk Ting Ho", "guid": "716d26c2-170b-5a5e-86e5-9d4cecf3bbdd", "url": "https://pretalx.com/pyconuk-2019/speaker/8EGVC9/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/ZHKDSD/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/ZHKDSD/", "attachments": []}, {"guid": "15879f81-6d80-5977-a2c6-079885c1bc61", "code": "QXFDWJ", "id": 2404, "logo": null, "date": "2019-09-15T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2404-blue-dot-its-a-bluetooth-dot", "url": "https://pretalx.com/pyconuk-2019/talk/QXFDWJ/", "title": "Blue Dot - its a bluetooth dot", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Blue Dot is a bluetooth remote and Python library to allow anyone (from new learner up) to remove the wires from their Python project.", "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's aim was to make this as simple as pressing a button.\r\n\r\nThe talk will cover:\r\n- the objectives, what the project was trying to achieve\r\n- the constraints, it had to be easy for everyone to install and use\r\n- the technical implementation (including a super simple, reliable Bluetooth comms API)\r\n- the design, opening my mind to the versatility of a big blue dot\r\n- why a simple design is a good design\r\n- the future, what comes next, more dots, BLE, iOS", "recording_license": "", "do_not_record": false, "persons": [{"code": "TFFFBZ", "name": "Martin O'Hanlon", "avatar": "https://pretalx.com/media/avatars/TFFFBZ_6lJGcm5.png", "biography": "Martin works in the learning team at Pi where he creates projects, learning resources and online courses. As a child he wanted to be either a computer scientist, astronaut or snowboard instructor.", "public_name": "Martin O'Hanlon", "guid": "428208b2-5d5e-5e6e-b9fd-71e6f95b7983", "url": "https://pretalx.com/pyconuk-2019/speaker/TFFFBZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QXFDWJ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QXFDWJ/", "attachments": []}, {"guid": "a12f7448-47d3-577d-aa08-534822d79370", "code": "F9KAQM", "id": 2332, "logo": null, "date": "2019-09-15T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2332-import-as-an-antipattern-demystifying-dependency-injection-in-modern-python", "url": "https://pretalx.com/pyconuk-2019/talk/F9KAQM/", "title": "Import as an antipattern - Demystifying Dependency Injection in modern Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Dependency Injection in Python is commonly seen as over-engineering, but I think this is a myth. DI is simple and powerful and can yield great benefits to the overall quality of your code.", "description": "Dependency Injection (DI) is a technique quite common in other programming languages that has never quite fitted into the Python programmer's mindset. Usually disregarded as over-engineering and complex, most of its alleged flaws have little to do with the underlying concepts but more with implementation details of large scale frameworks that obscure its core principles.\r\n\r\nIn my experience DI is simple and powerful and can greatly improve our design making our code is easier to test, extend and maintain.\r\n\r\nIn 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.\r\n\r\nAlong 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.\r\n\r\nI 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.\r\n\r\nWith 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GEFUKA", "name": "Yeray D\u00edaz D\u00edaz", "avatar": "https://pretalx.com/media/avatars/GEFUKA_uqMNqtd.webp", "biography": "I\u2019m a full stack software engineer based in London, UK. I work as a freelancer helping companies develop maintainable and scalable projects.\r\n\r\nI code primarily in Python and Javascript and have experience in Ruby, Objective-C, or C#, but most of all I love clean code.\r\n\r\nI\u2019m a moderator and contributor on PyPI.org, co-organizer of the London Python Meetup and also like to write about code, usually articles that help people get started on certain technologies or practices that I\u2019ve struggled with or am passionate about.", "public_name": "Yeray D\u00edaz D\u00edaz", "guid": "48036d8f-c7df-5fee-bbee-a18dc557a31f", "url": "https://pretalx.com/pyconuk-2019/speaker/GEFUKA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/F9KAQM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/F9KAQM/", "attachments": []}, {"guid": "184adb4f-e36a-5bf0-8b17-d0e7c750899d", "code": "G93RFU", "id": 2423, "logo": null, "date": "2019-09-15T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2423-here-s-your-mistake", "url": "https://pretalx.com/pyconuk-2019/talk/G93RFU/", "title": "Here's Your Mistake...", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Lessons learned from teaching Python; or why learning to program is surprisingly hard, even with a language as simple as Python.", "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't figure out.  Perhaps surprisingly, these hard concepts also include basic syntax.  And in contrast to Python's simplicity, it offers very little help if you actually made a mistake.\r\n\r\nAs 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UCQ3RB", "name": "Tobias Kohn", "avatar": "https://pretalx.com/media/avatars/UCQ3RB_jvgXFMc.webp", "biography": "Tobias Kohn is currently studying Python as part of his research at the University of Cambridge.  He has been working with Python ever since he started teaching programming at high school over ten years ago.  His insights into the students' troubles with learning Python led to a PhD, several scientific publications, and a new programming environment with improved error messages.  After finishing his PhD, he worked in a machine learning group at the University of Oxford, bevore joining the compilers and computer architecture group at Cambridge.  He is a regular speaker on the subject of teaching Python at various workshops and conferences and co-author of a textbook on programming with Python.", "public_name": "Tobias Kohn", "guid": "0f7d04b5-d21b-5ad5-b87c-de44e7394844", "url": "https://pretalx.com/pyconuk-2019/speaker/UCQ3RB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/G93RFU/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/G93RFU/", "attachments": []}, {"guid": "fbb7e903-a9b1-5782-b388-9d123b413aa1", "code": "JSHZBX", "id": 2417, "logo": null, "date": "2019-09-15T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2417-a-tour-of-matplotlib-from-bar-charts-to-xkcd-style-plots", "url": "https://pretalx.com/pyconuk-2019/talk/JSHZBX/", "title": "A Tour of Matplotlib: From Bar Charts to XKCD-Style Plots", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This is a tour of Matplotlib that starts with a gentle introduction involving simple plots like bar charts, line graphs, etc. and ends with fun stuff like XKCD-style plots. During the talk, we will see the popular techniques to customize the plots with axes, grid, labels, legends, spines, etc.", "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.\r\n\r\nThis 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.\r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EDZFHA", "name": "Susam Pal", "avatar": "https://pretalx.com/media/avatars/EDZFHA_AMNpHcT.webp", "biography": "Susam Pal is a security software architect. He has 14 years of experience in information security with focus on developing PKI-based solutions, network security products, and cloud security services. He works at Walmart Labs, Bangalore, India. He has worked at RSA Security earlier. He has a keen interest in mathematics and open source software. He develops software in Python, Go, C, and C++. He has been a contributor to Apache Nutch, Open Sourced Vulnerability Database (OSVDB), the Web Application Security Consortium (WASC), Slimv, etc. He is also the author of a few open source projects like [TeXMe](https://github.com/susam/texme), [Uncap](https://github.com/susam/uncap), [MathB.in](http://mathb.in/), etc. Currently, he is leading an open source cloud security monitoring project named [Cloudmarker](https://github.com/cloudmarker/cloudmarker/) where one of his responsibilities is to develop and maintain a multiprocessing-based plugin framework.", "public_name": "Susam Pal", "guid": "1c2262c4-0086-5678-9702-23f7cd2abf57", "url": "https://pretalx.com/pyconuk-2019/speaker/EDZFHA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JSHZBX/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JSHZBX/", "attachments": []}, {"guid": "8b205669-b3e4-5c7f-9cf4-bbd6e6565642", "code": "MRPCLS", "id": 1966, "logo": null, "date": "2019-09-15T17:00:00+01:00", "start": "17:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-1966-fastapi-from-the-ground-up", "url": "https://pretalx.com/pyconuk-2019/talk/MRPCLS/", "title": "FastAPI from the ground up", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What comes next after Django and it's Django REST Framework? This talk shows how to build a simple REST API for a database from the ground up using FastAPI.", "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's DRF has been one of the standards for Python API servers but has the idiosyncrasies and drawbacks of Django, so what comes next?\r\n\r\nThis 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.\r\n\r\nTo get the most out of it, you will already know some Python. Experience with REST APIs and databases will help, but isn't required.", "recording_license": "", "do_not_record": false, "persons": [{"code": "TTHUMM", "name": "Chris Withers", "avatar": "https://pretalx.com/media/avatars/TTHUMM_BIhNl4B.webp", "biography": "I've been writing Python for around 20 years now, giving talks every so often and maintaining stuff for the community where I can. I have a big interest in automated testing of software and building simple, clean APIs between servers and clients.", "public_name": "Chris Withers", "guid": "1f263c53-1713-57b4-b4b1-d7fcbf88ce66", "url": "https://pretalx.com/pyconuk-2019/speaker/TTHUMM/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/MRPCLS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/MRPCLS/", "attachments": []}], "Marble Hall": [{"guid": "fb13ffa2-be5d-58de-80b4-4efa161a0edd", "code": "QKCCGF", "id": 2579, "logo": null, "date": "2019-09-15T13:00:00+01:00", "start": "13:00", "duration": "01:30", "room": "Marble Hall", "slug": "pyconuk-2019-2579-jobs-fair", "url": "https://pretalx.com/pyconuk-2019/talk/QKCCGF/", "title": "Jobs Fair", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Jobs Fair", "description": "Jobs Fair", "recording_license": "", "do_not_record": false, "persons": [{"code": "AM3BCT", "name": "Owen Campbell", "avatar": "https://pretalx.com/media/avatars/AM3BCT_923MnV5.webp", "biography": "Owen is a Chartered Engineer with 20 years' experience as a freelance consultant.\r\n\r\nHe's a founding trustee of the UK Python Association and a member of the 2019 PyCon UK organisation team.", "public_name": "Owen Campbell", "guid": "632c522f-e849-57e3-84a8-99349c5e6233", "url": "https://pretalx.com/pyconuk-2019/speaker/AM3BCT/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QKCCGF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QKCCGF/", "attachments": []}], "Lower Hall": [{"guid": "d63e9ea3-d222-55af-97a7-4df508fe2e4f", "code": "ZRTNDG", "id": 2742, "logo": null, "date": "2019-09-15T19:30:00+01:00", "start": "19:30", "duration": "02:30", "room": "Lower Hall", "slug": "pyconuk-2019-2742-code-dojo", "url": "https://pretalx.com/pyconuk-2019/talk/ZRTNDG/", "title": "Code Dojo", "subtitle": "", "track": "Social", "type": "Something Else", "language": "en", "abstract": "A Python Code Dojo, based on the long-running London Python Code Dojo series.", "description": "It's a very welcoming format where a coding challenge is set and everyone takes part as one of a team. It's definitely not a competition, and it definitely is a place where beginners or less experienced coders can join in.\r\n\r\nThe layout of the evening is as follows:\r\n\r\n    * We eat, drink and socialise\r\n    * We'll describe the evening's challenge.\r\n    * We break up into teams\r\n    * Each team decides how to approach the challenge, both from a technical and from a team perspective.\r\n    * There's about an hour and a half of coding mayhem\r\n    * Each team shows its code and results in front of everyone else: how far they got, what they tried, what worked, what didn't.\r\n    * We go home happy", "recording_license": "", "do_not_record": false, "persons": [{"code": "SF8WTS", "name": "Tom Viner", "avatar": null, "biography": null, "public_name": "Tom Viner", "guid": "967f786e-125d-552b-92d7-c58e0418d387", "url": "https://pretalx.com/pyconuk-2019/speaker/SF8WTS/"}, {"code": "DBZ9NK", "name": "Daniel Pope", "avatar": "https://pretalx.com/media/avatars/DBZ9NK_QnybzdU.webp", "biography": null, "public_name": "Daniel Pope", "guid": "76329bf7-533d-5d7f-8990-8ad1b9791fab", "url": "https://pretalx.com/pyconuk-2019/speaker/DBZ9NK/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/ZRTNDG/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/ZRTNDG/", "attachments": []}], "Room A": [{"guid": "252a45d6-3ba1-5a87-973b-65414d469fd6", "code": "JNDWKS", "id": 2431, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room A", "slug": "pyconuk-2019-2431-python-on-hardware-community-showcase-open-session", "url": "https://pretalx.com/pyconuk-2019/talk/JNDWKS/", "title": "Python on Hardware Community Showcase (Open Session)", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Do you have a hardware project you'd like to showcase?\r\n<br>\r\nFrom tiny to massive, everything and everyone are welcomed!\r\n\r\nAn open session for any conference attendee to bring their hardware projects.\r\n\r\nDon\u2019t have anything to show? Come around at anytime to check it out!", "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\u2019s really cool is all the amazing things the community makes.\r\n\r\nThis is YOUR chance to show the world what you have been working on!\r\n\r\nNo 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).\r\n\r\nSo, make a little bit of space in your suitcase and bring your Python on Hardware projects to Cardiff.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JCYYDP", "name": "Carlos Pereira Atencio", "avatar": "https://pretalx.com/media/avatars/JCYYDP_ELZVNDv.webp", "biography": "Software Engineer @ Micro:bit Educational Foundation", "public_name": "Carlos Pereira Atencio", "guid": "a025372e-ac11-51c2-ba7d-165c14aefba2", "url": "https://pretalx.com/pyconuk-2019/speaker/JCYYDP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JNDWKS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JNDWKS/", "attachments": []}], "Room B": [{"guid": "e66c7a38-c568-51a3-a3b8-d3395c0aa6bf", "code": "KA3UM9", "id": 2293, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room B", "slug": "pyconuk-2019-2293-but-i-never-wanted-to-do-devops-a-practical-hands-on-introduction-to-containerised-web-deployment-for-django-developers-who-would-rather-just-create-applications", "url": "https://pretalx.com/pyconuk-2019/talk/KA3UM9/", "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", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "A practical, hands-on introduction to containerised web deployment for Django developers who would rather just create applications.", "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*. \r\n\r\nModern 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.\r\n\r\nThe 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).\r\n\r\nWe'll cover programming topics, such as [how to use Django's abstraction layers in your code correctly](https://no-devops.readthedocs.io/en/latest/100-adapting-to-containerisation.html#you-can-t-store-media-files-the-way-you-once-did) so that you don't inadvertently constrain it to a single deployment environment. We'll also look at how to wire up services including Celery, Elastic Search and logging, making use of off-the-shelf options that mean the minimum work for you.\r\n\r\nAbove all, through the practical steps and exercises that all take the perspective of the Django application programmer as a starting point, we'll introduce and reinforce the [ways of thinking about your projects](https://no-devops.readthedocs.io/en/latest/75-ways-of-thinking.html) that must be internalised in order to succeed in containerised deployment.\r\n\r\nThe skills and concepts you'll learn are transferable; they'll expand your repertoire and become valuable components in your developer's toolbox.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/KA3UM9/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/KA3UM9/", "attachments": []}], "Room C": [{"guid": "b2ed3851-79d0-56d9-8731-0bf992aceab0", "code": "VPHQ8A", "id": 2335, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room C", "slug": "pyconuk-2019-2335-automating-web-applications-with-selenium-webdriver", "url": "https://pretalx.com/pyconuk-2019/talk/VPHQ8A/", "title": "Automating web applications with Selenium WebDriver", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Selenium WebDriver is a popular open-source cross-platform browser automation framework. This workshop will cover using Selenium to create automated tests, including topics such as object identification, adding verifications and synchronisation, parameterising a script, creating a page model", "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.\r\nThis will be a fast paced, hands-on workshop covering topics such as:\r\n- what is functional testing and why it is important\r\n- installing Selenium\r\n- using Selenium with different browsers\r\n- object identification- how to get Selenium to recognise objects in your application using various different methods\r\n- verifications- using a unit testing framework to add testing features to a Selenium script\r\n- synchronisation- getting Selenium and your application to work nicely together\r\n- parameterising a script- different techniques for varying the data used by your script\r\n- creating a page model- using stored object definitions to reduce the script maintenance required", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZGNGQU", "name": "Colin Bell", "avatar": null, "biography": "I am a trainer and software consultant specialising in automated testing.\r\nI have presented training on many different subjects, in many places around the world, to lots of different people at lots of different companies. I have worked for a couple of big companies, and now I am a freelancer.", "public_name": "Colin Bell", "guid": "058660d8-4770-5622-b976-fedd80bf8765", "url": "https://pretalx.com/pyconuk-2019/speaker/ZGNGQU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/VPHQ8A/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/VPHQ8A/", "attachments": []}], "Room D": [{"guid": "bcbf3c56-c667-596f-89f8-b615eaa9c8e6", "code": "SPY8JN", "id": 2385, "logo": null, "date": "2019-09-15T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2385-benefits-of-competition-based-libraries-for-beginners-in-python", "url": "https://pretalx.com/pyconuk-2019/talk/SPY8JN/", "title": "Benefits of competition based libraries for beginners in Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How can using a competition specific library enhance the learning of beginners in programming and what to keep in mind when developing one?", "description": "As in many fields, first impressions matter in programming too. A student's first encounter with programming will play a significant role in defining their relationship with it for the rest of their life. Will they fall in love with it or completely hate it? Having the right motivations can encourage the student to learn more while the tiny bits of frustrating errors can accumulate and push even the most eager beginner away. We believe that utilizing a competition specific library can act as a significant catalyzer in the enthusiastic beginner\u2019s process of learning Python. \r\n\r\nThe 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.  \r\n\r\nHaving 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\u2019 feedback, we saw that the presence of the library had facilitated their learning.\r\n\r\nIn this session, we will try to tackle questions such as \u201cDo libraries really benefit beginners while learning Python?\u201d, \u201cIs a competition based approach a good motivator for inexperienced programmers?\u201d, and \u201cWhat should a developer keep in mind while creating a library for beginners?\u201d. 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. \r\n\r\nYou can access the library from here\r\nhttps://github.com/HisarCS/PiWarsTurkey-Library-Folders\r\n\r\nOur website:\r\nhttps://piwars.hisarcs.com/", "recording_license": "", "do_not_record": false, "persons": [{"code": "JRZHFG", "name": "Sedat yalcin", "avatar": "https://pretalx.com/media/avatars/JRZHFG_tBnMulb.webp", "biography": null, "public_name": "Sedat yalcin", "guid": "5aee6f04-e2b3-564c-850c-9a35601decab", "url": "https://pretalx.com/pyconuk-2019/speaker/JRZHFG/"}, {"code": "XVNZ8X", "name": "Can Ersoz", "avatar": null, "biography": "I am a High School student going to 11th grade in Hisar High School, Istanbul Turkey. I have been enthusiastically developing projects in our school's computer science team and attending robotics competitions, hackathons and conferences all around the world.", "public_name": "Can Ersoz", "guid": "53697e13-becf-5b88-a8c0-a3d823e3fe45", "url": "https://pretalx.com/pyconuk-2019/speaker/XVNZ8X/"}, {"code": "3USCFQ", "name": "Ya\u015far \u0130dikut", "avatar": null, "biography": null, "public_name": "Ya\u015far \u0130dikut", "guid": "006e08aa-85ed-5b2b-b494-a024ad166084", "url": "https://pretalx.com/pyconuk-2019/speaker/3USCFQ/"}, {"code": "CAJRDF", "name": "Yoel Kastro", "avatar": null, "biography": null, "public_name": "Yoel Kastro", "guid": "b304af78-83fb-5669-ad31-c58c621c565a", "url": "https://pretalx.com/pyconuk-2019/speaker/CAJRDF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SPY8JN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SPY8JN/", "attachments": []}, {"guid": "f0caa94f-488a-5e34-b091-9130317dac6f", "code": "FFGRAF", "id": 2410, "logo": null, "date": "2019-09-15T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2410-dash-interactive-data-visualization-web-apps-with-no-javascript", "url": "https://pretalx.com/pyconuk-2019/talk/FFGRAF/", "title": "Dash: Interactive Data Visualization Web Apps with no Javascript", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "From the team that makes Plotly, Dash is a library for producing interactive web apps with Python. This talk introduces Dash and will discuss how it may fit into your team!", "description": "Your data science or machine learning project probably won't just produce a written report. Instead, projects are increasingly expected to produce interactive tools to allow end-users to explore data and results with rich, interactive visualizations. Inevitably, this will be done in a web browser, meaning you'll need to add a quantitatively trained web developer to your team, or have your data scientists spend time learning HTML, Javascript and CSS. Dash, a project by the team that makes Plotly, solves some of these problems by allowing data scientists to build rich and interactive websites in pure python, with minimal knowledge of HTML and absolutely no Javascript.\r\n\r\nAt decisionLab, a London-based data science consultancy producing decision tools, we've embraced Dash to produce proof-of-concept models for our projects in alpha. Although we're not officially connected to the plotly/Dash project, by using the library daily across many projects, we've learned many lessons and what we feel are best practises we'd like to share, and hear feedback on!\r\n\r\nThis talk will give an overview of Dash, how it works and what it can be used for, before outlining some of the common problems that emerge when data scientists are let loose to produce web applications, and web developers have to work with the pydata ecosystem. The talk also covers effective working practises to start producing cool interactive statistical web applications, fast. We'll also identify some of the pitfalls of Dash, and how and when to make the decision to stop using Dash and start building a proper web application.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UWCNHR", "name": "Dom Weldon", "avatar": "https://pretalx.com/media/avatars/UWCNHR_z4WzcJy.webp", "biography": "Dom Weldon is a Principal Software Engineer and head of production at decisionLab, a London-based mathematical modelling consultancy with expertise in machine learning, simulation, optimization and visualization. Dom's team specialize in taking models from data scientists and turning them into production ready tools. Current clients include the Royal Navy, Siemens, GSK and various UK public bodies.\r\n\r\nDom came to decisionLab from his PhD studies in Computational Geography at King's College London, his initial degree was in Natural Sciences at the University of Cambridge, and he holds a master's in the historical and cultural geography of the Cold War United States. Outside of work, Dom is interested in languages and travelling, and holds a voluntary statutory appointment on a board monitoring the welfare and dignity of prisoners in a challenging North London jail.", "public_name": "Dom Weldon", "guid": "4d705e3d-d93a-5353-8338-98a18ec18cf9", "url": "https://pretalx.com/pyconuk-2019/speaker/UWCNHR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/FFGRAF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/FFGRAF/", "attachments": []}, {"guid": "8bd71444-e41f-5c0c-894d-9cb2af5715bf", "code": "SMSLJT", "id": 1871, "logo": null, "date": "2019-09-15T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-1871-dictionaries-behind-the-scenes", "url": "https://pretalx.com/pyconuk-2019/talk/SMSLJT/", "title": "Dictionaries, behind the scenes", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Have you ever wondered how Python\u2019s dictionaries work behind the scenes? For the curious minds: we will unveil some of the magic, things ranging from performance to security, and some surprises. For the pragmatists: we\u2019ll see cases where understanding the internals can have practical applications", "description": "You have been working with Python dictionaries for a while and you feel comfortable using them, now you\u2019re interested in taking the next step. With this talk you\u2019ll get a look at how dictionaries work on the inside, things ranging from performance to security, and some surprises. You\u2019ll 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BQWMJD", "name": "Gisela Rossi", "avatar": "https://pretalx.com/media/avatars/BQWMJD_9Z8w3kG.webp", "biography": "Gisela Rossi got her Bs. and Ms. in Computer Science with focus on research. She is now a software engineer that has been working with Python for 3 years and believes it is a beautiful and uncluttered language. Gisela loves order and will MariKondo your desk and code if you let her. She is passionate about improving diversity and inclusion in the industry and that is why she became co-leader of PyLadies London. Other interests include oil painting, going to the gym and napping with her kitten.", "public_name": "Gisela Rossi", "guid": "15762225-db3e-55a0-96d3-42765e59b9f5", "url": "https://pretalx.com/pyconuk-2019/speaker/BQWMJD/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SMSLJT/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SMSLJT/", "attachments": []}, {"guid": "139fcc2a-a8e3-52b3-8e18-616bd00e1a77", "code": "GLQJCB", "id": 2422, "logo": null, "date": "2019-09-15T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2422-mock-object-library-common-pitfalls-and-best-practices", "url": "https://pretalx.com/pyconuk-2019/talk/GLQJCB/", "title": "Mock Object Library: Common Pitfalls and Best Practices", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk is an introduction to the mock object library along with a detailed discussion on common pitfalls associated with patching objects with mocks and the best practices for it. The talk would present code examples, common pitfalls, and best practices to demonstrate how to use mocks effectively.", "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'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.\r\n\r\nThis 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.\r\n\r\nFurther, this talk would dive into common pitfalls that one encounters while using `unittest.mock`, e.g., how patching an object at the wrong place leads to test errors, how to write good test code to verify whether a chained call was made, etc. These examples are drawn from the speaker's experience while working on Python projects.\r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "TUT3YE", "name": "Sunaina Pai", "avatar": "https://pretalx.com/media/avatars/TUT3YE_YFwEwjX.webp", "biography": "Sunaina Pai is a senior big data software developer from Bangalore, India. She has 9 years of experience in developing software using big data technologies in organizations such as RSA Security and Intel Security. She develops solutions using Elasticsearch, Spark, Storm, and Kafka at work. In her free time, she enjoys working on her open source projects.", "public_name": "Sunaina Pai", "guid": "c77a0718-b456-5fed-9cef-8082a59990fe", "url": "https://pretalx.com/pyconuk-2019/speaker/TUT3YE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GLQJCB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GLQJCB/", "attachments": []}, {"guid": "52d727cf-ea6d-535a-995f-409e48f60094", "code": "UY9EFF", "id": 2344, "logo": null, "date": "2019-09-15T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Room D", "slug": "pyconuk-2019-2344-using-pomelo-to-enhance-algorithmic-thinking", "url": "https://pretalx.com/pyconuk-2019/talk/UY9EFF/", "title": "Using Pomelo to Enhance Algorithmic Thinking", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We have designed Pomelo, an interactive robot that teaches algorithmic thinking through collaborative tasks and games. With Pomelo we aim to drag the interest of young children into programming both in and outside of classroom environments.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NSJSUG", "name": "Yoel Nasi", "avatar": "https://pretalx.com/media/avatars/NSJSUG_tLfG4xl.webp", "biography": "High School Student at Hisar School.", "public_name": "Yoel Nasi", "guid": "e5754d50-a12f-536b-9697-de059ffc2280", "url": "https://pretalx.com/pyconuk-2019/speaker/NSJSUG/"}, {"code": "JRZHFG", "name": "Sedat yalcin", "avatar": "https://pretalx.com/media/avatars/JRZHFG_tBnMulb.webp", "biography": null, "public_name": "Sedat yalcin", "guid": "5aee6f04-e2b3-564c-850c-9a35601decab", "url": "https://pretalx.com/pyconuk-2019/speaker/JRZHFG/"}, {"code": "RTTUFB", "name": "Can Aydin", "avatar": null, "biography": "Student in Hisar School", "public_name": "Can Aydin", "guid": "f7ffe0a1-17a9-51b1-a706-699af2d0c1aa", "url": "https://pretalx.com/pyconuk-2019/speaker/RTTUFB/"}, {"code": "YMMZFM", "name": "batuhan bayraktar", "avatar": "https://pretalx.com/media/avatars/YMMZFM_a9ZM3LE.webp", "biography": "High school student, part of project Pomelo", "public_name": "batuhan bayraktar", "guid": "50156a20-b0e3-5db1-ba3f-519bbf0947ec", "url": "https://pretalx.com/pyconuk-2019/speaker/YMMZFM/"}, {"code": "PGUHHS", "name": "Rana Taki", "avatar": null, "biography": null, "public_name": "Rana Taki", "guid": "fe44c921-6552-53a1-8d6b-a4f588fce595", "url": "https://pretalx.com/pyconuk-2019/speaker/PGUHHS/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/UY9EFF/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/UY9EFF/", "attachments": [{"title": "HRI 2019 ACM/IEEE International Conference on Human Robot Interaction, Student Design Competition Paper: Pomelo, a Collaborative Education Technology  Interaction Robot", "url": "/media/pyconuk-2019/submissions/UY9EFF/resources/SDPomelo.pdf", "type": "related"}]}], "Room I": [{"guid": "156ebde3-5353-556d-8f93-fd5e7cb36851", "code": "NLMNPY", "id": 2319, "logo": null, "date": "2019-09-15T11:30:00+01:00", "start": "11:30", "duration": "01:30", "room": "Room I", "slug": "pyconuk-2019-2319-writing-micro-services-in-python-sure-but-which-framework", "url": "https://pretalx.com/pyconuk-2019/talk/NLMNPY/", "title": "Writing micro-services in Python... Sure! But which framework?", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "When googling \"python micro-service framework\", there are plenty of \"Hello world\" examples out there for **many** (micro-)frameworks.\r\n\r\nBut how do they scale to \"real\" world applications? How can I connect framework X to a database or what do you need to do to use OAuth2 with framework Y?", "description": "This workshop was inspired by Aaron Bassett's EuroPython 2018 talk \"Hello to the World in 8 Web Frameworks micro, batteries included & async\". It was a great introduction to the array of web (micro-)frameworks available in Python but I was curious at how they scale to \"real\" life use-cases.\r\n\r\nIn order to learn about that, I went through several steps:\r\n- I decided on 4 micro-services I wanted to build and that were somewhat representative of services you might need in a production setting\r\n- 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)\r\n- I implemented those micro-services using several frameworks\r\n- I deployed them with production settings on a Raspberry Pi cluster\r\n- I tested the performance of each architecture\r\n\r\nThis workshop will deep-dive into specific things I learned and found the most interesting, some are code samples others are strategies.\r\n\r\n**Spoiler**: I will not end the workshop with \"choose framework Z\"", "recording_license": "", "do_not_record": false, "persons": [{"code": "QN7YGR", "name": "Emma Delescolle", "avatar": "https://pretalx.com/media/avatars/QN7YGR_hHm4wUy.webp", "biography": "Long-time pythonista, Django fan, co-maintainer and co-author of DRF-Schema-Adapter. Recently interested by Python running on different hardware.\r\n\r\nI am from Belgium and have been involved in open-source at different levels for a bit more than a decade now.\r\n\r\nOne of the things I enjoy the most is sharing knowledge with others. And this is why I enjoy writing tutorials as well as giving talks and workshops.", "public_name": "Emma Delescolle", "guid": "67c5d47f-59b8-5e67-843f-896eca790506", "url": "https://pretalx.com/pyconuk-2019/speaker/QN7YGR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/NLMNPY/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/NLMNPY/", "attachments": []}], "Room J": [{"guid": "d28aa935-c179-59b0-80c3-ae93d888dc86", "code": "MVGWY7", "id": 2401, "logo": null, "date": "2019-09-15T14:30:00+01:00", "start": "14:30", "duration": "01:30", "room": "Room J", "slug": "pyconuk-2019-2401-plug-train-flexible-customisation-and-extension-of-python-s-deep-learning-frameworks", "url": "https://pretalx.com/pyconuk-2019/talk/MVGWY7/", "title": "Plug & train: flexible customisation and extension of python's deep learning frameworks", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Python is growing quickly partly due to its popularity in the data science and machine learning community. Python's flexibility is well suited to new statistical frameworks such as deep learning which are successful because they are modular. This is the story of the success of python in deep learning.", "description": "The rapid growth of python and the growth of deep learning coincide\r\nalmost perfectly. The flexibility of python has made it the language of choice\r\nfor machine learning in general, and deep learning in particular. Tracking the\r\nsuccess of deep learning is a great way to track the success of python.\r\n\r\nDeep learning, or the training of deep neural networks to analyse data and make\r\npredictions, is an inherently flexible framework. Deep neural networks can be\r\nbuilt to accept data of almost arbitrary shapes and sizes. Users achieve this by\r\ncombining modules that perform different tasks in a plug-and-play\r\nfashion: as long as they are differentiable, they can be combined.\r\n\r\nIn python, frameworks such as Tensorflow, Keras, and Pytorch have made\r\nit easy to construct and customise those building blocks. These frameworks\r\nare inherently recursive: a model is the same type of object as its constituent\r\nparts, and in turn can be used to construct larger models.\r\n\r\nThis means that these frameworks can take advantage of python's flexibility.\r\nWhen subclassing neural networks, users are able to define hooks that alter\r\neither what the model does with the data (the \"forward pass\"), or how it changes\r\nin response to feedback during training (the \"backward pass\").\r\n\r\nOne demonstration of this flexibility is a gradient reversal layer. This\r\nallows you to train a model to do the opposite of what it would usually do:\r\ninstead of becoming good at a computer vision task, it becomes bad. What sounds\r\nlike a fundamental change in behaviour is in fact something we can\r\ndemonstrate very easily in the pytorch framework.\r\n\r\nIntegrating multiple of these models in a flexible fashion is similarly easy.\r\nModels in deep learning frameworks are just combinations of smaller models, and\r\nit is easy to use a model that was trained for image classification and use it\r\nas the first step in a larger model that actually locates objects in images.\r\nThanks to python's overloading functionality, we'll demonstrate that it is easy\r\nto convert a model that produces one output into a model that produces many\r\nintermediate outputs, as is common in Feature Pyramids in computer vision.\r\n\r\nThis flexibility does not come at the expense of stability in production.\r\nFrameworks like tensorflow allow for fixed and stable network serialisation that\r\ncan be used continuously and with great success in large corporations with\r\ndistributed infrastructure.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9LPKAB", "name": "Jan Freyberg", "avatar": "https://pretalx.com/media/avatars/9LPKAB_u7m95Nv.webp", "biography": "I have a background in neuroscience, studying vision in autism. I now work as a research engineer in machine learning. My work focuses on applied AI for human rights monitoring and accountability. I am based in the AI for Good team at Element AI. I also research active learning, and work on interactive computing in the jupyter environment.", "public_name": "Jan Freyberg", "guid": "0c96ecfc-1409-586b-a109-15dc82be082f", "url": "https://pretalx.com/pyconuk-2019/speaker/9LPKAB/"}, {"code": "GEUP3Y", "name": "Isobel Weinberg", "avatar": null, "biography": "Data Scientist in industry and former motor neuroscientist", "public_name": "Isobel Weinberg", "guid": "f9d82690-cf27-55d2-9898-f070abba44da", "url": "https://pretalx.com/pyconuk-2019/speaker/GEUP3Y/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/MVGWY7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/MVGWY7/", "attachments": []}], "Room K": [{"guid": "d8afcb86-8154-5272-8893-2102096379b6", "code": "JCVVUM", "id": 2315, "logo": null, "date": "2019-09-15T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room K", "slug": "pyconuk-2019-2315-what-are-they-talking-about-mining-topics-in-documents-with-topic-modelling-and-python", "url": "https://pretalx.com/pyconuk-2019/talk/JCVVUM/", "title": "What are they talking about? Mining topics in documents with topic modelling and Python", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "This tutorials is a practical introduction to topic modelling in Python, tackling the problem of analysing large data sets of textual data, in order to identify topics of interest and related keywords.", "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. \r\n\r\nTopic modelling is a technique that provides a bird's-eye view on a large collection of text documents. The purpose is to identify abstract topics and capture hidden semantic structures. Topic modelling techniques can be used in exploratory analysis, to better understand its semantics even in absence of explicit labels.\r\n\r\nIn this tutorial, we'll walk through the whole pipeline of pre-processing textual data, applying topic modelling techniques, and evaluating the output. The focus will be on classic approaches like Latent Dirichlet Allocation (LDA), with practical examples in Python using the library Gensim.\r\n\r\nThe 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.\r\n\r\nBy attending this tutorial, participants will learn:\r\n- how to run an end-to-end NLP pipeline on the problem of topic mining\r\n- how to capture semantic structures in text with topic modelling\r\n- how to assess the output of topic modelling techniques applied to textual data\r\n\r\nIf you're planning to attend the tutorial, please download the material beforehand: https://github.com/bonzanini/topic-modelling", "recording_license": "", "do_not_record": false, "persons": [{"code": "UQCFX7", "name": "Marco Bonzanini", "avatar": "https://pretalx.com/media/avatars/UQCFX7_AQIjLAz.webp", "biography": "Marco is a Data Science Consultant and Trainer based in London, co-organiser of the [PyData London meetup](https://www.meetup.com/PyData-London-Meetup/) and chairperson of the [PyData London conference](https://pydata.org/london2019/) 2018-19.", "public_name": "Marco Bonzanini", "guid": "8573b341-9370-59a9-89eb-5bf7104cf298", "url": "https://pretalx.com/pyconuk-2019/speaker/UQCFX7/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/JCVVUM/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/JCVVUM/", "attachments": [{"title": "Slides", "url": "/media/pyconuk-2019/submissions/JCVVUM/resources/presentation.pdf", "type": "related"}]}]}}, {"index": 4, "date": "2019-09-16", "day_start": "2019-09-16T04:00:00+01:00", "day_end": "2019-09-17T03:59:00+01:00", "rooms": {"Assembly Room": [{"guid": "0461605c-4f09-5f8a-99bd-a8b3fda68d6d", "code": "G8M38E", "id": 2549, "logo": null, "date": "2019-09-16T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2549-introduction", "url": "https://pretalx.com/pyconuk-2019/talk/G8M38E/", "title": "Introduction", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Monday Introduction", "description": "Monday Introduction", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/G8M38E/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/G8M38E/", "attachments": []}, {"guid": "9ff04e07-ea21-5f1d-8121-0174e1ea919e", "code": "WBE8WB", "id": 2557, "logo": null, "date": "2019-09-16T09:30:00+01:00", "start": "09:30", "duration": "01:00", "room": "Assembly Room", "slug": "pyconuk-2019-2557-while-history-continue", "url": "https://pretalx.com/pyconuk-2019/talk/WBE8WB/", "title": "while history: continue", "subtitle": "", "track": "Keynote", "type": "Talk", "language": "en", "abstract": "History is full of weird events. Because we're human (and weird), these events tend to have their reasons in social dynamics that are still around today.", "description": "Amidst a software industry reinventing everything from first principles, let's see if we can't actually learn a bit from ancient history. Featuring, in no particular order, the BDFL of the Catholic church, pneumatic tubes, C\u00e6sar's legacy, right- and left side traffic, hostile acquisitions, high-frequency trading, and of course Python 2.", "recording_license": "", "do_not_record": false, "persons": [{"code": "NCGMSE", "name": "Tobias Kunze", "avatar": "https://pretalx.com/media/avatars/NCGMSE_2LcUmEA.webp", "biography": "Tobias is a Python/Django developer with a heavy focus on Open Source projects, most notably [pretalx](https://pretalx.com). Django is his home community in the Open Source world, and he organized DjangoCon Europe last year.", "public_name": "Tobias Kunze", "guid": "dde5a251-aa15-5092-9990-0d0b198606df", "url": "https://pretalx.com/pyconuk-2019/speaker/NCGMSE/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WBE8WB/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WBE8WB/", "attachments": []}, {"guid": "148eb725-6fc7-5926-a958-716c208238eb", "code": "8XCQTW", "id": 2833, "logo": null, "date": "2019-09-16T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2833-the-fallacy-of-meritocracy", "url": "https://pretalx.com/pyconuk-2019/talk/8XCQTW/", "title": "The Fallacy of Meritocracy", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The Fallacy of Meritocracy", "description": "The Fallacy of Meritocracy", "recording_license": "", "do_not_record": false, "persons": [{"code": "LGJTUV", "name": "Nikoleta Glynatsi", "avatar": null, "biography": null, "public_name": "Nikoleta Glynatsi", "guid": "2ae62c04-be1b-5d9c-a8f9-ba28ba63d1b7", "url": "https://pretalx.com/pyconuk-2019/speaker/LGJTUV/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/8XCQTW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/8XCQTW/", "attachments": []}, {"guid": "a622ae17-67a0-51ee-bbd7-25458283d1c9", "code": "HERDDR", "id": 2289, "logo": null, "date": "2019-09-16T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2289-the-world-s-cheapest-simplest-plotter", "url": "https://pretalx.com/pyconuk-2019/talk/HERDDR/", "title": "The world's cheapest, simplest plotter", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "I present an ultra-cheap (\u20ac12.50 for all parts, including a Raspberry Pi) Python-powered drawing machine, constructed from cardboard, assembled using basic tools and glue.", "description": "I present an ultra-cheap (total cost of materials: \u20ac12.50) plotter that can be built with minimal skills.\r\n\r\nAt its heart is a Raspberry Pi Zero and some relatively simple custom software, driving three servo motors. \r\n\r\nThe 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. \r\n\r\nAlmost 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.\r\n\r\nAs you can see from the following images, the plotter produces images with a distinct charm:\r\n\r\n* https://www.dropbox.com/s/s7x3cnxzp1zwnp0/europython.jpg?dl=0\r\n* https://www.dropbox.com/s/lzykb02rxh2d9ef/IMG_0065.jpg?dl=0\r\n* https://www.dropbox.com/s/8ibihhbfz9gmql0/IMG_0067.jpg?dl=0\r\n* https://www.dropbox.com/s/50lemnzw5ismcrq/IMG_0075.jpg?dl=0\r\n\r\nIt can also function as the world's most inconvenient camera: take a photo using the Raspberry Pi's camera, convert it into lines, and draw it.\r\n\r\nThis is fun, but it's much more than that. There are barriers of skill, expense and materials around robotics. This project comes with me to African PyCons, and makes it possible for programmers to explore Python-based robotics, however limited their resources.\r\n\r\nThe 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/. \r\n\r\nI 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. \r\n\r\nIt will be particularly of interest to people involved in education, or who'd like to explore Python with young people. The code, mathematics and especially the hardware in this project are all simple.\r\n\r\nThe code resists the temptation to abstraction, and makes a point of breaking operations down into steps that are as easy as possible to follow. The project shows that doing things with robotics isn't just for people with well-equipped workshops and the engineering skills to use them.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HERDDR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HERDDR/", "attachments": []}, {"guid": "91ed12ce-4461-5c76-a2b6-fc6704869a4c", "code": "ANWJGD", "id": 2436, "logo": null, "date": "2019-09-16T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2436-an-introduction-to-hardware-drivers-in-micro-python", "url": "https://pretalx.com/pyconuk-2019/talk/ANWJGD/", "title": "An Introduction to Hardware Drivers in (Micro)Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Have you ever been curious about how device drivers control the hardware in your computer, phone, or IoT widget? Have you always thought you would needed to learn C or other low-level language to write a driver? Thanks to MicroPython we can control the physical world with Python code!", "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!\r\n\r\nIt\u2019s never been easier to adventure in the embedded space, and using a familiar language is a great advantage. It\u2019s incredible that we can simply \u201cupip install\u201d a module to control our brand new sensor, display, controller, etc; but how does it work? Or what do we do if there isn\u2019t an existing library available?\r\n\r\nThis 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JCYYDP", "name": "Carlos Pereira Atencio", "avatar": "https://pretalx.com/media/avatars/JCYYDP_ELZVNDv.webp", "biography": "Software Engineer @ Micro:bit Educational Foundation", "public_name": "Carlos Pereira Atencio", "guid": "a025372e-ac11-51c2-ba7d-165c14aefba2", "url": "https://pretalx.com/pyconuk-2019/speaker/JCYYDP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/ANWJGD/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/ANWJGD/", "attachments": []}, {"guid": "1dea1085-d238-5afe-901f-04c4ae03ac87", "code": "SJLVMS", "id": 2361, "logo": null, "date": "2019-09-16T12:30:00+01:00", "start": "12:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2361-real-time-data-acquisition-from-arduino-to-the-web-using-pubsub-with-redis-django-and-other-friends", "url": "https://pretalx.com/pyconuk-2019/talk/SJLVMS/", "title": "Real-time data acquisition, from Arduino to the web, using PubSub with Redis, Django and other friends", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "I'll apply PubSub to collect data in real-time from TCP-enabled peripherals, like Arduino or others, and deliver them to a data server for storage, processing, and broadcasting to remote clients (typically smartphones or tablets) for real-time monitoring and inspection", "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.\r\n\r\nThis 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.\r\n\r\nThe talk covers data collection, processing and publishing.\r\n\r\n**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.\r\n\r\n**Processing**: a Python backend provides multiple options for processing data and extracting useful information and insights.\r\n\r\n**Publishing**: to complete the cycle, the information must be delivered in real-time to the user in a comprehensible, usable form; we\u2019ll assume our users are working in the field with smartphones or tablets.\r\n\r\n##### Target audience\r\n\r\nI 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.\r\n\r\nWe'll dig into the code of several practical use cases, to explore how the solution can be adapted to different scenarios.\r\nThe software technologies selected for this purpose are: Python, Redis and Django Channels.\r\n\r\nI hope that this talk will give other programmers the confidence to explore this fascinating and useful sphere of programming.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EK9XZX", "name": "Mario Orlandi", "avatar": "https://pretalx.com/media/avatars/EK9XZX_19iVph7.webp", "biography": "I work as a consultant in different fields, applying open source and web technologies to automation.\r\nIn the past, I made extensive use of C/C++ and other languages, but lately abandoned them in favour of Python based frameworks, with particular interest in Django.\r\nI got a master\u2019s degree in Physics in 1987 at University of Modena, Italy", "public_name": "Mario Orlandi", "guid": "9ffb506d-2127-5767-9f1e-6d8eaadc730a", "url": "https://pretalx.com/pyconuk-2019/speaker/EK9XZX/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SJLVMS/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SJLVMS/", "attachments": []}, {"guid": "b7244860-0996-5a35-a712-4d9f32664955", "code": "QBPBDR", "id": 2581, "logo": null, "date": "2019-09-16T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2581-automated-timeseries-analysis-with-gaussian-processes", "url": "https://pretalx.com/pyconuk-2019/talk/QBPBDR/", "title": "Automated Timeseries Analysis with Gaussian Processes", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How to automatically identify, and describe, interesting patterns in timeseries data, such as trends, change-points and periodic behaviour.", "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...\r\n \r\nIn 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9CQSLB", "name": "Joe Hall", "avatar": "https://pretalx.com/media/avatars/9CQSLB_7za2QoS.webp", "biography": "Joe is a Lead Data Scientist at JPMorgan and is currently working on applications of Natural Language Processing for media monitoring and content recommendation for various teams within the firm. Before that he worked on a big data framework timeseries anomaly detection. He has been at JPMorgan for over 5 years working in pure Python development roles, big data, machine learning and data science. \r\n\r\nHis background is an undergraduate in Avionics (Glasgow) and a PhD in Reinforcement Learning and Control Engineering (Cambridge) in which he wrote a lot of MATLAB code, and hand calculated a lot of gradients - he is now very thankful for Python and autograd!", "public_name": "Joe Hall", "guid": "c343fcca-a8f1-5004-a3d4-8c1c09bfa5cd", "url": "https://pretalx.com/pyconuk-2019/speaker/9CQSLB/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/QBPBDR/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/QBPBDR/", "attachments": []}, {"guid": "34c20990-3c0e-52d6-af62-8c32088da177", "code": "PYHRRW", "id": 2360, "logo": null, "date": "2019-09-16T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2360-how-to-use-python-to-expose-politicians", "url": "https://pretalx.com/pyconuk-2019/talk/PYHRRW/", "title": "How to use Python to expose politicians?", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk presents a project that uses an API of the Brazilian government to retrieve data from congresspeople and expose how they are spending people's money. I use **Pandas** to manipulate the data and, **Lektor** and **Chart.JS** to create a website that makes this data accessible and comprehensible.", "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.  \r\n\r\nThis talk is especially interesting for those that want to build a simple static website and don\u2019t 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQGSVZ", "name": "Rafael Garcia-Dias", "avatar": "https://pretalx.com/media/avatars/RQGSVZ_YpuvYYb.webp", "biography": "[Rafael](http://garciadias.github.io) is a Brazilian physicist currently working in neuroscience. Last year he finished his PhD in astrophysics, in Spain, where he applied K-means to find patterns in a sample of more than 250 thousand stars in our Galaxy. He moved to London to work in a neuroscience project that aims to use machine learning in 3D images of patient brains to diagnose conditions like Parkinson\u2019s, Alzheimer\u2019s disease and psychosis. Recently he has written a Chapter for the book [Machine learning methods and applications to brain disorders](https://www.amazon.co.uk/Machine-Learning-Methods-Applications-Disorders/dp/0128157399/ref=sr_1_3?keywords=Machine+learning+methods+and+applications+to+brain+disorders&qid=1562160030&s=gateway&sr=8-3).", "public_name": "Rafael Garcia-Dias", "guid": "36d91897-841e-5571-9332-275f4fe29934", "url": "https://pretalx.com/pyconuk-2019/speaker/RQGSVZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/PYHRRW/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/PYHRRW/", "attachments": []}, {"guid": "24dec2cf-631a-53a9-b3f2-4715cc4507b3", "code": "SAZB3V", "id": 2398, "logo": null, "date": "2019-09-16T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2398-python-in-the-browser", "url": "https://pretalx.com/pyconuk-2019/talk/SAZB3V/", "title": "Python in the browser", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "You don't have to write JavaScript to write front-end code. There are a lot of options to run Python in the browser. We'll look at how this is achieved - there's more than one way to do it!", "description": "I've never quite got on with JavaScript, but it's the only choice for writing dynamic web pages, isn't it?\r\n\r\nActually, no! You can run Python in the web browser.\r\n\r\nThere 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...\r\n\r\nThere's a more general lesson to draw from this - the web stack has always been constrained to involve JavaScript, but now people are beginning to create more options. The advent of WebAssembly will surely make this the norm. We're seeing a move to a web where developers can take more control over how they build things.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RREHAF", "name": "Shaun Taylor-Morgan", "avatar": "https://pretalx.com/media/avatars/RREHAF_NPNGIfx.webp", "biography": "Shaun started programming in earnest by simulating burning fusion plasmas in the world's biggest laser system. He fell in love with Python as a data analysis tool, and has never looked back. Now he wants to turn everything into Python, which is why he works for Anvil.", "public_name": "Shaun Taylor-Morgan", "guid": "8838de93-ace2-5856-aad6-f53bd5a83990", "url": "https://pretalx.com/pyconuk-2019/speaker/RREHAF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/SAZB3V/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/SAZB3V/", "attachments": []}, {"guid": "320e9db2-90c4-513f-a353-1db2a9654310", "code": "VREQRJ", "id": 2256, "logo": null, "date": "2019-09-16T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2256-typed-attrs-dataclasses-with-cattrs-converters-for-json-rest-microservices", "url": "https://pretalx.com/pyconuk-2019/talk/VREQRJ/", "title": "Typed attrs dataclasses with cattrs converters for JSON REST microservices.", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Do you have confidence in your data without painful explicit checks?  Use types in your code - attrs is a smart solution to make life easier.", "description": "REST microservices commonly use JSON as inputs and outputs. It's a simple and language-agnostic way of communication. The JSON can be easily translated into simple python structures like dictionaries and arrays.\r\nAlthough it's possible to use raw input data inside your application, type checking in Python increases confidence in our code with fewer unit tests and simpler refactoring.\r\n\r\nTranslating primitive data to typed data structures can be a tedious job, but with the help of `attrs` and `cattrs` modules, it's a simple task which does not add a lot of code.\r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LWARUA", "name": "Damian Swistowski", "avatar": "https://pretalx.com/media/avatars/LWARUA_VehBmZr.webp", "biography": "My first program was in C64 BASIC, then Assembler, Amos, Pascal, C, C++,  Java, Perl - but when I found Python I just stuck with it.\r\n\r\nMy first job was as a Python/Django developer in 2005.\r\n\r\nSometimes I write hobby projects in javascript for fun - but never the production code.\r\n\r\nLikes deleting lines, don't like introducing bugs.", "public_name": "Damian Swistowski", "guid": "a7a7d2be-e7ff-5e46-a9cf-105f170eacd8", "url": "https://pretalx.com/pyconuk-2019/speaker/LWARUA/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/VREQRJ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/VREQRJ/", "attachments": []}, {"guid": "29e01489-dc1c-5517-a94e-09237b60ee4d", "code": "VCP83L", "id": 2548, "logo": null, "date": "2019-09-16T17:00:00+01:00", "start": "17:00", "duration": "01:30", "room": "Assembly Room", "slug": "pyconuk-2019-2548-lightning-talks", "url": "https://pretalx.com/pyconuk-2019/talk/VCP83L/", "title": "Lightning talks", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Lightning talks", "description": "Short talks.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HQSK8D", "name": "Mark Smith", "avatar": "https://pretalx.com/media/avatars/HQSK8D_oYSHdxI.webp", "biography": "My name is Mark Smith, although I'm known as Judy2k online. I'm a Developer Advocate for Nexmo. I love writing stupid Python code in an attempt to really understand how Python works. When I'm not doing this, you'll find me crocheting, building custom keyboards, or designing models for 3D printing.", "public_name": "Mark Smith", "guid": "1d392c5d-21c4-5b0c-8eb4-e0038abfd547", "url": "https://pretalx.com/pyconuk-2019/speaker/HQSK8D/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/VCP83L/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/VCP83L/", "attachments": []}], "Ferrier Hall": [{"guid": "e0c03d24-6064-561e-94a6-54f03bed8e74", "code": "7LTYFU", "id": 2312, "logo": null, "date": "2019-09-16T10:30:00+01:00", "start": "10:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2312-battles-with-reproducibility-and-collaboration-in-large-organisations", "url": "https://pretalx.com/pyconuk-2019/talk/7LTYFU/", "title": "Battles with reproducibility and collaboration in large organisations", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Reproducibility and collaboration are difficult aspects of any business-based analytics, speaking from personal experience, where a project is likely shared between a technical analyst and a business analyst. This talk aims to show examples of how this can be improved through aspects of the Python / R toolset.", "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.\r\n\r\nIntegrating 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. \r\n\r\nThe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WVJSYF", "name": "Richard Louden", "avatar": "https://pretalx.com/media/avatars/WVJSYF_0jd9x62.webp", "biography": "Rich is an ex molecular biologist who since completing his PhD has worked within consulting and retail, recently joining the data and analytics division of private consultancy in Leeds. He has a strong interest in both machine learning and building production ready applications, with a background in coding in R and more recently python. Outside of coding his main interests are sports and craft ale!", "public_name": "Richard Louden", "guid": "a641594f-ccc0-515a-b9b8-f25041a4a60c", "url": "https://pretalx.com/pyconuk-2019/speaker/WVJSYF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/7LTYFU/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/7LTYFU/", "attachments": []}, {"guid": "f693a2dc-3978-5a8a-b144-e59d5e422322", "code": "FL9SUA", "id": 2392, "logo": null, "date": "2019-09-16T11:30:00+01:00", "start": "11:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2392-charming-the-snake-writing-secure-python-code", "url": "https://pretalx.com/pyconuk-2019/talk/FL9SUA/", "title": "Charming the Snake - Writing Secure Python Code", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Python, being dynamic and not type safe, is hard to write securely. Vulnerabilities such as injections, XSS, CSRF etc. are hard to find through static analysis tools. This talk is a comprehensive guide on how to write secure code in Python and also how to catch bugs.", "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. \r\n\r\nIn 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "L9HSMU", "name": "Kashish", "avatar": "https://pretalx.com/media/avatars/L9HSMU_YPRHRgH.webp", "biography": "Kashish Mittal is a Security Researcher and Engineer. He currently is the Head of Security at MileIQ, a Microsoft startup. He has worked for companies such as Elevate Security, Duo Security, Bank of America, Deutsche Bank etc. By choice, he is an ethical hacker and an addicted CTF player. Prior to joining Duo, he did Security Research at Cylab, Pittsburgh. He has a BS and a MS from Carnegie Mellon University with a focus on Security. He is passionate about delivering Security awareness and training for employees, college students and high schoolers etc. He has been invited to presented his research and work at various national and International Security conferences.", "public_name": "Kashish", "guid": "7d7d964e-265e-5aff-9abe-82e9a8684ce5", "url": "https://pretalx.com/pyconuk-2019/speaker/L9HSMU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/FL9SUA/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/FL9SUA/", "attachments": []}, {"guid": "c94b7374-4ad5-55a0-8df5-c035f61b3f57", "code": "FPW89T", "id": 2331, "logo": null, "date": "2019-09-16T12:00:00+01:00", "start": "12:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2331-massively-multiplayer-online-games-with-python", "url": "https://pretalx.com/pyconuk-2019/talk/FPW89T/", "title": "Massively Multiplayer Online Games with Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In Wargaming we make real-time high load apps with python. Here I\u2019d tell you some issues which might appear when using it for real-time apps with some examples.", "description": "Usually Python isn't treated as a proper choice for big data and especially for real-time applications. In this talk I would like to tell you how we deal with half-million average online active gamers simultaneously playing on different maps, how we send and receive 10 thousands spatial event data per client per session (like moving on the map, interaction with other players and destructible objects on the map) with pure Python\r\n\r\nWe 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JFBNXP", "name": "Dmitry Karpov", "avatar": null, "biography": "Software engineer in server team, Wargaming. I\u2019m working with Python since 2013. I had been working in two compiler projects, optimizations techniques is my area of interests. Graduate of MIPT", "public_name": "Dmitry Karpov", "guid": "a939479f-c415-512c-be09-402f793140e7", "url": "https://pretalx.com/pyconuk-2019/speaker/JFBNXP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/FPW89T/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/FPW89T/", "attachments": []}, {"guid": "48141ea4-5acd-595c-9267-02cd11a9b9a5", "code": "NXZGG9", "id": 2201, "logo": null, "date": "2019-09-16T14:30:00+01:00", "start": "14:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2201-concurrent-asyncio-and-sanity", "url": "https://pretalx.com/pyconuk-2019/talk/NXZGG9/", "title": "Concurrent asyncio and sanity", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Do you find programming with `asyncio` daunting?  Are you wondering how you'd build a real-world network-connected service with this and not die trying? In this talk I want to share some best practices and tips to help you create reliable, maintainable applications using concurrency.", "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.\r\n\r\nBut how do you keep your application code organised, and not end up passing around a bunch of queues from one function to another?\r\n\r\nIn this talk, I'll show you how I built this application, and share my philosophy on structuring a concurrent app, and how to handle:\r\n\r\n- modularised concurrent code\r\n- how to plan for and contain exceptions\r\n- configuration\r\n- logging and monitoring", "recording_license": "", "do_not_record": false, "persons": [{"code": "APBNLX", "name": "Martijn Pieters", "avatar": "https://pretalx.com/media/avatars/APBNLX_EcwLhrM.webp", "biography": "Software architect, Python mentor & Consultant with a long history in serious web applications, database-driven and content management. Martijn is the top contributor on Stack Overflow for Python questions, ranked #9 overall and I was elected \u2666 Community Moderator in 2015.\r\n\r\nHe works as an independent consultant, and has built web applications used by millions, as well as specialised networked applications to gather and process large amounts of data.", "public_name": "Martijn Pieters", "guid": "33a99789-b851-548c-b5b0-f9f093218474", "url": "https://pretalx.com/pyconuk-2019/speaker/APBNLX/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/NXZGG9/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/NXZGG9/", "attachments": []}, {"guid": "0d0ae028-0da4-5ce3-bb26-d12e5edd9791", "code": "GCLBFH", "id": 2382, "logo": null, "date": "2019-09-16T15:00:00+01:00", "start": "15:00", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2382-managing-big-data-in-machine-learning-projects", "url": "https://pretalx.com/pyconuk-2019/talk/GCLBFH/", "title": "Managing Big Data in Machine Learning projects", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "My talk will focus on Version Control Systems (VCS) for big-data projects. With the advent of Machine Learning (ML) , the development teams find it increasingly difficult to manage and collaborate on projects that deal with huge amounts of data and ML models apart from just source code.", "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. \r\nThen, 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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "Q9GNHF", "name": "V Vishnu Anirudh", "avatar": "https://pretalx.com/media/avatars/Q9GNHF_UxK99US.webp", "biography": "I am a Data Infrastructure Engineer at a self-driving startup called Oxbotica. I have been a Software/Data Engineer for 4-5 years. I have worked on various types of software roles using Python such as automated testing, data processing tools, algorithms and web applications. I have a dual-masters degree from KTH Royal Institute of Technology, Sweden and University College London, UK. I like traveling to new places and meet new people. I am passionate about python projects and I love to talk about my experience and help other people to gain skills.", "public_name": "V Vishnu Anirudh", "guid": "5550891e-792e-578f-8352-a17edd1d15a1", "url": "https://pretalx.com/pyconuk-2019/speaker/Q9GNHF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GCLBFH/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GCLBFH/", "attachments": []}, {"guid": "ec7bab7e-fc9f-5e9b-89f5-0ead14d5920d", "code": "WK9PH7", "id": 2429, "logo": null, "date": "2019-09-16T15:30:00+01:00", "start": "15:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2429-adversarial-robustness-toolbox-how-to-attack-and-defend-your-machine-learning-models", "url": "https://pretalx.com/pyconuk-2019/talk/WK9PH7/", "title": "Adversarial Robustness Toolbox: How to attack and defend your machine learning models", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Adversarial samples and poisoning attacks are emerging threats to the security of AI systems. This talk demonstrates how to apply the Python library Adversarial Robustness Toolbox (ART) to create and deploy robust AI systems.", "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.\r\n\r\nThis talk will provide a short overview of ART\u2019s 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.\r\n\r\nThis 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\u2019s 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\u2019s 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.\r\n\r\nGitHub: https://github.com/IBM/adversarial-robustness-toolbox\r\nDocumentation: http://adversarial-robustness-toolbox.readthedocs.io", "recording_license": "", "do_not_record": false, "persons": [{"code": "39N7YQ", "name": "Beat Buesser", "avatar": null, "biography": "I'm a Research Staff Member at IBM Research and my current work focuses on adversarial machine learning and the security of artificial intelligence.", "public_name": "Beat Buesser", "guid": "e82d2ab9-b013-59b8-849f-af79482d09b5", "url": "https://pretalx.com/pyconuk-2019/speaker/39N7YQ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WK9PH7/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WK9PH7/", "attachments": []}, {"guid": "d471d221-9bda-50db-b0eb-f6e3d3176928", "code": "WYXAJU", "id": 2288, "logo": null, "date": "2019-09-16T16:30:00+01:00", "start": "16:30", "duration": "00:30", "room": "Ferrier Hall", "slug": "pyconuk-2019-2288-hangar-git-for-your-data", "url": "https://pretalx.com/pyconuk-2019/talk/WYXAJU/", "title": "Hangar; git for your data", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Software development is entering an era where the behavior of programs critically depends on the data they were trained on. In this setting, data is the new source code, and this opens the door to challenges like versioning and collaboration on numerical data. Hangar, git for your data", "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:\r\n- Time travel through the historical evolution of a dataset\r\n- Zero-cost Branching to enable exploratory analysis and collaboration\r\n- Cheap Merging to build datasets over time (with multiple collaborators)\r\n- Completely abstracted organization and management of data files on disk\r\n- Ability to only retrieve a small portion of the data (as needed) while still maintaining a complete historical record\r\n- Ability to push and pull changes directly to collaborators or a central server (ie a truly distributed version control system)\r\n\r\nThe 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 \u201cData-Defined software\u201d 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!", "recording_license": "", "do_not_record": false, "persons": [{"code": "TTFJAU", "name": "Richard Izzo", "avatar": null, "biography": null, "public_name": "Richard Izzo", "guid": "eefc98ce-f663-5808-8d24-9823392f9513", "url": "https://pretalx.com/pyconuk-2019/speaker/TTFJAU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/WYXAJU/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/WYXAJU/", "attachments": []}], "Room A": [{"guid": "0494a2a3-0f1d-58ab-bb74-2f1326666589", "code": "Z9VU8Z", "id": 1879, "logo": null, "date": "2019-09-16T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room A", "slug": "pyconuk-2019-1879-telling-stories-with-python-and-ren-py", "url": "https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/", "title": "Telling Stories With Python and Ren'Py", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Make your own interactive fiction game using Ren'Py", "description": "You might be familiar with interactive fiction from 'Choose Your Own Adventure' books, visual novels, or text-based games where what you type controls the story. Ren'Py lets us design our own interactive fiction with the power of Python. It is a game engine with its own scripting language, built on Python and Pygame. \r\n\r\nDuring the session you'll make a start on your own interactive fiction game in Ren'Py, with advice from the workshop coach on how to incorporate native Python code to add extra effects and mini-games within your story.\r\n\r\nPre-requisites: a laptop with Ren'Py installed (get it from www.renpy.org ) and a text editor such as Gedit.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JNFPPU", "name": "Hannah Hazi", "avatar": "https://pretalx.com/media/avatars/JNFPPU_5sk2oiA.webp", "biography": "I've had the chance to be involved in all sorts of interesting projects across my career, from cutting edge medical technologies to dispensing soup to printing with chocolate, detergent and cheese! I currently work at Stratasys, helping develop software for our industrial 3D printers. I love to meet people getting started with Python - it's my first love and always the language I return to. If you want to get me talking, tell me about something you'd like to 3D print.", "public_name": "Hannah Hazi", "guid": "156fb128-4675-53c3-ab56-4f08188c9e16", "url": "https://pretalx.com/pyconuk-2019/speaker/JNFPPU/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/Z9VU8Z/", "attachments": []}], "Room C": [{"guid": "c2620b5b-3c00-5a22-9b25-df9734ef3522", "code": "XVHHWL", "id": 2443, "logo": null, "date": "2019-09-16T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room C", "slug": "pyconuk-2019-2443-hardware-hacking-workshop", "url": "https://pretalx.com/pyconuk-2019/talk/XVHHWL/", "title": "Hardware Hacking Workshop", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Interested in programming hardware with MicroPython or CircuitPython? This drop-in workshop will help you to get started. We will have a range of activities for you to try, ranging from complete-beginner-friendly to more advanced topics. Come by and get started!", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HP79EZ", "name": "Sarah Townson", "avatar": "https://pretalx.com/media/avatars/HP79EZ_quBmwqH.webp", "biography": "Technology Projects Officer at Science Oxford, running computing and making activities for children, young people and adults.", "public_name": "Sarah Townson", "guid": "4a99fc3f-a290-52be-bfa1-ed9906a41479", "url": "https://pretalx.com/pyconuk-2019/speaker/HP79EZ/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/XVHHWL/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/XVHHWL/", "attachments": []}], "Room J": [{"guid": "d31785a5-8941-5a22-822a-e6721f07fc2d", "code": "HAEXPV", "id": 2395, "logo": null, "date": "2019-09-16T10:30:00+01:00", "start": "10:30", "duration": "01:30", "room": "Room J", "slug": "pyconuk-2019-2395-build-a-full-stack-web-app-in-python-with-anvil", "url": "https://pretalx.com/pyconuk-2019/talk/HAEXPV/", "title": "Build a full-stack web app in Python with Anvil", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "We'll create a full-stack web app using Anvil. Anvil is a platform for rapidly developing and deploying web apps using  Python on the client and server side. It's like Visual Basic for the web.\r\n\r\nYou\u2019ll need a laptop to follow along.", "description": "Anvil is a platform for rapidly developing web apps using nothing but Python.\r\n\r\nIt's like Visual Basic for the web. It has a drag-and-drop editor for constructing a user interface, controlled by Python code in both the client and a hosted server environment. It's a commercial platform that's free to use, with paid options for professional projects.\r\n\r\nThis is an interactive workshop where you'll be guided through creating an app. Either:\r\n  - A TODO list - a simple example of a Create, Read, Update, Delete (CRUD) app\r\n  - A weather data dashboard\r\n  - An app that controls a remote machine from the web\r\n  - Any other idea you might have!\r\n\r\nYou\u2019ll need a laptop to follow along.\r\n\r\nFor a preview, have a look at this short video https://anvil.works/#about", "recording_license": "", "do_not_record": false, "persons": [{"code": "RREHAF", "name": "Shaun Taylor-Morgan", "avatar": "https://pretalx.com/media/avatars/RREHAF_NPNGIfx.webp", "biography": "Shaun started programming in earnest by simulating burning fusion plasmas in the world's biggest laser system. He fell in love with Python as a data analysis tool, and has never looked back. Now he wants to turn everything into Python, which is why he works for Anvil.", "public_name": "Shaun Taylor-Morgan", "guid": "8838de93-ace2-5856-aad6-f53bd5a83990", "url": "https://pretalx.com/pyconuk-2019/speaker/RREHAF/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/HAEXPV/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/HAEXPV/", "attachments": []}]}}, {"index": 5, "date": "2019-09-17", "day_start": "2019-09-17T04:00:00+01:00", "day_end": "2019-09-18T03:59:00+01:00", "rooms": {"Assembly Room": [{"guid": "511bad2b-8276-558a-80ef-3b69cd9c349f", "code": "GCF9LN", "id": 2551, "logo": null, "date": "2019-09-17T09:00:00+01:00", "start": "09:00", "duration": "00:30", "room": "Assembly Room", "slug": "pyconuk-2019-2551-introduction", "url": "https://pretalx.com/pyconuk-2019/talk/GCF9LN/", "title": "Introduction", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Tuesday Introduction", "description": "Tuesday Introduction", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/GCF9LN/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/GCF9LN/", "attachments": []}, {"guid": "0f150410-3e49-5c7a-aba6-514ec98ecf26", "code": "K973NJ", "id": 2573, "logo": null, "date": "2019-09-17T09:30:00+01:00", "start": "09:30", "duration": "08:40", "room": "Assembly Room", "slug": "pyconuk-2019-2573-sprints", "url": "https://pretalx.com/pyconuk-2019/talk/K973NJ/", "title": "Sprints", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "Get together to talk and work in person", "description": "**What happens at a sprint?**\r\n\r\nIt\u2019s 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\u2019ll select a ticket (representing a bug, or an improvement that needs to be made) from the project's issue tracker, and get to work on that. As you work, you might want to check with a more experienced coder whether you\u2019re going about it the right way and get feedback on what you\u2019re doing.\r\n\r\n**So can I join in?**\r\n\r\nAbsolutely. Everyone\u2019s welcome. It\u2019s not an elite club, or for experts only. All of the projects that will be running sprints welcome anyone who wants to help.\r\n\r\n**I\u2019ve never taken part in a sprint before though.**\r\n\r\nThat\u2019s no problem. There\u2019ll 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.\r\n\r\n**What do I need?**\r\n\r\nYou'll need to know the basics of using the appropriate version control system (it'll probably be Git/GitHub) to check out code and make pull requests, to know how to use the issue tracker, and so on. You\u2019ll also need your own computer with a suitable Python environment set up on it - but there'll be people to help with that too.\r\n\r\n**But I\u2019m not actually a very good Python programmer.**\r\n\r\nThat\u2019s OK too, neither am I and neither is everyone else. You truly don\u2019t 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.\r\n\r\n**I\u2019d be worried about holding up everyone else though.**\r\n\r\nIt simply doesn\u2019t work like that. For one thing, one of the main points of a sprint is to encourage and help new people. You\u2019ll be able to work at your own pace, learning the things you need to learn as you go along, and you\u2019ll be supported by other people.\r\n\r\n**Do I have to stay for a whole sprint?**\r\n\r\nNot at all. Drop in just for a bit, if you just want to see what it\u2019s like.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BTD7WP", "name": "Daniele Procida", "avatar": null, "biography": "I am a serial conference organiser.", "public_name": "Daniele Procida", "guid": "7957302c-eeea-5983-b115-9647728eb47a", "url": "https://pretalx.com/pyconuk-2019/speaker/BTD7WP/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/K973NJ/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/K973NJ/", "attachments": []}], "Room I": [{"guid": "0cb5b7d9-1452-5d05-88ed-dd6ac9aa934c", "code": "7D3TT9", "id": 2393, "logo": null, "date": "2019-09-17T09:30:00+01:00", "start": "09:30", "duration": "08:40", "room": "Room I", "slug": "pyconuk-2019-2393-trans-code", "url": "https://pretalx.com/pyconuk-2019/talk/7D3TT9/", "title": "Trans*Code", "subtitle": "", "track": null, "type": "Something Else", "language": "en", "abstract": "**Trans*Code** is for trans* people, LGBTQAI+ and allies who want to draw attention to issues facing the transgender community and women. Participants drawn from all skill levels and backgrounds are welcome.", "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.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QN7YGR", "name": "Emma Delescolle", "avatar": "https://pretalx.com/media/avatars/QN7YGR_hHm4wUy.webp", "biography": "Long-time pythonista, Django fan, co-maintainer and co-author of DRF-Schema-Adapter. Recently interested by Python running on different hardware.\r\n\r\nI am from Belgium and have been involved in open-source at different levels for a bit more than a decade now.\r\n\r\nOne of the things I enjoy the most is sharing knowledge with others. And this is why I enjoy writing tutorials as well as giving talks and workshops.", "public_name": "Emma Delescolle", "guid": "67c5d47f-59b8-5e67-843f-896eca790506", "url": "https://pretalx.com/pyconuk-2019/speaker/QN7YGR/"}], "links": [], "feedback_url": "https://pretalx.com/pyconuk-2019/talk/7D3TT9/feedback/", "origin_url": "https://pretalx.com/pyconuk-2019/talk/7D3TT9/", "attachments": []}]}}]}}}