 Yn ystod y llai'r llai'r cyfnod yw Eurypython. Awn, mae'n ddweud... Awn, mae'n ddweud... Mae'n ddweud ychydig o'r llai'r llai'r llai, mae'n ddweud... Felly mae'n ddweud ychydig o'r llai? Rydw i'n ddweud eich llai'r llai'r llai? Rydw i'n ddweud! Mae'n ddweud, mae'n ddweud i'r llai a'n meddiadol. Mae'n ddweud ffioil. Rydw i'n ddweud! Rydw i'n ddweud. Rydw i'n ddweud eich lefnod yw fel y cyfnod yw. Rydw i'n ddweud i'n ddweud, mae'n ddweud i'n ddweud. Rydw i'n ddweud i'n ddweud. Mae'n ffioil, deall itfeth drwy gwrdd o'r llai ac mae'n amlugio'n ddweud wrth yma i chi. Rydw i'n amlugio chi i chi? Mae'n amlugio i ddim. Rydw i yna nid yn codi yn y blynedd. Mae'n wedi cael gwir. Ychydig yn y cyddiadag am adael? Efallai oedrychu. Mae'r cyddiadwch, yn y ddifolio'r cyddiadhydau mewn gwasanaer y website. Beth wedi ymweld y cyddiadwch? Beth ydych chi'n rydyn ni. Mae'r cyddiad routery, gyda'r cyddiad wahanol, gan ydych chi'n gweithio gyda'r gael ac mae'r ddechrau'r ddechrau sydd yn gweld ac ydych chi'n gweithio'r gael. Felly, mae'n mynd i'n meddwl yn gweithio'r gael, mae'r gael yn ddau'r tawl, felly mae'n meddwl ar gyfer bod yn ffrifio sy'n meddwl a ffloedd yn ei wneud o'r meddwl i'r cyflos i'r meddwl, ond mae'n meddwl o'r cyflos i'r meddwl o'r meddwl o'r meddwl, But she's only... That is at the cost of ice cream. And at some point she doesn't scale. So think about your own safety. We are not responsible for you drowning. So please make sure you can swim. We take no responsibility. Thank you. If anybody would like to help how carry stuff, also welcome. Okay, thank you very much. Big round of applause for the floats. So on the last day we have a bit of a struggle at being the last day. People leave early and things like that. There aren't quite so many people in this room as there have been before. But we need... Can we have Daniel or you? Excellent. But we need to make the same amount of noise because the lightning talk speakers have the same amount of nerves put in the same amount of effort. So I think we're going to have to practice that again. But this time you're going to have to try harder. It was excellent the other day but now you're just going to have to put in an extra, I would say 30-40%. Not being exact here. So can we all please practice our clapping as loudly as possible? Oh and you're already whooping. Can we have some foot stomping please? No foot stomping. I didn't hear a single. There we go. Oh with the rest, with the rest, with the rest. The whole thing. Oh never mind. Take it away Daniel. What the frog? I brought my own lightning talk timer so I can keep track. I'm talking about a game I wrote for PyWeek earlier this year. PyWeek is a competition, online competition at pyweek.org where you have one week to write a game from scratch in Python. And this time the theme was six and I wrote a game called what the frog which I'm going to show you now. So in this game you have to, you're a frog. I'm going to use the complicated keys because I have six directions to jump. So let me start at the beginning. So you can, let me move the cursor out of the way, you can chain jumps. So I jump up and the goal is to use your jumps to collect the flies but you can only use each jump once. So there's some element of having to time your jumps correctly and do the right order. And there's the slow motion and then there's this water effect that I spent ages on. Oh I'm out of jumps. Okay so I have to restart. Well I've completed the game in both the easy mode and the hard mode so it is possible. So I'm going to talk a little bit about some of the technology that I used in that game. Is that good? Yep. So okay title. So I drew all of the graphics in SVG in Inkscape. I make a lot of use of Inkscape during my pyweek games. So that's the title screen. But for this this pyweek I also used a lot of NumPy. So one of the things that you can do with NumPy is construct lists of coordinates. So this is the natural way of doing that in NumPy and I can plot that. So I've just drawn a square with a little notch taken out so you can see which way it's pointing. If you insert a list of ones into the end of that array. So you have three coordinates and the last coordinate is one. Then you can use a fine transform. So NumPy has the ability to define an array like that. And this is taking the coordinate straight out of the SVG. And so actually what I did was implement a function called matrix and then avalde it. Because you have a week to write a game. So you have to get through this. So define a transform like that straight from the SVG. And then you can use the at operator to transform all of those coordinates. And draw it like that. So that's really convenient. It's really fast. And it turns out that if you're sending those to OpenGL for use in render. You could just do that which gives you the coordinate list in exactly the form that I need for sending to OpenGL. I also use NumPy for the water surface. So I've got an array levels which is the heights of the water above flat. And that's then plotted. I've just set an initial offset in one of the values to reflect the frog jumping into the water. I can define some arrays for convolutions. And then I should be able to generate the next frame. So it's convolving the levels of the water and there's also velocities of the water. So there is a spring effect and that sort of propagates. And what I've done here is this will take a little more time to render. But you get the whole animation. I don't know NumPy very well. So I've maplotled so I don't know what that's doing there. So the next point of the week is September. And I encourage you all to participate. It's great fun. A big round of applause. The award-winning game developer, Daniel Pope. Can we have the next speaker? You're already set up. This is great. I like this. You're already there. OK. No more tractor jokes. Hi, everyone. My name is Vyacheslav. I'm from Russia. This is my fourth Euro-Pitan. And I enjoy it much the atmosphere and the talks. I'd like to give a big thank you to organisers and all of you. And actually it's not a technical talk, but I was encouraged by... I'm sorry. I had to stop this thing for a while. This was the next one. Actually I'm a backend developer. I like my job. But also I like biking to commute to work and just for fun. Of course, well, it's not snowing in Moscow like this. So when Switzerland was chosen for Euro-Pitan, I just thought, why not to combine things I like? So we decided to have this kind of road over the mountains. And I like the mountains, I forgot to say. But in Moscow, just in the middle of East Europe and playing, there are no mountains really. So we would like to combine stuff we like. And we built this road to make such a challenge for us. And to enjoy things. You see, Python is there, mountains and the bikes as well. These guys accompanied me throughout my journey. This is my elder son and my former teacher. And a very experienced traveller who crossed all the continents. So we started just like this. Then we bought our bikes and we started from Milano. I will share some pics just making comments. It was hard. Sometimes it was really steep and hard. We had to carry all stuff with us, including laptops over the Alps. Sometimes we just had rest during the midday heat. We had to learn how to put up a tent. Sometimes we fixed our stuff and sometimes fixed our tires like this. And of course we met beautiful nature of Switzerland because it's a famous country like this and like this. In the middle of the road. Sometimes we found some eatable stuff. And sometimes the nature literally tried to bite us. But otherwise it was very nice and pretty. Of course we learned much a lot about cultural heritage of Switzerland. And of course we met people. Sometimes we went through the places where English was of no use and we had to remember all I know from Dutch. Sometimes we got lost in fields. And sometimes we just sat on a cool lake shore like this. And of course there were mountains. There were plenty of mountains. And even more mountains and very high mountains. And when we felt like we didn't have enough mountains we took on hiking by foot to walk by snow. But our shoes were not good enough. And finally we finished our grand tour. It was hard not to fell in love with this beautiful country. And of course with this city. So we're happy to join this conference to take part in this great event. What did we get in the end? Hello Python. That's it. Big round of applause. So in a moment Christian is going to give us a talk entitled what you can do in ten minutes. Do you not understand the rules? I hope this is a joke. Five minutes you get five minutes. Okay cool can you hear me? Yes. Okay so what do you think you can do in ten minutes? Good luck. Something that you can do in ten minutes if you're Italian is to cook an amazing pasta. So you can cook spaghetti agio olio peperoncino and guess what? It will cost less than ten francs. And what else? So what else do you think you can do in ten minutes? So we are running this conference called Python Pizza and there was this guy and he said I saw like ten minutes talk it's not really for me, no time progression. Yeah it's not for me. But I want to challenge you because you can tell amazing stories in ten minutes. And it's for everyone, even for first time speakers, especially for first time speakers. So it's pretty easy actually. It takes 30 minutes. You think about the topic and then you think about four or five concepts to explain that topic. And you write down your one or two minutes stories for each point. It's pretty easy, you can do that. Now you have a talk, right? What else do you need? Now you need pizza. But this is the wrong picture because you need the right pizza. So you need a conference and guess what? We have two conferences happening in Germany in the next weeks. One is Berlin Python Pizza, 23 August. That's the domain is pretty easy, Berlin.Python.Pizza. And this is the website and it's going to be a night event. And then we have Hamburg. You can guess the domain. Hamburg.Python.Pizza is pretty easy, 30th of November. And you have to join the pizza revolution. Thank you. Two minutes talk about ten minutes. So next we have a quick talk. Do you want to come and set up? So we have a quick talk about these cool gaming gadgets. And then we're going to have a giveaway. Do you want to bring the laptop up? Hello again. My name is Sebastian Rol. I'm from Norway. And this is my first Europe Python. It feels like a different experience from the other developer conferences that I attend to. In that I know so many of you already. It's ridiculous. How open this community is. Another thing is that in other developer conference I feel kind of special because I'm a chemical engineer and I became a software developer. And here I feel very at home because everybody is this exact same way. So there's a lot of domain knowledge here. That's not just specific to IT and software. And I like that. So what we're going to do is we're going to give away two devices and you need to turn it on the microcontroller. There's a teeny tiny switch there. So we're going to play a game here. Let's see. Is it black and white? Let's go with no effect. So the game is like this. I'm going to start it up. Oh yeah, let's make it bigger. The screen is blue. And then you press one of these four buttons and it will either turn red or green. If it turns red then you pass it on to the next guy. And you have one in 200 chance of this happening. And that means you want it. And if you want it stand up and everybody will cheer you. Even though they're all disappointed it wasn't them. So good luck everybody. Let's go through a couple more demos. This is the Tetrix one. It's kind of cool. You've seen Tetrix before. I mean, I mean... Moving on. Let's see if I'm better at this game. This is called 3D Dungeon. So here we have some 3D. Oh, it's moving very fast. Yeah. So this was originally made for 3D Dungeon. So here we have some 3D. So this was originally made for this guy with the previous version. And it has a smaller screen. 64x64 displays. That's why it's so small on this one. Okay. Sorry for looking down. But I'm trying to do a lot of things at the same time now. Third one is a weather report. So this is just to show that temperature, pressure and humidity sensor on this device. You have nine-axis motion. Oh, it's so difficult. This one. Nine-axis motion. You have a GPIO extender. 16 extra pins. You have a microSD slot. You have some RGB addressable LEDs here. You have a surface mounted speaker with amplifier microphone with amplifier. And this is a 2.8-inch 240x320 display with capacitive touch. If we look at the back, we have an ESP32 microcontroller. So if you start using this, if you come to the sprint, you might feel that you're not even working with a microcontroller because this has a 240 MHz dual-core processor. It has 7 MB of flash and this one actually has 8 MB of RAM. So you don't really have to work as if it's a restricted system. Yeah. No sound yet. That means there's still hope. Did you mention you soldered all those components on by hand? Yes, we did. We tried and we failed, and then we succeeded for about 11 of them. And we got them to the workshop on the first day. And it was a... We had to work four people in a group, but it seemed like people had a good time. People stayed during the coffee breaks, which is always a good sign. And that's why we wanted to continue this with the sprint tomorrow. So I guess to conclude, we are Biparista. It's just me and a couple of friends. We like to have fun and make things. We have a tutorial that you can go through. If you come to the sprint, you're going to be running through the examples, all the components, how to use them. And I went to Hong Kong and I saw one of these things and I wasn't allowed to play because there was such a long line, a really long queue. So then we made one ourselves with an ESP32 microcontroller and we brought it to conference. It's always good to have a buddy that's trying to psych you out. You can do a lot of cool things. If you know how to do software, try to enter hardware. It's very simple now comparatively to what it used to be and it's a lot of fun to have physical things that you can create and give people a smile on their face. Thank you very much. That's awesome. How cool is that? Just keep passing those around. Maybe occasionally make a sound of disappointment or something, so we know where they are. I think we thought 1 in 200 chance was small enough that they would go relatively quickly. The idea of giving it to the people in the front row was a reward for coming to the front of the audience and providing more feedback to the speakers. But yeah, I guess you were all unlucky. That's a shame. You ready to go? Take it away. Round of applause please. Thank you. It was fun so far and you laughed a lot. I think it's time to relax your face muscles a little bit so to prepare for the next round of fun talks so I have a little bit of a dull subject. A protocol for python schemas. The mountains are just a cover slide but I'm amazed about people cycling over these mountains. That's really, really impressive for me. I'm not a sports guy. Schemas, what are schemas about? You all know about data types and basically data types are about trust typing hints. I use typing hints because I don't trust myself to program it correctly especially I mix it up after two weeks. I don't use them if I just do a five line script but if it grows into a 5,000 line thing I need type checking and data types. And the same thing applies to data which comes from the outside or goes to the outside or is interacted with the user and that's why schemas are there for. If I write my data somewhere in the database and read it back that can be schema less. Nobody is touching the data but if I go and send it to somebody or receive it from somebody screen, user interface whatever I need a schema. Schemas are in a way the same for data as data types are for a program. And there are a lot of solutions in Python to define schemas. There are things integrated libraries integrated with a mapping system like Django, Escal Alchemy Graphene for GraphQL. Yesterday I think I learned about Strawberry very nice. Ah, thank you. There stand-alone schema libraries, servers, calendar some of them are defunct. Marshmallow has a large following in this very active. I like the one called schema because it says what it is and there's Validir and Volaptus. You cannot combine these schemas. There's no interoperability. All of them have a little bit different API. Internal organization is completely different. All of them rely on some data types. And the same issue we had with connecting to a relational database and back in 1994 they wrote DBA, DBA API version 1.0. That was for Python 1.4 and there was a guy called Mark Andre Lamberg who wrote a Sieg and we all know him in this conference. So these things got standardized very early, were interoperable so you could switch from one database to the next. I thought could we do the same for the schema library so I could use a Django schema to talk to GraphQL use it in Strawberry without writing a map specifically between those. I thought about we don't want to sort of set internal structure standardized completely but provide a protocol with a few operations validate some data export them to an external system import them from an external system and maybe name them have a joint naming so we know that the system is chasing like mime types XML is XML, pickle is sort of one of these schemas as well and then have some mechanism to handle schemas and export them and transform them into some kind of standard representation and read it back. There is a PEP 5.9.3 annotated types and once I discovered this it's not yet implemented in any types this could be a handle to transport schema data from one schema to the next in sort of a little standardized representation. A minimal protocol to allow round trip between different schemas. If you're interested take a picture I have some GitHub proposal there I don't show this in the time but you might take a picture or you might clap, thank you. Thank you Martin. Has anybody won yet? Who's holding them at the moment? Oh we have a winner! Stand up! Big round of applause a big round of applause of jealousy and where's the other one right now? Where's the other one right now? Over there, still blue red Take it easy Well So if it gets to the end and it has to start to go back could you press it twice instead of once? Let's try and make a winner sooner rather than later. Good. Okay. Okay everyone, hello everyone I'm single, I'm not the first time to be here so some of you already know me I'm in the registration area and sometimes probably my instance or some problems might ask you more about your request but anyway I'm very happy to be here to help you and also I'm very enjoying the conference so I want to share something some experiences mean why or why you have to come here you know this one is your person which means hero, it means many many countries we love people in many countries so we are here to try to make some conference and also make some talk also make connection with everyone what kind of purpose are you so what does it mean first of all I have to thank every one of you speaker, sponsor and perspective and of course I'm a volunteer so I have to thank myself too without you without all of you we cannot make it happen so thank you and I think I have some mission so before my talk I have to introduce myself I belong to the organization which is called Force Asia we have Github and we have Sami that's all so my question is what's the purpose of you come here I already asked before and I just put the question behind because I want to introduce more about others this one is a personal pleasure one of my mission and also you have physical to the website of Google you can go in and also we have so many community and conference around the world and you have Python US EuroPython and also we have Python AIAPYC in Asia so if you have chance to go to Asia I'll be there and here's a map of Python in Asia look see we probably have seven countries and we have Pycon so if you have chance to go to Asia check the map and also check schedule you have interested and also all of the Pycon in Asia we will welcome the English speaker so don't be shy try to co-proposal in there and also I just introduce Pycon Taiwan and we'll be here in September ok China and Japan will be here in September too and another one is community because I don't know how many times Pycon in Asia this also is only 70 but I believe it's over 70 just information I got and also community in Taiwan and others is pretty much a contribution base sorry a little brush sorry this is not my I forgot to delete it ok back to the topic so because I have a question about you just because I heard the question before that I can give you 10 seconds to wrap up 10 seconds 10 ok maybe 10 minutes then why the purpose is to go to a post-pub post-pub is open source without conferencing in Taiwan the biggest of the one and also why the purpose is to go to Taiwan because 80% is going to conversion and 90% is going to talk so please go to Taiwan and also that was amazing actually I mean you've just given a fantastic round of applause to know he has also you saw the yellow t-shirt he's been helping out and solving people's problems for the last five days so can I have another round of applause for now please ok hello my name is Christian I'm working at the Qt Company which is one of the companies behind the Qt project and I just wanted to show you how in less than five minutes you can start your first desktop application so first motivation desktop applications are there that's the thing that maybe you hear all the time but it's not true you know one of the first thing that you need to do if you have everything web based what is open a browser desktop application there so fake news desktop application is alive desktop application is alive and also you don't need to use build different application for windows for mac for everything you have many options and sometimes maybe it's not really the best option to use the whole browser to have something that works everywhere I mean I don't remember the name of the frame was Neutron? no I don't remember if you are not cute it's pronounced cute not Qt it's a cross platform written in C++ and guess what it's available in python so you can just go there and install python 2 which is a set of official python bindings so you go these then you write the first thing which is the all the boiler press for application application some window that we need to define and then you execute the application what is this special windows is just a class you said ok let's add some widgets a label and a button put it on a layout and that's it so then you have some magic that maybe connect the button to do something and then that's it you have already your application so the whole enchiladaw of this thing is that if you go and execute this you can have this amazing application to have 1 million stars on github to just show hello aero python so let's go back to the slides not convinced there are other options out there there is also the PyQt all to some bindings for Qt there is Keevy, there is Toga there is logic viewer so just go for it and if you want to understand what is happening under the hood all these things is in the talk that I gave on Wednesday so you can go there and check all these C++ black magic and thank you very much they have a couple of links there but most importantly please as always said support your local groups we have this amazing community in Berlin many meetups so give back to the community thank you we love a short lightning talk so we have about 10 minutes left so we may be 2 to 3 more talks you ready? round of applause please so this is a usual art gallery as you can see there are some paintings there are some descriptions near them there is author, there is a date there is some message some description of this painting and for me this is also the same we get repository we have also the piece of art our code we should care about our code so indeed we have commits that are represented here in paintings they have also some description so my name is Gregor Szkocsian and I'm honored so usually when we work we want to fight with some bugs and we fight with some bug we can find this bug in one piece of code bugs looks like this one and what is going on there so we will call the git blame to find who is the author of this code and ask him what this code is doing and what happens if he is getting fired as you can see it is really difficult to find on the stock photo developer being fired so what's more possible when I wrote this code only God and I understood what it does now God only knows that's the usual case that happened to us so what we can do we can check the commit message so how it looks like this should fix it thank you captain obvious so what we can do with that we can write better commit messages fix issue for adding a new order explain what are exceptions what the case was exactly and what we did to fix this this is very important and we can do this so there is another thing not always we can find our issue by looking at git blame usually sometimes we need to dig through whole the history but what's that mess it looks like this one and what we should expect is this one so our art gallery we don't want to throw our piece of art to pale of random commits so instead of this we want to this to receive this one how to achieve that with simple git comments git commit amend git rebase master and the black belt of git users git rebase interactive so to use all of those comments we need to use git push force which is really dangerous but don't worry with great powers came great responsibility and we should take it so there is another important thing there is also git reflog it could save our lives because it stores all the things that we did in our local repository so whenever we delete something we break something there is reflog but one important thing it is only local so if we delete our repository it will gone and that's why we can that is the way how we can create our art gallery for most important art python code but what is important in this case is that we are not only creating art gallery but we creating a library we are creating a knowledge that is stored in our repository we can store there every our issue how we solve it what was the cases what are the issues that we had and how we solve them what were the alternatives and this is called codified knowledge and this is term that Kevin Henne is using very much and this is very smart guy so we should listen to him thank you that's great advice there do you really work with somebody called scary terry so have you heard of the new TV program for former farmers it's called the extractor hello Rowan my name is Efe it's my first time in Europe I really enjoyed it thank you Rowan do you know where is this place do you have any idea about it yeah of course Istanbul so who haven't visited Istanbul before can I see the hands please there is a good chance for you guys actually first of all I'd like to mention about the community in Istanbul we have really active community active python community in Istanbul we are almost 9000 people we organize weekly meetups next week we will organize the 94th one actually also we organize Django girls workshops and other hackathons this is from a weekly meeting of ours we have more than 60 attendees in each meetups this is photo from a hack day we organized two months ago we have a large diverse community I mean really diverse community so we thought about that why don't we organize a python conference instead of these weekly meetups so the idea of python turkey came out we haven't approved by the python software foundation yet but we are exchanging emails about it but still we are planning to organize it in next February in Istanbul so it will be our first python actually as you guessed we need a lot of help because of this if you are interested please subscribe the newsletter in python.estanbul actually this is a real domain name you can check it if you don't believe me thank you for patience see you in Istanbul thank you so I'm afraid we are running out of time and now this will be our last lightning talk of the evening I have a big R who's enjoyed the lightning talks who hasn't enjoyed the lightning talks it's going to be a small one just give me a big round of applause take it away hey everybody so I got something simple enough that we can still understand the whole day of code and these are three ways to format your strings they produce the same result but one is better than the other it's fstream 3.6 only but soon everybody should be here right let's time it let's see what is also faster and not only more readable we are running it 10 million times fstream wins by a significant margin so I'd like to see more code which would use it I'd like it to be consistent and to use mostly just this and for this reason I have written a tool called flint and let's try it let's run it on the flask code so I got here the flask it's just checked out from the repo we'll run the tests we'll do it real fast now we will install flint and we will do flint flask ok it's not so much we found 43 expressions which we have transformed but it would save you some hour of work and you would be more certain that you got it right let's run the tests again and it worked I've tested it before, I admit ok so we have changed the 18 files don't run it on something outside of the version control you can see everything we changed and you can make nice correct commit give me a stone github if you don't mind or report your issues I'm working on making it work for multiple lines of code but now it converts only single lines but that should be like 80% of your use cases so don't do it by hand use that tool flint thank you very much so stay where you are, we're going to set up for the closing session now I hope your hands aren't too sore from all the lightning talks because there's lots of trapping to be done as everybody's thanked for all the work that they've done and this should be more or less my last moment on the stage so I will see you at next Europe Python bye everybody