 So Pavlo, take it away, Jupiter, this is Houston. Hey guys, good to see you all, thank you for staying. Right, so TLDR, what I'm gonna talk today is on Bitly, talk-to-Jupiter, so there is an example. Okay, right, so the point of this slide is like, if we want to talk to Jupiter, there is no need to send an expensive rocket to Jupiter with I. Okay, so what am I going on today? So Jupiter notebooks, probably a lot of you use them, and sometimes you probably have a use case where, okay, well I have a Jupiter notebook but I want to modify a set of arguments and rerun it for a slightly different set of arguments and you end up creating a copy, like saving a copy of your notebook. So essentially when you have the same code base but you want to rerun the same code with a different set of arguments. So at the moment, or Jupiter notebooks are not created as templates, they're not created as functions, it's not easy to inject arguments into them. So I'll show you a way of doing that, okay? So if you Google the same question how to run Jupiter notebooks with arguments, this kind of JavaScript snippet comes up on Stack Overflow, it's good, it works in notebooks, it does not work if you want to create a nice looking Jupiter dashboard, it does not work there because kernel is not accessible through the JavaScript. But on the other hand, this kind of snippet can live in custom JS if you want to use it. Well, but we do not have a problem so there is a way and actually my slides are kind of meta slides because they are a notebook, they are the solution and also the slides. I'll actually, I'll show you. So this is the key, better? Can you see that? So this is the key part of the code. So instead what we want to do is we want to register a communication channel. So the JavaScript side of the notebook to start talking to the Python side. So for that you need to, so there is a mechanism, you register a channel and you send a message from the JavaScript side and you register a handler on the Python side and then you will receive the message. So in this case, what we are going to be sending in is the URL of the notebook and if we can supply arguments to the URL, we can decode them and use them as arguments. So demo time. So as I said, this is the same notebook that I'm using. So F11 to show you, that's not visible, is it? But basically, there is a URL. So your notebook, and then I pass arguments saying items foo, bar, and I want to select some of them. So let's see what that does. So if I just go ahead and rerun this, okay. So this notebook does not do much, but what it does do is creates this multi-select widget. It gets the items from the URL and it gets the selected values from the URL and selects those items. This way you can pass, so let's say if you run your notebooks for different regions, for different stocks, for different, whatever, however you slice your data, this is the way how you can parameterize your Jupyter notebooks. Don't make copies of your Jupyter notebooks use this kind of approach. So just to show that it actually works, I can select bar, yeah, it's fine. So this is what you would do if you want to select, let's say, different geography or different stocks. So here we go. And we select the different items. So notebook is aware of what you want to achieve, all right. To the end, and this is the URL. Thank you. Okay. So it was a cool thing. Now we have to, yeah, Daniel Pope on this stage, and we need Pavel Shavchenko. There you go. Go prepare. We have not that much time left. So well, as you can see, how many of you were in yesterday lighting talks? Okay. But no, that's cheating. How many of you ended yesterday? Okay. Now I see. So well, the one that wearing yesterday lighting talk, know me, I'm lady, I'm present myself yesterday, but now I have another one, you know, because I thought that today you were going to be a lot of more and I was kind of afraid. I took him just to sacrifice. So you prepare. There you go. So, I spoke earlier in the week about massages that we were doing at the social for the, in aid of the Python Software Foundation. If you're at the social, I probably spoke to you and chugged to you. Chugging is the term for charity mugging. So I now have slides. So I can actually show you a picture of Rob Collins, who I mentioned sadly died last year. People last night were, you know, sometimes shared a few words with me about, you know, their memories of Rob Collins. Here he is massaging in 2013 in Florence, that's a chain massage, advanced technique. I did not want to give the impression that Harry Percival is dead. He is, as far as I know, alive. I've spoken to him this week. So he's, in fact, he's really healthy. This is him massaging last year. This is the, in Bilbao. And then this was last night. So we had quite a parallel system of massaging going on. And people said they were good massages. So that's great. So how much did we raise? Drumroll. Well, 1,070 euros and 68 cents. And I didn't put on the slide, 20 Polish slotties. So to change the subject and use some of the rest of my time, I am a hobbyist games programmer. And for the past, I think it's nine years I've been participating in a week long Python games programming competition called Pi Week. And you are challenged to come up with a game in a week, exactly a week, on a theme that is given to you at the moment the contest starts. From scratch, and the majority of it has to be Python, if you were around on Monday or maybe Tuesday, we learned at EuroPython this year that somebody has done the work to make Python a scripting language for the Godot engine and also the Unreal engine. So this upcoming competition in October, you would be able to use Unreal, which is amazing. So thank you very much to the people who did that, whose names I forgot to put into my notes. I will adjust how much time I got. Not long. OK, two minutes, that's low. So I was going to show you a, this is where I should have mirrored my displays. This is an entry that I wrote for, this is my previous entry. It did quite well, but it didn't win. So I'm looking for a win in October. So if you want to compete with me, yeah, bring it, bring it. So this is a murder mystery set on an ocean liner. You sort of, there's a corpse. You can sort of explore the crime scene. Two glasses, what does that mean? And then we can sort of go in. Anyway, so you can download that on the Playweek site and solve the mystery for yourself. Thank you. The award-winning Daniel Pope there. Can we have Pavel up to the stage? I feel like I should explain the pink hat. Several times during the week, people have asked me why am I wearing a pink hat. And the answer is that I'm pretty much bald. And this is a really sunny country. And it's kind of embarrassing having a pink head instead of a pink hat. And I thought it would make people, make it easy for me to be recognized. But the problem is now when I take it off, nobody recognizes me. So I'm going to take it off now so you can all see the transformation. And then I don't have to wear it, which will be nice. It's me! Ready? Go Pavel! Can you see it, guys? Hi, I'm Pavel. I'm from Malta. And please raise your hands if you're from Malta. Yeah! We have two people. Three. All right. Now another raise of hands if you've ever been to Malta. Okay, quite a few people. That's great. I'm giving you a few more reasons to visit if you like. So there's the other way. Well, there was the other window, but we've got a few more beautiful architecture, more beautiful architecture, a couple of beaches, and developers, well, Java programmers. So we're going to change that by helping Malta love Python. Woo! All right. So we've set up a Python user group, it's called PyMalta, and the goals are to bring developers together, act as a hub, we're going to do this by organizing meet-ups, social events and talks. We're going to grow our numbers by inviting other programming languages and speakers from around the world like yourselves. All right. So yeah, if you're interested in talking, please, like speaking in Malta and visiting, so please talk to me after. But if you are in Malta, please get in touch, and these are our contacts. And that's it. Thank you. Is Lukas Langa prepared? Okay. Go upstairs. And the Amsterdam airport queue? I really hope it's just a part of the queue. We have not that big a stage, so, okay, prepare. He's laughing. I don't know. It's funny. Are you prepared? Lukas. Yeah. All right. We have no time. It's the last day. People are getting nervous. Aren't you? All right. All right. I feel that you are a bit hand-over to be nervous, but okay. Okay. Hi. I am Lukas Langa, and you are not running Python with warnings. You should be running Python with warnings. So for the next five minutes, I'm going to be your mom. I'm going to be giving you a single piece of advice multiple times, and you're not going to get it, so I'm going to be bringing up, like, stuff from your past that would be so much better if you did listen to what your mom is saying, right? So you should put on your coat or you'll catch a cold. You should never climb trees or you're going to fall off and break your neck, and you should be running Python with warnings enabled. Remember the time when you were hoarding files and never closing file descriptors? And then, like, your entire operating system isn't happy because you were using all the file handles and, like, everything went to shit, so that would totally not happen if you were running Python with warnings enabled because it would warn you, right? Remember when you were coding so hard, you know, focused on your creative aspect that you were using strings or wrong? Well, if you were using warnings with Python, that would never happen. You probably meant a raw string there, or maybe you misspelled an escape. Speaking of escapes, remember the one time that your escape plan turned out not to be as smart as you thought? Well, that would totally not happen if you were using warnings with Python. And in fact, at Facebook, some of HHVM's tests, integration tests, are in Python. And this warning discovered invalid regular expressions that never matched. So there were unit tests that were doing nothing all this time because people just knew, like, pro-compatible, you know, regular expressions or whatever. So use this. Oh, and remember that time when you were bitten by an unexpected bite? Yeah, so that would only not happen if you were using warnings with Python. So do that, right? When Instagram switched to Python 3, some of our code seemed to ignore configuration changes and we were super confused what's going on. So it turns out you as Geary turns any configuration parameters as bites. So the check was always false due to mismatched types. That was the most expensive piece of Python code that we had. But moving on, it's no longer 1999. Some of your favorite syntax, idioms and APIs are deprecated and will get removed in future versions. So you need to move on. You would be informed which ones those are if you were running with warnings. And to finish it off, remember that time when you failed to kill an orphan? Well, that turned nasty, didn't it, right? It's like a lot of wasted resources, sleepless nights. Like, that would totally not happen if you were using warnings with Python. So I could just go on and go on and go on. But if I didn't convince you by now, it's sort of hopeless, right? So at least do it during unit tests. WD prints the first occurrence of any matching warning for each location where the warning is issued. Dash B prints the first occurrence of bytes warnings for each location where the warning are issued. And you're thinking, yeah, but I still live in the past. Well, you can still run with warnings. There you have to do something else, which is dash D, which is warnings for tabulations and spaces, whatever. And obviously, dash 3, which means I really want to switch to Python, but I don't know what will break. So please, as your mom, like, use warnings with Python. Thank you very much. Can we have... Yeah, we need the Amsterdam RPU to go on a stage. And Roberto Martinez? Where are you, Roberto? OK, just go and prepare. Wukas, you just spoke, looks young and handsome, but I'm a hit. He does? I think so. Oh, cool. But I met him eight years ago here at Python. Yeah, then he has to be young, you know. He's older than he looks. OK, you ready? Almost. Almost? Really? I'm sorry. OK, I'm not judging no one, so... If you don't need a slice, you can do without them, too. Is someone that is going to make a light in talk without slice? Think about it, you'll get, like, up in the list. No? Really? You computer people. OK. Well, if Roberto is prepared, maybe we can just... Because we can't stay waiting for a long time. We need to close to your Python. I know. You want to stay. I know that you want to stay forever, but we have to end sometimes. I'm going to count you down from five. We need to sleep. The organization needs to sleep sometimes. Count them down from five. Five. Sorry, guys. Thanks for trying. We've got too many talks to get through, I'm afraid. So, Roberto, Roberto, are you there? Can we get the next speaker? This is Makye, up to just kind of stand next to the stage. That'd be good. Are you there, Makye? Yes. Did I pronounce it correctly? Yes. And now we're still game. Yeah, the HTM... OK, really, you can maybe do it with those lights. I can let you the Python if you needed to. A puppet show or something. This is like they don't want. I love how in these kind of places you see a problem and there are like lots of people just trying to fix it. But no one's here. You're like throwing ideas. Wow, this is awkward. He hasn't got the HTM. OK, I think, I'm afraid, we're going to have to give up on this one as well. Don't worry, we're not going to run out of speakers. Thank you for trying. Can we have a round of applause, please? This is actually my eighth Euro-Python in nine years. See, I'm old on the lilac as well. Oh, so you're like from the dinosaurs and that kind of thing. Cool. I've been coming since Birmingham. I originally went to Euro-Python because it was in the UK and it was cheap. Yes. Hey, who likes threading in Python? Quite a few people. Who likes the global interpreter log? The global interpreter log, so we removed it. Now what? Turns out it's not that simple. We need to think about language semantics because right now we have language semantics of C. If you write threads that clash, you sacfold. Not great. We need to think about the multi-threaded performance, which requires a little bit of thinking. We need to think about multi-threaded tools. So just because you have race condition doesn't mean it cannot be debugged. PDB right now would happily stop one thread and let everything else go, which is not always a desired behavior. So those are the things that still need to be done after we remove the gil. We need to think about C.Python C extension modules, which we support in PyPy these days. And that probably requires an extra lock and a bit of thinking here and there. So we are looking to raise $50,000. We already have some pledges to remove the gil and PyPy. And that was a very quick lightning talk. Thank you very much. Thank you for being that sort of time. Okay, then now Nicholas, Nicholas Maynster. Well, get prepared. Sorry. Christian, brother, who has no slides, is going to give us a super awesome talk. Okay. Now, what do you have to do to give great talks at EuroPython conferences? There's an easy recipe. First, give a lot of talks. And second, get them evaluated. This is why we have the talk feedback here. Over the past few years, I had the opportunity to actually actively evaluate 500 talks. 200 of these were on data science that I did for clients. 100, they were talks I gave at public speaking clubs. 100 at international speech contests. And 100 were my own talks that I got evaluations to. And I made a couple of observations. Number one is that usually structure beats the slides. So if you are preparing a talk, try to focus on making your structure very clear, having three to six main points, not more. Having a slide deck is not a structure. Second, story beats CV. A story can be something very simple. For instance, a claim like, let's see whether we can get this Python package installed in five minutes, makes a story. It's much better than starting a presentation with a little bit about myself. Number three, take away value beats completeness. Usually your audience won't know what you did not talk about. Nobody is claiming to say everything in five minutes. I have the feeling that improving our speaking skills is something that is worth doing in order to have better conferences in the future. And this is why I started collecting materials to make speaking workshops, speaking clubs, events to improve our speaking skills. And you find them on Google if you type speech underscore projects. I repeat, speech underscore projects. It's on GitHub. Contributions are welcome. Thank you. So, Nicholas, can you go up and Mike Mueller, where are you? Okay, come here and prepare yourself. I really hope that you get the message from the talk we have just had. You know, most lights, more time. And there we go. All right, thank you. Hello. Let's talk a bit about TDD. Three years ago, I went to a conference called EuroPython. At the time it was in Berlin and there was a keynote actually about the topic. Will I still be able to get a job in 2024 if I still don't do TDD? Right. So, this year I'm again at EuroPython and there seems to be, I didn't see any talks about TDD in particular. There's a lot of talks about testing frameworks and other techniques for testing stuff. So, I wanted to find out, is it just because everybody is doing it or why is nobody talking about it anymore? So, if you would help me out, I would put up two statements and if you would agree that this statement is true about yourself, just raise your hand, right? I use TDD. Okay, see, almost, no, no, no, please leave them up, please leave them up. Okay, that's, yeah, not everyone, please leave the hands up still and just take them down again if you don't agree with the next statement. And the next statement is, when I implement a new feature, fix a bug, I write the test first. So, I don't see that many hands going down, but some. Okay. So, this is a bit interesting. Quite often you see people, you know, they tell you, oh, yeah, I'm doing test-driven. And then you say, oh, cool, so how is this new feature coming? Oh, yeah, it's just, it's all done. I just need to write the test, you know. So, this leaves me confused. Because you're not doing test-driven development, you're doing development-driven testing or testing, really. It's still good. And you still have the unit tests in the end, but it's not really helping your development. So, yeah, just, I just wanted to quickly do, I guess, a crash course of test-driven development. So, that we're all on the same page again. Right? You want to do a new feature. You don't really know how it will look in the end, but you know what it should do. So, the first thing that I do, I sit down and I think really hard about the tests. And I want to define the tests so that they really fit what I want the feature to do in the end. And they rule out all the things that I don't want it to do. And then I just go and shut the half of my brain off and think about what I'm going to have to dinner and just develop on. And I know if the test pass, I'm probably done. So, last year I went to Australia and they have a thing and maybe I can just use it. So, around the tests, it doesn't work. Because the metal things, they need to re-round, right? Okay. So, I do another thing. It still doesn't work. Okay. Now I need to get creative, do something else. It looks interesting, I guess, but the tests still don't run. Okay. I get crazy. I have low blood sugar now. I'm hungry. So, I just do a thing. And, well, is it even? I don't know. Okay. It's still... Okay. So, I need to take a break, obviously. So, I take a break, have a coffee, come back, think about it a bit. And I come up with this thing and, yay, the tests work. So, I'm done. Cool. Test-driven development. So, yeah, test-driven development. If the test pass, the app works correctly, right? That's not quite the case. So, yeah. Remember, the tests have to be good. So, the tests are really the thing that you need to concentrate. Harden, write good tests, and then, yeah, then do the development. So, remember, write tests, shut half of your brain up, develop on something and profit. Thank you. Cool. So, Mike Mueller, are you, and Alexandra Mueller, where are you? Where are you? Okay. So, come here and prepare. This will be quick. Okay. There we go. You're a sci-fi. Hello. So, you're all at the conference, but there are more Python conferences than just EuroPython. And I would like to introduce you a sci-fi 2017, which is only a few weeks ahead. Actually, if you have an anniversary, it will be our 10th edition, so this will be a very special conference. It will be in Allang in Germany at the university, and we have a full week, so we start August 28th, and we finish September 1st. The conference has two days of tutorials, so we typically have a beginner's track and advanced track, and we often have authors of open source library introducing things like NumPy, Pandas, and many other scientific libraries. These two days are followed by two days of talks, and we have presentations, but we also have posters, so if you would like, you can also present a poster. And finally, on Friday, we have a sprint, and we sprint on scientific libraries, obviously. So a registration is open, so if you would like to come, please register now. You can find more information at this link, as you can see down there, you'll start by org 2017. We have a lot of topics, so we cover pretty much everything that has to do with something to do with Python and scientific computing, array computations, parallel computations, visualizations, data, flow, kind of things, but also something about the scientific Python community, and everything, general purpose tools that can be used for science, too. So if you have a web program and you would present something that can be used for scientists, you can also do this there. Of course, we talk about algorithms and other topics that are related to Python science. The program will be published soon, that we are currently in the phase of reviewing the proposals, so we have quite a few proposals, and we are heavily working on the program. We also have a very interesting keynote, so Julia Rohrer will talk about how to fix scientific culture, so if you want to have more details, please go to the website. And you can also become a sponsor, so if you would like to support the scientific Python community, please talk to me or send us an email, and you can reach the scientific Python users in Europe. And the only thing now that's left over is you have to come to the Python URO-SciPy conference. Thank you very much. Oh, sorry. If you just wait there. Okay, take it away. Hello. I want to talk a bit about how the cultural background affects our perception of music. I have dealt with this topic in this last year for a project for my school, and for that I've made a survey. So here, you can see a scale. And I use the scale to represent the music in different cultures. This I have transformed into something you can hear, and I use this table here, and these are the frequencies for each note. I use this program audacity and made these scales for you. They might look like blue boxes, but actually, if you zoom in, you'll see this. Okay, they might look like lines now, but if you zoom in further, you'll see this, which is quite typical for a sound if it's a clear note. So I made these sounds, and I still needed more for my survey. I had to decide if I wanted to take that picture of the world or that picture of the world. I decided to take the second one, so the bottom one. And I also found out that Google had this, knew the colors like this. Of course, I knew that was wrong. And after trying and trying, I finally got a survey that looks like this. I would ask you to please take part in the survey and ask all your friends to take part as well. Here's the link. Thank you. Who's enjoying the lightning talks? Make some noise. So technically, we only have time for this next talk before the closing statement, but we can stretch another 15 minutes, maybe get another three talks in after this. Who's up for that? Yeah? Okay. Awesome. In that case, I have to look down the list. Yeah. Ken Martin is there. Martin somewhere. Cool. Just get prepared. And we'll give Daria a few seconds, actually. Oh, no. It's not working. Also, yeah, the tune of the talk was we have no more jokes about peace. Cool. I'm not sure if this is a good or a bad new, actually. I think that she took, like, really hard to think about the 15 minutes. Yeah. This is working. Cool. No, it was just for getting your hopes up. It's not actually working, sorry. Also, Anton Cáceres, it's going to be not the next, but the next. Oh, there you are. Cool. I think this is where we're supposed to make a joke about the next on the desktop. Yeah, we should, but, you know, when Harald give this talk, when Harald give this talk, the discops were, like, photos. We only get the default one. It's just a default wallpaper. It's very disappointing. Okay. We cannot give you more, much more seconds. So close. Yeah. It was, like, getting closer and closer. No. Is anyone more that can give the talk without the slides? Maybe you, Daria, can go give the, Daria, can you give the talk without slides? No. Okay. So then, yeah. Martin. Round of applause, please. It's like more pressure. Hi, everyone. I'm Ramon. I'm Rook. And we both work at Amsterdam Airport Shippel. At Amsterdam Airport Shippel, we really like Python. We're working a lot with it. A lot of our models run it. We do a lot of analysis with it. But we're looking for more people in the aviation industry that's also, like, using Python. So in order to achieve that, we, yeah, in order to start that, we created a tool which solves a problem which is probably common for many people working in the aviation industry. Because whenever I want to do an analysis, I ask a partner or a carrier, like, what are your plans? And they give me their schedule for the year in a very sadistic file format where my colleague Rook and I have developed a solution for. So as you can see, the flight industry started in the 30s. And to kind of sync the state of which flight is coming where at what time, they started first working with teletype riders. Unfortunately, the slide is missing. And the format looked like this. So you see it's like a magical string that says something about something that will happen. Now, sorry. Oh, yeah. There we go. Yeah. So since the 30s, much time has passed. But the only things that's changed were that now there's a binary annual conference at which they sync their slots. There's also email and some API calls. There was 140 conferences already so far. So think about that. And the format is still the same. So this is the explanation of the format. We start with the action code. Is it visible? Yeah. So this means we add a new flight. This is the flight number. This is the period in which the flight will go. This is the periodicity of the flight. So this means it will only go on Saturdays. It will have 150 seats. And it will be an Airbus 319. It will go at noon to Linz. And it's a charter. So you see like a human readable, very condensed format. Perfect if you're using telegram. The old one, not the new one. So this is passed around as surf files. And this is how they look like. So we have a header. And then we have the kind of the description of one flight. So this is called a slot. Actually, a slot is composed of multiple flights sometimes. So what about this slot we showed? So we can read it with R2. It's on PyPy. So you can use it. We read it from the disk. And we see that there's one slot in there. The header looks like this. The slot itself looks like that. Great. But how many flights is this? Well, we can expand it. And this is actually 10 flights. Yeah, fine. So what about the real use case? So let's take summer schedule of 2017 for Amsterdam. We see that there is 20,000 about slots. And there's even a warning. Because Transavia likes to put 24-0-0 instead of 0-0-0-0 for their time. I don't know why. Okay. And now we can expand these slots into flights. And we see that in about four second slots into 300,000 flights. Yeah. Okay. Okay, yeah. It's available. You can pip install this tool. You can clone it at GitHub. And please tell all your friends in the aviation industry. Because I can imagine that you're not all using seraphiles at the moment. But please, anyone you know, tell them about this. And I hope we can get a good cooperation within the aviation industry for Python. Okay, cool. So now Daria is coming again. Let's see if we can do this fast this time. Anton, you're prepared? Cool. The next one is Jiao Junior. Oh, and yeah. You were Roberto? Yeah. Okay. So this time you think it will work? Okay. Then you're next. There we go. Bonasera, Europiton. First of all, I would like to thank you very much to coming to Europiton. I met some of them last two years. And I'm very happy to see you again here. But in some coffee breaks, I met guys that said it's the first time here. So I would like to hand, like, huge hand to them because they're the first ever Europiton. So I would like to invite you to peace. This is a conference. So the first conference was in 2014. And in that edition, we made the pie joke. And you can install them. People install pie jokes. But the problem is that we don't have more jokes about peace. So please come and help us. Why? What does it S in our name? So we don't promise it pie SS. We say peace. And it because of the speakers. So this time we invite Jessica McKellar that it's very nice open source software developer. Peter Wang that it's very famous guy from continuum analytics. Some probably not very known person. But it's about aerospace. It will be cool talk. And we will have two social events. And it will be pinches as most of you know. And cider house. And of course we have beach. And we have three of them. And it's the best beaches of the Europe. And it's very well known of the food and very happy people and very calm and friendly. So please come to our conference. It's on the 6th from 8th of October. The call of proposal is open. And it will be first day. It will be tutorials. And it will be for free. And then two days of weekend. It will be talks. And then come and to peace. Thanks. Thank you. Now you are Martin. Martin there you go. So how are we going to with the time? How we doing? I think we've got 10 minutes left. Yay. So you heard that Martin. And now the cable won't work. Yeah probably. So there we go. It's a bear. A bear really? In a python conference? You have to learn about context. There we go. Introduction of small king. So hey everyone. I am Martin Angelou. I love python in jungle. I am currently working at hacksoft. Which is situated in Bulgaria. Such a beautiful country. I am also software engineer student. In software university. In Bulgaria too. And before we start. I want to ask you. How many of you have written unit tests? Great. So what's unit testing? It's actually a test methodology. That allows you to. To write your. To test your code. And small piece of it. And it has. It actually has five principles. Known as first. Which stays for fast, isolated. Repeatable and self-validating. And timely. So. You have to write. Which actually. Head us into some problems. How many of you have written. Function like this. A function that calls another function. Which actually. Is pretty hard to test. Because. You can't isolate it. And. Something like this. You are part of a function from a model. And call it in your function. And you have to test. To test your function. Which actually breaks. These principles. For this problem. Problems. Are mocking. What's actually mocking. How many of you know. Great. Bye. Well. Mocking is actually. Test technique. That allows you to. Fake your functions. And by faking your functions. I mean you can. Create the return value of the function. And also. The side effects. Like raising an exception. And things like that. I. Prepared a simple example. Which. To me. Is clearly represents my thoughts. I have such a. Small function that just tells me. If it's the summer. So. To get the now. So. This means that my if I don't mock. The get now. My function. My test will only pass. If it's August. Or it's July or June. So I have to mock it. And it's. Pretty easy to do so. Like in the following tests. Here I'm just. Patching the call. To me such a confusing thing in. My first mocks. Because first. I mocked. The function. Which is incorrect. You have to mock its call. And it's simply done by. Decorating your function. And. After that you can. See what the return value of. Your mocks. So congratulations. You just mock the present. Yeah. And thank you very much. If we could have the next stage. I'm telling you on the stage. Yep. We need Joe junior. Okay. Yeah. Would have thought you could teach it in five minutes. Actually it was four minutes. Oh, for minutes. Good on you. Are you prepared. Nice mountains. You. It seems like there's something there. And yeah. You ready. Yes. There we go. Hey everyone. Cool to see you. I want to invite you to Python Web. And instead of talking I'll just show it. Excellent idea to have a. Python conference that is. Dedicated just to web programming. And focus just on the web. And what a great idea that is. I think this is a really great opportunity to bring. People from the Python community together. To discuss this particular topic. Of Python on the web. Without being. Isolated into our Django. Or clone or other. Little communities but instead sharing. What we have in common. Great job. Python Web organizing team. It's a great to be here in sunny Munich. People. Great to see all the new energy. Combining with these committed developers. Interested in learning more about Python. Nowadays technology is not one. Isolated thing. And so the pike in the web is. We build this diverse community. By combining professionals. And beginners. To share the knowledge. To be inspired. What are happening within web technologies these days. If you have the opportunity. And so I hope to see you. Next year in Munich. I hope to see you. Can we have a final speaker at the evening. I'm pretty sure that video wasn't made today. You know, like the time to. Lighting talks are supposed to do in the same day. But I'm pretty, pretty sure. That that video wasn't. Just suspicion. So you're ready. No. Maybe give me feedback. Okay this is going to be the last speaker. and then we're having the closing session, so sorry about, well, it was more than half of the list, so we can be pretty proud of ourselves. You, okay, you're ready? We can see the slides, so, yeah, there we go. We come here to invite you to go to Brazil to next conference, the main conference in Brazil, have a lot of raisins to go there, this is in my city, Belo Horizonte, the first raisin is about the event of Python, the second raisin, this is Belo Horizonte, is the capital of bars and beers in Brazil, and for German people have a special raisin that is bad for Brazil. In the city, last World Cup, Brazil lost for Germany by 7-1, and it is not good for Brazilian people. In Brazilian people, we have a great and strong community, and a lot of Pylates and Django girls, that is very special from Brazil. The conference in Brazil, the Python is not only about the technology, it's about the people too, it is very strong in our community. Yeah, so last year, this was a picture of our conference last year that was held in Florianopolis, and we had 17 activities there between talks and tutorials that were presented by women, by our Pylates, and this year, we have 29 activities to be meted, and we are hoping to beat that number this year, with a lot of girls talking and giving tutorial, besides all the Django girls events that are happening in Brazil right now. Probably, do you know from Brazil, Luciano Ramalho, that is author of the Fluent Python, and Fernando Massano, that is a big profession, and he already speaks around the world about Python. And here, we can see about the many events of Python in Brazil, because Python is very strong, the community in Brazil. Here is only the main conferences in Brazil, don't have about the meet-up and the Django girls and the other events. And here is the number about the conference when it starts in Brazil, and in this year, we waited about 600 persons. I would like to invite you to go there. Thank you. So we're just stopping the lighting talks now. I think the people have spoken. Okay. It's just a popular demand, but we're just leaving him on a stage, because you're quite, from here, you're quite intimidating. There's a lot of you screaming, and it's like, oh, okay. So the title of this talk is How to Get Your Pants Stolen at Europe. I hope that's American pants. But he hasn't. I hope that's American pants, not British pants. Oh, really? Thank you, guys. So I had this kind of strange thing happening to me. I wanted to share and raise the knowledge about some dangerous things happening in Rimini. So basically what I wanted to do, I just wanted to have fun at the social event. I came there, I met a lot of interesting people. The event was actually really, really cool. Thanks to the organizers and credits for the photos to Alessia, the photographer. Yeah, so the event was really nice. This is kind of a representation of me having fun at this event. Yeah, by the way, the pants were white. So then I decided to go to the beach because I met a really nice person and we decided to have a swim. And what happened then? The robbers came and take our stuff. And when we came to see what's happening, this is what we did. And well, yeah, honestly, I really had to walk without my pants to my hotel. So some lessons learned. First of all, drink responsibly. Don't come up with crazy ideas. Keep in mind that it might not be that safe during the night. Thank you for the attention. If somebody wants to support me somehow, you can talk to me right after the event. OK, can we have a round of applause for all of our speakers this evening?