 I also feel great. I feel full of positive energy from this conference and meeting so many people, but also feel a bit sad because our conference is coming to the end. However, we still have a lot of things to do. Lightning talks. First lightning talk is from Dima and the topic is game engine in Python. Dima, could you please come here? Yes, hello. I'm Dima. I'm going to talk about my custom game engine that I made in Python. So I'm 13 years old. I'm currently a game developer. Yeah, interested in game development and have experience with some game engines like Godot Engine. Yes, this is my first Euro Python also. So what is a game engine? A game engine is basically a tool for game creation. Yeah, why create an own game engine? Yeah, for the most part is for fun or for learning experience. Sometimes it's for speed or specific use case. So I made my own one called Fusion Engine. It's based on PySDL tool and Graphics Library. Yes, you see here repo, QR code will be on the end for presentation. So here's the basic example. On the left you see a popular game engine called PyGame. And on the right you see mine. So both do the same thing. And, yeah. So I tried to make a speed comparison. And as you see, a popular one like PyGame takes like three seconds to load a window. And mine one takes one second. Yeah, a small checklist what our plans are to like make the game engine. Our plan was also to implement some rust at the slow parts. Yeah, it's a little bit inspired from this Euro Python. Yes, this is it. Thanks to our computer contributors. We are welcome to new contributors. So if you want to contribute, yeah, just go with this QR code. No, I'm not. Yes, thank you. Thank you, everyone. Please welcome Deb that will tell us something about the Python Software Foundation. I tell people I am at the PSF and then they say something to me that leads me to believe that they don't really understand what we are or what we do. So I'm going to answer that first. And then I want us to be friends. So first of all, we're the vendor neutral community driven home of Python. And everyone likes Python, right? Yeah, kind of like a nice thing. Like, I worked at other nonprofits and like hosting means like, oh, those two boxes that I move around in my basement. Not so much for Python. It's a really big kind of overwhelming infrastructure like kind of hurtling into the future. An average version of Python is downloaded over 300 million times per day. Which is a lot. And then in last year, the PyPI saw 57% growth in both download and bandwidth. So when I say massive infrastructure, I mean pretty massive. So that's the first thing we do. We also have this grants program. This is our lovely accounting team. They let me post this picture of them looking really tired at the PyLadies auction at PyCon this year. But they are lovely. So in 2022, we gave out 152 grants totaling over $200,000 to a bunch of different countries. Why am I telling you this? I mean, it's nice. I do like to brag as part of being a person working at a nonprofit. But I want you all to apply for grants. So this is the URL. I'm going to leave it up there for a second. Like, please take our money. We want to help you build the Python community. We want to buy lunch at your thing. We want you to get more people. We want you to give out travel grants, whatever it is, that's going to make your event extra awesome. We're also the back office for about 15 other initiatives, a mix of meetup groups, other PyCons that happen in other places, and some technical projects, including the global network of PyLadies chapters. Yay, PyLadies, right? And of course, we've also been putting on PyCon US for about 20 years. So here are some folks. Maybe you recognize some of them, maybe not. That's kind of the big PyCon, I guess, but it is not the only one. We do also offer travel grants because having come here from the US to Prague, I'm aware that it's far and cost some money. So if you want to come join us at PyCon US next year in Pittsburgh, which is not very dry and not very weird about being LGBTQ, which is also important to us. So yay, Pittsburgh. They have pierogies. I hear you also like those. So you'll feel right at home, I promise. And then finally, the last thing I would love it is if you all became either supporting members of the PSF or certified yourself as a contributing or managing member. So the supporting one is kind of the more traditional, like where you give us money, and then we count you as a member. The one that I think is extra cool is the contributing or managing member, which is if you work on Python or the Python community, it doesn't have to be code. It can be setting up meetings. It can be going and driving to pick up the pizzas. It can be hanging out at the registration booth here five hours a month on average. You can certify yourself as a contributing or managing member of the PSF. And that means you get to vote on the PSF's board of directors, which we just did a director election. We liked it. Chuck is a brand new board of director. So you can start telling her, no, you should bring the complaints to me and the sparkly inspirational ideas to Chuck because I'm getting paid, so I'll take the complaints. So that's the URL for that. I'm keeping it short and sweet. I'm here like after lightning talks, if you want to ask me questions, find me on Twitter, find me on master, really find me on master. I don't want to be on Twitter anymore. Thank you so much for your time, and thanks for having me. Thank you very much. The next speaker is Arthur. Hello. Okay. Sorry. So testing files. So testing files in Python. I'm sorry. I have to do this mirror mode. I need to have it in mirror mode. Yes, like this. Sorry. So testing files. If you testing files in Python, you don't know really where to start because you either don't have the files or you want to do automated testing, so you put them in the repository, but then you can't because you need to first upskate the data or you don't have the files for all specific things. So I'll show you how to create files in many formats with no efforts, using these two libraries, a Faker and a Faker file. And it starts just like that. You just import the Faker class, then you import the file provider that you want to use, you initialize the Faker, you register the file provider that you want to use, and then you just do it like this. Dockx file, in this case, this is Dockx file, and then it's generated for you, as you can see. So the first print that you see is just the file object. And it looks like a string, but it's not a string. It's like a string-like object which has some additional metadata it contains. One of them is the full path to the file, but it also has the content. And the content is the text that the file was created for. So imagine like an image or a PDF. So if you want to test your pipeline that you feed files with, and then you want to take the inference, like you want to be able to see if your file is properly injected in the system, you can search on it. So this text that you could use to search on it in your search engine after your pipeline is processed. And let's go on. And you can also provide the text, the content of the file manually, just like this, this Alice in Wonderland text. And you provide it in the contest argument and use the same, you create Dockx file using this text. And yeah, it's created. In case you need a more structured template, like, I don't know, you want to make an email or document like that, you just provide a string with this. And these are all sort of tags or providers inside the standard providers of fake library. And what you get is this PDF generated using that content. Oops. I don't know why it fails, but yeah, also the archives. They're also archive supported. And the archive is like a zip file. It can be a tar file or email file. Because what is an archive? It's a file that contains other files. And they are supported too. So you just, by default, you just have this, the zip file created with a file text file inside. But you can go further than that. There is this, the inner helper functions for creating archives are created. And every file type in this library has correspondent helper function. And then you can create actually, in this case, you create an archive which contains archive and then, which contains archive and then it contains like Dockx file, which is rendered according to the template. And if you need a more structured way of doing this, let's say you have a zip file with a single Dockx file and then two XML files, which does contribute to the structure. This is kind of, you do it. If you need just bytes, not the files, you could provide the raw true arguments to the thing and storages. So if you work with some frameworks like Django, and you want to use dynamic fixtures, Django will throw an error if your file being saved into the system is anywhere different than your media root directory. And to solve that, there is this system that file storage is implemented. And so the way you do it, if you work with dynamic fixtures is that you provide your cynics media root to it and it's generated. It also works with network storage, so remote storage. So you can create your, test your files right into AWS or Google drive or Azure. And yes, there is a CLI. Thank you very much for your great talk. Speaker is Sena. Thanks. Hello, everyone. I'm Sena. It's so lovely to see you all. And I'm a recent electronic engineering graduate. And now I'm pursuing my master's degree here in Prague in data science. And today I will try to introduce you Kata. And I will take it in aspects of discipline and motivation. Kata is a philosophy. And it is originated from what you're seeing, Karate. The main goal is to master a subject, expose yourself repeatedly with one niche example so that you could improve and acknowledge the practice itself. And at the same time, you could get into flow. That's the main purpose of it. And as you can guess, this is making it much more adaptable to any kind of file. That's why I applied it in programming and it's already practiced in programming as well. Because it's solely based on training your muscles, stretching your brain to not memorize, but actively participate in that part, in that particular task. Imagine doing something repeatedly every day because it's recommended to do Kata's early in the morning before everything because your mind is in a clear state and you should benefit from that. But you're doing the same exercise every time. And since you're doing it like that, it is making you kind of gain some new perspectives on the thing that you keep seeing every day and make you kind of connect with it. And it actually gives you a sense of accomplishment as well because this is something that you did yesterday, even the day before that. And today, you're trying to do that as well. So you're seeing it repeatedly. You're connecting with it at the same time you're learning the different perspectives. In terms of programming, my sister was reading clean code and then she said she knows that I had some overthinking over programming because I'm coming from electronic engineering. And I had a hard time transitioning to CS. But she said in this book in the 14th chapter, Uncle Bob is recommending doing Kata's and explains how to imply them. And I would really recommend this book to you because CS mindset is something that I really admire since all of them are coming from, you know, based on philosophies and hippies, they seriously are doing something great. And I'm listening to them. Let's come see to some examples. In here, you're seeing an IBM example because they have a website with these kind of listings. Experts and your mentors are actually trying to tell you this. They keep telling you practice more. But I do not like hearing that because I think it's not detailed enough. And by practice more, they're actually trying to say participate actively to what you're trying to learn. And in terms of actively learning something, you have to question it yourself, not listening to someone and not copy-pasted, but seriously think, what can I do to solve this next step? And it could be the most easiest task that you choose for yourself. This is my Kata. It could be like a string sum, odd-even example, or like finding the prime number, or like any kind of digit question that initial interview questions. You can choose it as your Kata and say I will go with it. But since I'm an AI engineer, I would like to shout out to that. You could, I think, also do ML and deep learning Katas. And you could do it by thinking how can I build a perceptron? Because they ask me this multiple times in these interviews. And yes, you should be able to explain it to yourself, for yourself, what I do, what is the first step, what's going on, and activations like building like LEGO blocks in your mind to be able to connect with that. And actually for neural development, it's proven to, if you actively learn something, it helps you develop some habits and learn that thing better. And since you're making connections, it's not getting lost in your brain too. So I definitely recommend you doing Katas in terms of neural development as well. This is a meme. He's a tennis player and he's in a very cold lake. He's saying never give up. Since you're seeing, I'm inside here and I'm still doing this. So you in your house sitting, you should never give up because like he's not giving up. And it's seriously worth it. You are worth it to learn things better and getting in the flow with your own subjects. So I hope you will try Kata and I hope you will like it. And if you do, please get in touch with me and let me know how it goes. Thank you. Thank you. The next speaker would like to be introduced as this green guy. Hi. That's the HDMI. Do I disconnect it? I don't have USB-C. It's an old HDMI. You don't have a USB-C? No. Hello. My name is Muize. I just busted my identity. Sorry. This is not there yet. This is a talk about multitasking. As you can see, let's mirror. And I believe... So this is Fox dot. Fox dot is a Python wrapper around something called Super Collider. Super Collider is a sound synthesizer which we start with Fox dot. Fox dot. Dot start. Because I don't want to use Super Collider syntax. And here we go. And we are running. And we run Fox dot. And we have our error on Super Collider. So this is not going to work. So let's try again. And yes, I've been to this error before. Let's ignore. So this happens because when I connect, my MIDI controller will give me different speeds here. So we just have to change the frequency of the channel. HDMI. HDMI 48, output 48. Microphone 48. And then maybe now... Okay. Yes. Let's open this. I don't want this. I want to do something else. And I'm running out of time. Yay. It's less than I need. Okay. So basically, you can execute this Python code. Okay. Make it visible. Let's sort scale. Let's play some notes. Do some chords. I hope I'll not kill people now if too much sound. Oh, it's coming quite loud. I can't hear the bass. Should be playing. I can't turn on the volume. Yeah. Can someone take up the volume? I need volume up. I can't control the volume while you're on my side. No, it's connected. Is the AV team can... No, it won't work. Can the AV team put this audio up? Yeah. So there's an USB here. And so Python, there, ukulele. Do you need me to change the output? Oh, I see. Here, USB and B. Okay. Output. I see. I know what's happening. Yeah. Explain. I need to restart. Oh yeah. Kill all servers. Maybe. I can always come back next year. Let's see how many can fit. He did amazing things. If I could, then I would. I'll go wherever you will. The love tonight. And she will be loved. And she will be loved. Pictures of you and pictures of me hung up on your wall for the world to see. Because I can't live without you. Whenever I fall at your feet, you let your tears. Am I not pretty enough? Because I'm not here for your entertainment. You don't really want to mess with me tonight. Can't read my, can't read my, you can read my poker face. Come on, Barbie, let's go party. That's how many songs you can fit in a lightning talk. Thank you. Thank you for this great performance. Our next speaker is Julian, who will tell us something about wiki crawl. And in the meantime, I would like to ask Christian to come here with topic Python in your language to get prepared. Thank you. Hello, I'm Julian, and I would like to share an open source project with you, wiki crawl. So for the story, when I was a student, I was used to implement everything that came to my mind. And at this point, I did a crawler in Java that was quite ugly. And that was fetching wiki pages, collecting links and starting over and over until the memory crash. And so it was useless, not that fun, but a good way to learn. That's why I suggest a friend of mine who is learning Python to do the same thing as an exercise. And at this point, what I would do differently if I have to do it now with my experience. And here is the answer. So first, I will keep Wikipedia because that's the best website in the world, you agree, I'm sure. After that, instead of a script, I will use a task queue powered by salary. And it's okay if it's useless, but at least I want it to be fun. So I will use a graph database to go in details. Here is the pipeline. I want speed sheets, but there is two workers, one for the crawling, one for the recording. So to make it run on my computer locally, I'm using Docker compose, of course. And I'm able to start it now. I will need to fine tune to find the good scheduling that avoid the crash. So let's add some monitoring to the stack, graph, everything I need. And it's not that bad. I have a dashboard. I can make it run over and over until I find the good schedule. So you will tell me, I'm crawling Wikipedia over and over. That's not a good thing. I'm a bad guy and I prefer to avoid that. So let's map Wikipedia and add it to the stack. At the end, I'm implementing a crawler. I have everything I need. So at this point, I guess I have everything to make it run. And yet it's working. I'm able to fetch the data in the database. If we take a sample that I said, there is real simple relation, like an apple is a fruit. The page apple refers to the page fruit. But what would be fun would be to find really strange correlation between concepts that are really not linked to each other. And so it would be fun. But at the point, it's still useless. I did not find what to do with it. It's online. It's open source. Please, if you want to contribute, that's all. Thanks for your time. Thank you. The next speaker is Gabrielle Jover. Oh, that's not him. Sorry. So Christian with the topic Python in your language. Hello. I want you to answer me some questions. Who is here not a native English speaker? And who here can read and speak, check? Okay. Many fans. That's a good thing. Good. So this talk is that I want you to encourage you to things. The first thing is to check into some C Python internals. If you haven't, don't be afraid. You can discover new things. And there's a lot of things that I didn't know that were there. So for example, just compile the latest version from the repo. And they discover many things. So let's start with the basics. So for example, we have a list. And then you want to append an element. What do you use? Append, right? And then what if you want to append an element twice? But nobody knows. Any core developer knows? You need to use append to append, right? What if you want to do something like appending something at the beginning of the list and don't give me the boring answer of insert? Exactly. So you need to write append backwards. Right? But most importantly, there are many other things that I didn't know. For example, I noticed that there was a new method called translate. And then I checked, well, that's really convenient. We are in Czech Republic. I mean, we don't speak English so well. Sometimes we make errors. So I was just checking it out. And then I said, okay, maybe we can do some translate. And then use the code. Let's wait a little bit. I don't know what the uses maybe. And then I started to see, well, I have no idea how Czech is, right? So maybe you can help me, the Czech speakers. So if I want to check if this element is inside this list, how should it be here? It's not in, right? And yes, it works. So if you want to see, for example, this is not there, right? And also works. So I noticed that also everything else is translated. We don't have enough time. But the simple thing that we always teach are people, okay, so you want to do a for loop, right? So you do, I don't know. And then you have it. But the second message that I wanted to give you is that, of course, that maybe not the proper solution to approach Python to more people, doesn't speak it. The proper approach is to work in the documentation. Here you see a really beautiful diagram. I'm really proud of it. This is all the people that contributed to the Spanish translation of the Python documentation. You can see all the names there. And now I have a task for you. So I was checking the languages that we have in the Python documentation. There is no check there. So I think that you have something to do now. Because remember, having the docs in our language, it's kind of like people can feel like home. And with that, I just wanted to say, let's enable more people to learn Python. Thank you. Thank you. The next speaker is Gabriel Jover. And he will tell us something about artists. I'm ready to be here. Like this. So hi, everyone. In this afternoon, my name is Gabriel Jover. I'm here for the Alba Synchrotron, which is a scientific infrastructure. We do things with Synchrotron Lite. And we have, I'm here presenting, introducing artists. It's a work done with Kino and me. And the idea of this package is to work seamlessly between different packages in CPU, GPU, and in next future GPU also. So why artists? So what's the problem? So in science, we used to look for high performance. And we are testing different libraries. And at the end, we are using different frameworks. NumPy, PyTorch, GOOPy, and other libraries for transforms and tomographies and in general. And at the end, we found out that we want to have a common access for the different implementations that even though some of them, they have the Yufung, Dundas, they are not enough. So sometimes the functions doesn't return the same or they are not interchangeable. The path to get to the function is not the same. So for making the code interchangeable and running on different hardware, CPU, GPU, and different devices with different libraries and moving the data here and there, sometimes it's problematic. And we came up with the idea of having another library, having different framework backends and a common API for an homogeneous using of all of them. So the approach is using also the Yufung, but defining a frame which is a combination of device and the framework backends. Then we use artist arrays, which combines the same data and the frame. And then we can extend the different frameworks writing the framework backends for the different extending Yufung when they are not there, or unifying the output in form of an artist array. So I am not bringing up to a live demo, but the idea is you can import artists and create a frame. You can choose your frame of choice between NumPy and Kupy. You can create an array in different either NumPy, Kupy, PyTorch. You can move them around from CPU to GPU. It is very explicit, but it also has default frameworks for doing it easily. Then we can call the function seamlessly. So for example, here we can call once either in Kuda or in PyTorch. But we also keep the idea of having a common API. So in Torch you can call a brand for any other function as you will do in NumPy. But we also keep the original framework in case you are more comfortable, but you have to be aware in that case that in which framework you are. So the current status is that it is modular. So you can extend the frameworks adding more implementations as entry points. It is expandable in terms of modules. So the idea is that you are implementing modules for transfer where we can work with different libraries, transformations, rotations, tomography, spectroscopy, and other scientific cases with a common way. So we can run them and test them in CPU, bring into the processing in GPU, in the farms, or next also working for GPU. It was thought to be already published, but not still. So I guess in few weeks we will have it public in the repository in GitLab. And that's all. Thank you very much. Thank you. Our next speaker is Mira from our local Czech community. Thank you. I am so nervous I can't find my HDMI connector, but I found it. It's on the left. Okay. So what happened now is that I want to mirror this. Is it working? Probably yes. Hello. So I've been at this conference for a while, and every time I met someone new or someone joined our table when we were eating or drinking coffee, I handed them a sticker. This sticker with the old logo of what I'm going to talk about. And a lot of people were like, yeah, I know the thing in the middle. I know the thing on the right, but what the hell is the thing on the left? And I said, that's Fedora. That's Fedora loves Python. And people say, like, what is Fedora? And I was like, okay, you didn't know. So I decided to tell it to everybody once instead of doing it 100 times. So Fedora is a project that goes for Fedora Linux, which is Linux distribution. I know I lost half of you now, like I don't do Linux. But unlike other operating systems, we are not trying to target everybody. We try to target the users that create, whether it's code, design, whatever, makers, not just consumers who watch YouTube videos. And what I do and what we do in our team is that we try to make Fedora the best operating system ever for Python programmers. I have this assumption that we have some Python programmers here. Do we have some? So why would you want to use Fedora Linux if you use something else? Obviously, it's because we have Python. That's not very, like everybody has Python nowadays. But the thing that Fedora has, and I don't know, Debian doesn't, for example, is that if you have Python, it is Python. It contains everything. So if you have Python in Fedora, which is almost always, you can straight out go create a virtual environment, you submit to install stuff, you will not get weird errors that you need to install some additional packages and stuff like that. That's good, but there are other operating systems that offer this as well. So what we have more is that you can install almost any Python at all. So, for example, if you go and you do sudo dnf install, which is like the natural way to install packages on Fedora, or you can use a clicking thing if you prefer, you can install Python 3.12, you will get the latest and greatest beta 4. And it's not just Python 3.12. If you, for example, install talks, it will, by default, install all the Pythons that we support so that you can run your code, your tests on different versions of Python, be it old Pythons that are not supported upstream but are supported, for example, in some enterprise distributions, be it the new Pythons that haven't been released yet, be it PyPy's, we have that all and we keep it up to date. It usually takes a few days because there is some way of testing after upstream releases it, but we have this and you will have this on your computer if you use Fedora. You don't need to compile your own, you don't need to use some pyvams or whatever, you just get it. What's also important for us as Python developers is that our Python is almost vanilla. It's almost, we have two patches. Ten years ago, when I joined the team, we had 200 patches in Python 2 and lots of Linux distribution patch a lot. We now have only two patches and we have a long-term goal to get rid of all of them. So whenever we need to change something, we go upstream to see Python and we talk to them and we talk to them and we talk to them and we try really hard not to have patches that are only ours. We also have a Fedora Python classroom lab, which is something you can download, and then install in an environment where you teach people who don't have their own Fedora. It also comes in containers and vagrant boxes. So you can use that if you have a workshop or if you teach beginners, you can use Fedora, which is optimized for teaching Python. There are pre-installed stuff and you don't have to set up the environment. We also have a GitHub action. So if you want to use Fedora on your CI because you are not yet ready to use it on your computer or because you already are, you can check out Fedora Python TOX GitHub action and use that. It basically runs TOXes with all of our Pythons on GitHub actions. What we also do is that we drive changes forward. So for example, we spent the last half a year or more integrating Python 3.12, which is now in the beta phase into Fedora and we will rebuilding the world. 5,000 packages we have with the new Python. We've been reporting problems to upstream, be it Python, be it the projects. We try again, again, with new releases again and again. And you're welcome. And 10 seconds, we also do this for other projects like Python and Python and everybody else. We try to be very cool with our upstreams and contribute a lot. So if you haven't, check out Fedora, FedoraLabsPython.org. Thank you very much. Thank you. Our next speaker is Sebastian and his topic is named F-star-star-k it. I gave this talk last year, but by talking with a bunch of you and checking out your talks, I realized that you all still have bugs in your code. So here we go again. No, it's good. It's good. I got it. Don't worry about it. Oh, I lied. Is it not this one? Is it USB-C? Oh, sure, sure, sure. But I'm going to have to... It was not my fault. USB-C connector, please. Yeah, the other side. Maybe just put it in this guy. Put it in this guy. Put it in this guy. Well, this kind of sucks. Still nothing? Can I connect something else directly? Can you just do the HDMI? Yes, I prefer this reduction because we know that it's already working. Well, it doesn't seem to be working. This worked fine earlier today for my talk. All right. So like I said, some of you guys still have bugs in your code. So I'm going to teach you how to fix production code in five minutes. Disclaimer, this may get you fired. So don't you hate it when it's like 7pm? You spent the whole day coding and you've tested nothing because why would you? You haven't used type hinting because your CTO told you not to. And your code doesn't work. It has a bunch of bugs. You just wanted to silently work and pass all the tests and go to production. Introducing fuck it, the error steamroller. Fuck it is a Python package. You can just install fuck it with pip install fuck it. And then whenever you have a function that doesn't work, you just use the fuck it decorator and it works. So as per the documentation, the module is like violence. If it doesn't work, it means you're not using enough of it. So you just chain fuck it calls. All right. Finally, there's advanced features you can use. You can use the fuck it context manager when there's a bunch of code. You don't know what's failing in it, just with fuck it. And it works. You can even use it to fix broken imports. Now, I know some of you are a bunch of open source guys and you're worried about using other people's code, but don't worry about it. It's with the do what the fuck you want to do public license. It only has one clause. You just do what the fuck you want to do. So the next time your intern, your boss, or one of your friends comes over and says, oh, no, production is fucked. Fuck it. Thank you. And the last speaker is Charles, who will tell us something more about Django girls. Let's try. Okay. Let's talk a bit about myself. I'm chill. My pronouns are she, her. I'm a lead backend engineer in Kraken tech. I'm a board member of Django software foundation. I'm serving as a vice president this term, this two years. I'm a organizer of PyCon Turkey. Also, co-organizer of London Django meetup. Member of PyLadies. As Deb mentioned, I'm a new PSF managing member. But what am I talking about all this thing at the end of a three-day conference? Because it all started with me starting to organize a Django girls workshop. So today we're going to talk about Django girls and how it can empower me, you, and everybody. So what's Django girls? Django girls is a one-day workshop. Actually, Django girls is a non-profit organization that help volunteers organize a one-day workshop. The idea is to empower women about programming. Funny enough, the Django girls actually born in Europe, Python in 2014. Ola and Ola decided to run this beautiful workshop, Django girls to teach women programming. And now, today, after nine years, we managed to do over 1,000 events all over the world, like over 100 countries, with like 23k participants. It's huge, right? But what's so good about Django girls? So everybody has their different takes from it. What is good about Django girls is, like, first, it's like zero barrier. Like, you don't have to be, you don't have to have a tech background. It is just to show programming is available and doable for everyone, by everyone. And, like, it's a volunteer-run event. And it's not only for the attendees, but it's a very good opportunity for, like, us, mentees, mentors. Like, what we do is we gather together, we follow the Django girls tutorial. It's actually quite like self-explanatory tutorial that you can even do yourself as a total beginner. But we do sit together in small groups, one mentor, three participants, usually. And we hack all day. We empower each other. I'm going to mention also about a few other things. Like, there is some, like, huge community effort. Django's tutorial translated to, like, I don't know how many languages, more than Django's tutorial itself. This is a map. And it is so easy to start your own event. You can just, like, find a few other people who is, like, as passionate as you about the level of programming or increasing the diversity or just, like, empower the other fellow woman developers. There are, like, beautiful materials. Even if you're not organizing a Django's, I highly recommend you to, like, take a look. Tutorial is always good to, like, suggest to beginners, all beginners. Organize Us Menial is a great tutorial if you're, like, organizing any community event from a meet-up to a conference. And, like, coaching. Just use it daily if you're mentoring anyone at work or in your open source project. And we don't only, like, do programming. We do crafts. We do have fun. We do have dinners. We do lots of stuff. And I'm here because I want you to care and have fun. See you next year. Thank you all for your great talks and musical performance. Now I would like to welcome on stage Nail, who will tell us what are the prices for AI game tournament? I'm here to tell you how the video game tournament went. It was awesome. Before I do that, I'll tell you what happened. I'd like to thank the people that helped me set this up. Raquel, Arthur, Sébastien, Patrick, Vibi and Sonio. I'd also like to thank O'Reilly for providing books as prizes. And also a big shout out to the numberly guys for 3D printing, the trophies that you see there. So we had 15 teams that took part. And, yeah, without further ado, those are the results missing the top three spots. It was actually super close. The scores were pretty tight. So, in third place, please welcome to the stage, if they are still here. Alpentroni, second place. Artist, 65 points. Anyone from the artist team? We'll find you later and give you your prizes. And the winner is dot dash dash dot with 85 points. Congratulations to everyone. Thank you for listening. See you next year.