 So I have a list of six lightning talks here already. If you want to do a lightning talk today, I'm quite happy to add you on to the end of the list if you've got something prepared, want to talk about. Come and find me up here. I'm going to say that I'm going to put, no, I'm going to announce people one talk in advance. If you can come up here and get mic'd up, that would be fantastic when I call your name if you are presenting a lightning talk. So for those of you who have not seen these things before, lightning talks are five-minute talks. People can talk on any topic they like. We have another lightning talk session tomorrow at the same time. So if you like what you see today and think that you can do better, you should sign up on the form that will be available at the registration desk tomorrow. So like I said, we have six lightning talks today. Our second one is going to be from Tim Panhay. So if you can get up here and get mic'd. But first, Graham Dumpleton, who's going to tell us about running Jupyter Notebook in the cloud. Who runs Jupyter Notebook? Good, we have a few. It runs the cloud. It can be a pain. We have lots of clouds in New Zealand. It can be a pain getting Jupyter Notebook rough and running. Now I'm going to run this up very quickly on OpenShift, which is a platform as a service. And I don't have much time, so we're going to do it quickly. So I'll give it a name. Where am I in New Zealand? So I'm going to start that up. And that's going to go away. Now OpenShift is built on Kubernetes and Docker. So you can basically bring any image in here that you can use with Docker and run it. I'm here using an iPython Jupyter Notebook image. Now it's going to run it up. Now it's going to take a moment. So I'm going to go up and run another one for a moment. Just so I overlap and have my time going. And then I run a second one over here. And we'll type in the correct spot and hope it back to here. So my first one is now it's started up. I've actually got a Jupyter Notebook image up and running now. And that's going to work for me. And it happens to also be password locks. I gave it a password. Nice and secure. Please don't go to that URL and try and do anything bad. So I can go and upload an image there straight away and run up. So I've got my Notebook image and running. Now what's more interesting though is that's just one. And right, you can do that with Temp in B or other hosting services out there. Azure has got these ways of running it. That other thing I ran up is actually iPython Parallel. I don't know if you're familiar with that. It's a way of actually running up a whole cluster of end compute engines sitting behind a Jupyter Notebook. So I ran that up at the same time. I've got one controller and I've got one engine. I'm actually going, oh, let's just run up. How many engines we need? Eight. I'm just going to spin them up. And that will all start up nice and quickly. This is all running on an OpenShift cluster and do compute platform. I don't know, probably four machines at least for some other. Anyway, meantime, I can go over here. I can start going through my little thing here. Now let's see how many we've got running so far. Oh, we've got four running so far. Let's have them do it again. Five. So I'm getting, I'm not quite up to my eight yet, but let's keep going. Keep going down. How many is up? Looks like six or seven now. And I can keep going down. So what I'm going to do here is going to run a job, which is actually going to run a task across all of eight running now and run it. What's it going to show? And that's going to run there. I can keep going. That was one particular way of doing it. So in that quick amount of time, I don't know how many minutes to talk, not many. I have started up Jupyter Notebook. I've started up a parallel compute cluster. I've spun up to eight nodes and run a job across that. How many more minutes do I've got, many? You have two minutes to shut everything down. No, let's do another one. Let's quickly do another, start off another one, and I'll explain at least what it's doing. Now in that particular case, I loaded up my notebook manually. What I'm going to do this time is I'm going to say, here's a Git repo with my notebooks on it. I'm going to actually start that up. Now what's going to happen this time is that in the previous case, I was just running up a pre-existing Docker image. I uploaded the notebook myself. This time what I was doing is actually going to download that Git repo, which has my notebook image in it, and it's actually going to build me up a new image which incorporates that notebook. And it doesn't in this case, but I could have in that Git repo a requirements.txt file. And what this will do is it'll go on down, install all those Python packages into that image as part of that along with my notebooks so that when I run up my notebook, all those Python packages that were required are in place. And it will all just work. And you can do it the same for that computing engine as well. So very quickly, I can do things. Now this is just going to take a little bit because it's doing a build. So I'm not going to finish in the five minutes. So I'll leave it at that. But if you're interested in talking about iPython, come talk to me. If you're interested in OpenShift, I forgot to bring it up. I have a book. I have some books to give away on it if you're interested. So I'm going to tell me about that afterwards as well. And enough. Thank you. Oh, thank you, Graham. So Chris Main, if you can come and get yourself mic'd up over here. Up next, we have Tim Penhey who wants help with colorblind people. Yes. Great. So at work, I'm working on a command line tool. And one of the things we've started doing is integrating color into our command line tool with success and failure and being normally ably sighted. We're using red and green and yellow, which is not great for people that aren't so able sighted. So first question. And I thought, since I'm going to be in front of a lot of people, and about 30% of the average male population is colorblind to some degree, I've got a collection of people that might be able to help. So put your hands up if you are partially colorblind or full colorblind somewhere. Obviously. OK, so now that you've identified yourself, I'm actually looking for help because I'm trying to choose some colors that will be good for people that are colorblind in some degree. So if you can come and find me at some stage over the weekend, all I want to do is sit down and say, what color looks good for you to indicate an error? What color looks good to indicate success? Or if you're completely colorblind and just use grays, perhaps we'll investigate using bold or something like that to indicate differences. That's all I'm after is I'm trying to make our tool work for people that are colorblind. That's all. So come find me on the weekend and we can work and try and make something useful. Thank you. Thank you very much, Jim. OK, so up next getting miked is not Tom Eastman. But in the meantime, Chris Main is going to tell us about CodeCraft Dunedin. Hello, everybody. A very quick lightning talk for me as well. I've asked a few people, a few of me I've already met today and said, oh, are you from Dunedin? What do you happen to know about CodeCraft? And everybody has said no so far. So in the spirit of thing, CodeCraft has been running for a few years now. We're a local developer group. We currently meet down in the Polytech buildings. And you will have heard the mention of Eureka. That's where we go afterwards. So the meetings are every Tuesday, 5.30 to 7.00 at the moment. First Tuesday of the month. Sorry, Tim. First Tuesday of the month, 5.30 to 7.00. And we talk about a range of subjects. Personally, I've already spoken to Tim about it. But Lucy's talk this morning was pretty inspiring. And I'm looking forward to sort of maybe taking on some of those ideas to get it. But it would be really good for all of the developers that I've met in Dunedin reach out to us. Or if you're interested in coming along, that would be great to see you. The thing that has always staggered me, I helped organize some of the earlier meetings a few years ago. And the thing that staggered me, there was a question today. And Lucy talked about why, how can you do that in a smaller center? Can this work? It'd be great to be living in Sydney with developer talks to choose from and choose which flavor. Not quite so easy here, but really in Dunedin, there's a surprisingly large IT scene. And we really don't communicate between ourselves as much as we should. So I sort of rough around, I'd organize the talks for a year or two and I could find a new IT company in Dunedin every single month to introduce themselves. It's really interesting what's going on in the town. So I encourage you all to come along. Thank you very much. You appear to have a second... Ah, there is one way to do it. You'll see I've got no slides, we've got no website. There's a Meetup group, CodeCraft, Dunedin. That's it. You appear to have a second talk on this list. I do. You have three minutes left. Ah, I only get three minutes of both. I will do that talk tomorrow, if you like. Okay, wonderful. Right, so Marcus Holderman, if you can come and get marked up here. And we're just going to wait for our next speaker to try and make the tech work. At PyConAU, I would normally be embarrassing them by running the timer down while they try to get stuff connected. But we have plenty of time here today, so... Ah, it's no fun if you don't rush me. Right, so we have... So we have... Serialization formats are not toys, which is going to be presented by nots Tom Eastman. LAUGHTER Hi, who's seen this talk before? Who hasn't seen this talk before? Excellent. It's a half-hour talk. I'm going to do it in five minutes. That's Tom Eastman. I'm not Tom Eastman. I'm not Tom Eastman. You're not Tom Eastman. Tom Eastman is over there. Serialization formats. Why am I talking about this? Loading data into your app is the most boring part of your day. You just want to get your data into the thing, and then you want to do the cool stuff. The problem is that 90% of magic merely consists of knowing one extra fact. If I know how I can get into your system through your various things, through bugs and not features, then I can ruin your day. This is me with my hacker hat on. Everything I'm going to be discussing today is a feature, not a bug. This is going to be fun. So, here is a sample bottle app. All I'm doing is I've got a couple of different endpoints, one for YAML, one for XML, and one for LXML. All it's going to be doing is loading in the data and displaying it back on the screen. So, let's talk about YAML. Pausing YAML is really easy. It's a really nice human-readable format, and what it does is I can put in my first name, last name, and email, and it'll bring it back to me. That's fine. What you can do by default in YAML is you can apply Python objects. So, I can live instantiate date time and it returns a nice date time in my YAML. What else can we do? Well, I can also use subprocesses and system calls. So, I can import the contents of my current directory using LS. And that's wonderful. I really want my users to be able to do that. How far can I go? Well, we could always just load OS.system RM star and then destroy the entire presentation completely. That allegedly happened when he was trying to prep for this. So, surely this doesn't happen in real life, right? It happens all the time. It happened to TastyPy back in 2011. It happened to Rails twice. It happened to Puppet, who really should have known better. And then it happened to Node and no one cared. So, how do you protect yourself? You make the parser stupider. You really do not want your parser to be able to load system libraries. You really don't. And if you think you do, you really don't. So, you need to use yaml.safeload, which is absolutely obvious because if you're going to be typing into a Telesense compiler thing, you're going to put in yaml and then you're going to put dot and then you're going to think, what do I need L load? And you're going to hit the first one instead of the one that's down there, S. You can also do this in Ruby by monkey-patching it. This is a scary enough slide on its own. So, entities. You can have smiley faces in XML, just like you can in HTML. We use ampersand hash and then the Unicode character combination so you can have a smiley face. That's nice. What you can also do is you can define an element that refers to that smiley face. So, if I have the smiley, I refer to it with the name smiley, and then what you can do is you can have a smiley, which is a bunch of smileys and then you can have an S3, which is a bunch of S2s and a bunch of S4s, which is a bunch of things and then you can have all the smiley faces you want. Does anyone recognize this? Hands up. What is it? Yes, it's not the one billion last attack. It's the 138 million last attack because that's as much as it could fit on the screen. And he should know because he wrote the slides. He also tried to load this in Emacs when he was trying to write this talk and his laptop exploded because Emacs likes to load the XML for you and parse it. I use Vim. So... Stop clapping. She only has a minute. Oh, okay. What can we do? We can also do things like we could say, first, the local file system or somebody else's file system. Don't do this. Surely this doesn't happen in real life, right? It happens all the time. This is XML. We use XML in Enterprise. Enterprise runs as a brute. So, how do you protect yourself? You just do a few little things to get our XML working properly. But you need to make the parser stupider. You can do a bunch of things. All these slides are online. I'll tweet out a link later. You can do stuff with diffused XML. How long do I have? 45 seconds. Oh, that's easy. Jason, finally stupid enough. Only if you use a stupid enough parser. Eval is not a stupid enough parser. W3 schools, which you shouldn't reference, listen, here's how you do eval. Somewhere down at the bottom is actually saying don't use eval. And it's also right there. And just below it says don't use eval, even though it tells you to use eval. The lesson, beware of the flexibility of your system. Disable everything and just keep it simple. Thank you. Well, that there, that there was Katie McLaughlin presenting slides by Tom Eastman. That was originally a 30 minute talk. So if you see Tom Eastman in the program tomorrow, you know that 25 minutes of the 30 that you'll be seeing will be him waffling rather than presenting essential information. I actually recommend going to Tom's Talk tomorrow. It's really, really good. Sorry, on Sunday, Sunday, it's on Sunday. Sorry, Tom. Go to Tom's Talk tomorrow when he won't be presenting. Guaranteed. Tim McNamara, please come and get mic'd up. Marcus Holderman is going to be telling us about happiness packets. I got wide slides. No, I don't. These slides are actually not mine and they are from two people, two super awesome people from Europe, Eric Romain and Mike Ariel. Who knows, hands up, who knows this kind of situation or who has been in this kind of situation? Sucks, right? Now put yourself in the position of an open source contributor or an organizer of a conference or generally in the position of someone who does something for the community. How do you feel when you get a message like this? I feel totally overwhelmed, surprised and very, very grateful. Thank you for caring. Thank you for, you are unbelievable. You are a bunch of craziest, the most positive people I've met. You inspire me to give back to community events even more. I wish I could express properly what I feel right now. May I always rain superfuls on you but not all the time? That would be inconvenient. Only when you feel like having superfuls or someone that you like, or someone that you feel like feels like having superfuls or you just want to make it rain superfuls. Sending hugs, you're crazy, amazing people. This is a message Eric received a while ago. He's a Django Core developer and one of the organizers of Django under the hood in Amsterdam. When you receive such a message, you feel overwhelmed. You feel that something you have done actually mattered. The problem though, too few of us receive proper acknowledgement of the work they do. That is for different reasons. Openly expressing appreciation, gratitude or happiness to other people can be difficult. This is especially true when you don't know them very well. Many of us come from cultures in which people are not open by default about feelings and naturally feel uncomfortable or even creepy to share them. As a result of that, Eric and Mikey created happiness packages.io. Open Source Happiness Packages is a very simple platform to anonymously reach out to people that you appreciate or to whom you are thankful for their open source contributions. Thanks to them and well, if you feel like sharing appreciation to somebody, use that tool. It's pretty awesome. Use the website. It's really, really helps people being involved in open source communities who get the other kind of messages all the time to actually realize that what they do matters. Thank you, Marcus. Having been on the receiving end of a few happiness packets, I can say it's definitely an appreciated service. So yes, if you appreciate people in open source, go send them a happiness packet. Up next is Tim McNamara, who is the last person on my list currently. I'm happy to take more signups for lightning talks tonight if you have something to present. Come and line up. Otherwise, we can finish early. But first, Tim McNamara. Kia ora, good afternoon everybody. I am Tim McNamara. I wanted to talk about how to connect with other Pythonistas here in New Zealand because I was also very inspired by Lucy's talk this morning. I just thought I would raise or ask people to raise their hands again. Who is here to PyCon for the first time? So one thing we didn't do was give everyone a round of applause for that. Because it's a really, really hard decision to say I'm interested enough to spend money, but my weekend and maybe even a weekday to convince other people or my family that I need to take my time to learn about something that I really enjoy and I want to develop myself. So in a sense, your own selfishness is a really, really positive step. And I would like to open people's eyes to thinking that even though we're on the wrong side of the world and in the wrong time zone, and we speak a funny accent and we don't know how to pronounce vowels, there are probably well over a thousand Python programmers in the country. Kiwi PyCon has been going since most of this millennium and that was supposed to engender more laughs, but it didn't. So I just thought I'd go for a couple of hand raises again, who here's from Auckland? Okay, well, awesome. Wellington, Christchurch. Dunedin. Okay, all of those are Hamilton. Ruck on the Tron. Sure, there's another five or so of them in the room. Oh, yeah, yeah, yeah. Oh, great. So those cities already have very active, if not kind of fledgling local meetup groups. And if you're kind of bursting at the seams, the way to inject yourself into or at least hover around the periphery of those communities would be probably the easiest way would probably be meetup.com, but my preference would actually be if you took another step further. And that's go to NZpug.org. You'll notice that the website for the conference is actually the website for this pug thing, which actually stands for the Python user group and existed before meetup.com. If you go into one of the menus, it will be, there's a thing called a mailing list. And I mean this quite seriously because as someone who's organized with the Wellington and the Auckland meetups, we don't get people from the mailing list anymore. Everyone comes through meetup.com. That's pretty serious. So I want to invite everybody to invite themselves to the mailing list and actually start discussions there and actually have personal connections with the people outside of the physical spaces. If you can't attend one, please remember that there are several hundred people reading your emails and it's actually a really positive community. And the more we can get of stuff that's not just, oh, which Python implementation do I like? Or what is the ultimate testing framework? This kind of stuff is in a sense trivial and boring. What I think would be amazing is if we could have more human to human kind of stuff. And that was my big call for my few minutes. Thanks for the time. Thank you very much, Dan. You're lining up again? Go ahead. Oh yeah, yeah, that was PUG, NZ pug, like the dog. Ideas for lightning talks, vowel translations for the Aussies in the room, apparently. But done. No time, because we have Chris Main who's going to present another lightning talk. Yes, a very selfish of me to stand up again, but I came to the 2012 PyCon, having not written a line of Python in my life and I thoroughly enjoyed it. And one of the things I did then was I stood up for lightning talks and I said, you know, teaching, computing in schools, this is not the most exciting thing. What's happening in this thing? So one of the questions I asked was who had a computer when they were a small child? And if I could ask that again, there's been a lot of hand raising, who had a computer when they were, say, under 10. And actually, that's slightly less than it was. And in PyCon in 2008, everybody but three people in the audience had a computer when they were under 10. You know, this was just the thing. We've got here and taken the effort to come to Python. Our interest has been peaked by computing all of those things somehow. And then my second question at the time was, why is it taught at school so dull? Why aren't they doing more interesting things? Obviously I was completely naive and I apologized at the time speaking to teachers who are trying really hard in this area. And since then, I've done a little bit of helping some high schools do IT projects. I've been helping a junior RoboCup team building some robots and trying to fire off party poppers at the right time. And if I do that again, your kids are very disappointed when it doesn't happen. Filled with arduinos and pies, done all sorts of things around there. And I've sympathized a lot more with teachers. In the UK, recently they've had a big review of teaching and they almost came to a conclusion and they said, we should either stop teaching computing at high schools because we're doing such a terrible job in putting off more people or we should try and do something else. What they, one of the things that they've tried is they've said, right, we're gonna hire 400 expert teachers and they're gonna go off and teach the other teachers and see how that goes. In New Zealand, at the last RoboCup, where I was there, the person who sponsors the RoboCup nationally, he was the national chairman of the organization, they said that, whoa, we're teaching IT teachers. Last year, we taught three. Three IT teachers got taught. So, and then there's other problems in the New Zealand, in the New Zealand space, I think. And my time is gone. One of the things, I did a quick look at the Ministry of Education stats and we've only got 13 high schools with more than 2,000 people in them. In Dunedin, the average-sized high school was 550 kids and the problem that that presents is it's very hard to justify expensive resources around IT teaching. When you've got these tiny classes, even finding one IT teacher for each school is sometimes, it's a really hard effort. And also the courses at high school, the moment you get to high school, it's basically functioned around giving people a mark. Here's your GC, here's your school thing. They're doing really dull stuff, which is really sad. And my conclusion at the moment is that we're actually asking our IT teachers to do a very, very hard, if not impossible job. If we're expecting them to learn some computing at schools, it's impossible for the people to do it properly. So my conclusion and why I'm talking a lot in talk is I've met some interesting people already talking in the sphere and I think there's a real desire to do this. But I think as an IT community, we have to actively help our children's teachers. There's no other way that I can see, certainly in New Zealand with the size issues we've got, that it can't be the community here helping teachers do more interesting teaching in that sphere. And I think also as a community, we have to actively push for it to be treated in a different way. For IT not to be looked at as a tool to write my English assignments on, but actually to be considered a first class subject that's interesting. And I've also already talked, could it be assessed in a different way, more like art perhaps, where here's a profile that I do, here's my project, haven't I done some cool stuff? One minute. I think there's a possibility that the idea of master teachers could work, but you've always got that problem that I worked in the UK for a long time and I could sit here and I could go across the river and work in the city of London and earn some money or I could go and teach high school thing. We've sort of got this disconnect that it's gonna be very difficult to do. And so I think that there has to be, I've heard some interesting ideas already today about how that could work. But I think really my point is that as a community, if we don't wanna keep this sort of closed community where we sort of pass on our enthusiasm to just a small group of people, we really need to start considering how we do it. And at the moment, yeah, I think we need to start that conversation. So thank you very much for your patience. Let's go to the pub. Thank you very much. Well, given that I don't see a really long line of people lining up to give lightning talks, I think, oh, your time is up by the way. No, that's his time. Yeah, he's gotta get off the stage now. Yeah, done, great. So there is another round of lightning talks tomorrow at 4.20 again. Ideally, we'd like for that session to go like past 5.30, so we struggled to get to the dinner on time. That would be deeply appreciated, wouldn't it, Tommy? Yeah, so let's try and make tomorrow run late. Lightning talks sign-ups will be at the registration desk, so if you have something to talk about and you can fill five minutes, go and sign up. Well, sure, do five lots of one minute on different topics. Yeah, ooh. So before I hand over to Tommy, let's just give another round of applause to all our lightning talk presenters.