 Okay, ready to go, Hinnick? All right, hello, Judy-Con. I'm Hinnick and I have exactly one minute to change your life, which I will do. I want you to imagine a better world. A world where we get the very best future from Golang in Python. A world where you can fully focus on the meaning of your code because you don't have to spend time on caring about the look of your code. A world where you don't have to argue with anyone about the style of your code because it's formatted by an apathetic robot. And now, all those tones and imagination made you all happy and fuzzy in your tummies. I'm here to tell you, this is reality. This is real life. Thanks to my friend Lukas, getting this symbol on a sliding keynote was more work than the other slides together. Anyway, he gave us black, the uncompromising code for matter. It has really only one option which is setting the maximum line length which you, by the way, should set to 79. Otherwise, I don't like you. And everything else, you see it control over. At first, you will have objection with some of the choices, so did I. But you need to hang on. You need to embrace it. And you will get used to it. Then, you just write your code. However, it pops into your head. You just hit your keyboard and it's there and then you just run black over it and it's done. So the menial work is done by the software. And then you realize how much more productive you are, how much energy you are freeing from your mind from doing menial things. And many of us found this experience life-changing and I'm not even joking. So to get most of it, you need to do what I like to call the holy trinity of I don't give an F which is black will format your code. I cert will deed up and sort your import and pre-commit will make sure that both are run before each commit. So you don't even have to remember to run them. Imagine. So free your mind, join the revolution. Many high-profile projects have already switched. This is the future. Thank you. Thank you, Inez. A round of applause. Hello. Take it away. My name is Davy. Here's Paul. We're talking about Plone. Paul is giving a quick introduction about Plone. And then I will continue talking about React. Is this the next? How do you get to the next? Ah, yeah. Yeah, Plone has been around for a very long time. As most of you know, I could do it for Yorkshire men that talk saying like, we were so old that we, oops, we had to invent daytime because Python didn't have a daytime, but we're still around. And it's still being used by people who give a lot about their content. And we're playing the dongle game here. It's doing something. Dum-de-dum-de-dum. Well, yeah. May, the problem is I don't see anything here as well. But yeah, as a very old system, you have to come with the times. To be fairly honest, we were never really good at front end anyway. And nowadays there are much better systems to do that. So we have now a complete API, a REST API, a fully RESTful API that will expose all the power of Plone, including workflows, including collections, including things like breadcrumbs. And if you do serious amounts of content, you have no idea how difficult breadcrumbs and navigation can get. It sounds trivial, but it's not. It's all exposed via REST API. And that means we can now have all kinds of fun new front ends on it. And we have demonstration, but the technical, let's see. Okay, it's the cable. The cable is... Yeah. Oh, this is reminding me of old Europeans. Every other laptop wouldn't work at all. And each one that you came up with, you had to find the right connector these days. Well, then for a while, everything was HDMI. And now we have a combination of USB-C, HDMI, older laptops, dodgy cables. Yeah. Okay. Okay, go. So... I think we can go for the down. It's trying. So yeah, the castle, people have been living on top of the castle for 2,700 years. To the top of the rock, rather. Oh, we have to hold it like this. Yeah, leave it like this. This is very difficult. Okay, play the video. Okay, so let's play the video and watch. This is a React front-end for Plone. We are having this tiles implementation. You can, to paginate or to create your page, make layout in your page, drag and drop. It's all React components. We use Semantic UI to compose and customize the pages later. You can, we currently have a tile for images, one tile for videos. This is very recent work. This has been done the last step at Barcelona last week. You can download this in github.com slashplone slashplone react and test yourselves. You basically run the backend as Plone and also Yarn Dev to run the front-end client. There it is, that's the demo. Ah, I'll publish, just to show how it looks in the anonymous window. So it's very quick for content editors. And behind this, we have all the Plone machinery, the workflow, very granular, very powerful. So it's not just like a visual toy. I think we have more slides here. Yeah, the extensibility story. It's, so as I said, it's Semantic UI. Less variables and overrides are available. There are body classes to customize the custom views, which are components. You use composability to inherit, like in an album view, which basically, it's term inherits from cards, from components from Semantic UI. And as related side projects, there's a starter kit based on Create React app, which is a command line to initialize the boilerplate for your project. So you don't have to work for Plone React. And also there is Plone Gatsby, another GSOC project, a Google Summerhawk project, that to create static sites, HTML, you can publish on GitHub pages. So that's it. If you're interested, please. These are the guys doing the work. Someone, I was here in Bonn to one of the sprints. And if you want to get in touch, please follow me on Twitter at Davilima6, Gmail, or LinkedIn. Thank you. A round of applause. So yeah, hi. I'm Mariana, I'm scientific engineer at Omnis, and I'm working on natural language processing. And yeah, for NLP as a first step, you usually need word vectors. And today I want to show you a library, which gives you some more robust version of word vectors. So the library is called Fast Text. And one of the key questions of word vectors is always how to handle out of vocabulary words. So words you haven't seen during training. And Fast Text's answer to that is to use subword information. So basically look at substrings during the training. And I just want to show you a quick demo to show the effect. So we got some random data set here, which is basically the description of all the EuroPython talks. We are going to use that. And yeah, we're going to quickly train word embedding model with Fast Text, which looks like this. Yeah, we're done already. It's super fast. And on the other hand, we're going to train a model that does not use subword information. So what we can do now is have a look at how the nearest neighbors of certain words look in the embedding space. So we might try something like Python and get the closest, yeah, the nearest neighbors in the embedding space. This is the model with subword information, so you can see the nearest neighbors also have pretty much the same meaning. If we try the same without the subword information, you will see that the nearest neighbors are somewhat random for such a small data set. And the good thing is that we might also try out some typos and see that the nearest neighbors still make sense while, yeah. On the other hand, this doesn't really work. Okay, so, whoops. Yeah, back to that. It's nice to use Fast Text when you have small data sets like description of the EuroPython talks because you will probably not have the words in all of their forms in your data set. And you can still get good word vectors although you have spelling mistakes. For us, at Omnia's, Fast Text is very useful because we're mostly working on text that we get from optical character recognition and that's always prune to errors. Yeah, so the library itself is at its core not written in Python, but there's a Python wrapper and you can train and use models in Python and we're, for example, using that in TensorFlow models. Yeah, so if you're working on something similar, I would recommend you to check this repository out and I would be happy if you talk to me either now or later back in Berlin. Thanks. Thank you, Mariana. Hello, everyone. This is my first talk at EuroPython and also first time wearing a quilt. So, I work at Yandex, Moscow. For those who doesn't know, it's a big Russian company who provides such services as internet search, taxi aggregation and many, many others. But I would like to talk about my hobby and I like to teach computer sciences and in particular Python and I enjoy it very much. And last year, I took some time to provide courses for some groups of, you know, major professionals who wanted to learn some Python and it was very fine, very nice, because Python, it's a language that sells itself, you know? And, but of course there were some topics that were kind of hard to explain so I employed some, maybe, tricks, I want to share about one of them. It's about async. So we started with most simple example in modern style, modern syntax with async and await keywords and basically we spawned two tasks, the second task. Each task has just wait for some time and then exit, printing some messages and because the second task exists first and the first one continues to exist for some time, the whole thing takes two seconds to complete, as you can see in the output. So I called it a little bit. But the problem was how does it work actually? So what do these cool words mean? What does a coroutine, how it does to give up control? How event loop could decide what to do next and how does it give control back to a coroutine? Of course, this simplistic example that will follow, by no means, it's only to experiment and in 43 lines of code to show off one little aspect of how we could implement the same thing based on knowledge that we have probably first students they learn about yield and then we can build upon that. Sorry. So here the same coroutine function with kind of emulating await. You see the yield statement which produces much the same output but here we see an import from a special module called async on the yield. It's not a real async just to make this example run and to show off students what could be under the hood. So the event loop is a very interesting thing and here is the most basic variant with a schedule and first there is some kind of finding exit processes. Okay, and basically you see it under 40 lines of code. So we use hands-on praxis and we wrote the samples line by line function by function so that we could see the result. So output is basically the same but with adding some debugging and you see no magic. No magic. So sometimes it may be useful to keep reinventing the wheel especially for education process. Thank you. Thank you very much. Take it away, Ranier. Okay, so thank you very everyone. So if you missed it, Stefan talked earlier today so he was saying that in some companies when you're going to talk with your manager, he's like, oh, can you have, give me a Microsoft Word document because that's what I can open. If you give me a notebook, Jupyter Notebook is not going to work and as you might know, Google Docs or Microsoft Word is pretty nice. You can type and so on. So you can type hello and then you can go and you can change the font here. You can make it bigger like a title and so on. And if you use the spreadsheets, you can have some cool data. You can have some plots and you can even link the plot to your Google Doc or spreadsheet. So you can go there and say, I went up plots for my shit and if the wifi helps a little bit here, we're going to be on time. So you're a Python and you can search. Let's see how, so what is this? No, what is, so that is is. So you can select the spreadsheet and you can get your plot and you can include on your document and it's going to be there. But if you're like me, I don't trust my Excel skills. I always think that they're going to forgot to put some coding somewhere. I really prefer to do things in pandas, chip to notebooks and so on. And notebooks are pretty cool because you can have a similar plot. So you can use some cell magic and say matplotlib inline and you can say import matplotlib on my plot. S-P-L-P-L-T and plot and you can go in, sorry, thank you. It's always nice to have an audience that just fix your code faster than you. So you can run that and you can have a plot and as I told you before, it's much nicer to generate your plots with pandas because you're going to be more sure that all your data is correct and so on. But again, if you work on academia, if you are a research, something that it's really, really annoying is to get all your reference correctly. It's so painless to the point that people in the past try to solve that. So if you know latex, it's a pretty nice tool to have your biograph reference correctly. But it's terrible to do that with chip to notebooks. You need to have a lot of intermediate steps. So I just want to mention, it's a project that's being developed at the moment for some people in New Zealand and I just want to go a quick demo. So this is Eustencila. You can put a title, it works as a document. So we can say Eropyton here and you can have some tags. So hello and you can change some formats so you can say this is a heading and so on. So it works most like a what see, what you've gone. But it's much more nice here because you can say, oh, I want to include a reproducible figurine and you can say, oh, I want to use Python because Python is really, really awesome. So here you say Python. Yeah, it's here. It's quite small, but you see? But then you can type your code and you can run any Python code. So you can say import mudplotlib.byplot as plt, plt.plot. One, two, three. And that is the plot. So I think it's pretty nice to do because if you collaborate with lots of people, some people, they're going to be really afraid to use something that's not super close to what you see, what you've gone. And as more and more people are going to contribute to the same document, you probably want to use something in the cloud and essentially it's being able to run things in the cloud just like as Jupyter Notebook hubs and so on. So that's my talk. Thank you very much for listening to me and... Thank you. And yeah. Thank you. George. All right, so my name's Lasek and I'm going to talk to you about the ops mindset or an analogy I'm using from time to time. But there's a warning. An analogy is a shortcut in communication and if you take a wrong shortcut, you will end up in a wrong place. So use it carefully. So a short story of my life in Opsing or in Operations. After getting my first serious job, I got a small project to do. So obviously I started writing some code, added some libraries, added some databases, dependencies and so on and I was very proud to finish it. Then my colleagues told me, you don't have the whole picture. And they were right. I missed the context so I added some more code to cover the ground, added some libraries to it, added more dependencies, added something to prettify it. And as you can see, after six months in my career, I was the best man in Opsing in the whole world, right? A complicated project. I was really proud of it. I decided to extend it a bit. I planned for it, but it didn't work. And I couldn't figure out why it didn't work. It crashed all the time. It didn't work because I was playing this game. So as you can see, it's Tetris and Tetris is a game where all of your successes disappear and failures pile up. So the important part is the score. So as you can see, the score is zero as long as nothing disappears, right? The point is to keep it as simple as possible, not to build up the system to be more complicated. But it's not very useful. Many people said this before. So how is it useful for you? So as I said, it's a communication shortcut. So in another project, I was working with the developer on Monolith. It desolated pretty okay. We added some glue code to make it work. But then the developer decided to just add one small feature. And I said, I would prefer it in a separate application. And he said, no, a separate application would be three times as big. So which of the blocks would you prefer in Tetris? Right? So microservices, very small, very easy to use, but try to play Tetris when 10 blocks are falling at the same time. You need automation, right? Automation, orchestration. So who makes the blocks? The hardest part of Tetris is that you don't know what block will fall, right? And obviously in our game, as ops admins, developers, right? The philosopher Steve Ballmer said so. So you can talk to developers, it appears. It was new to me as an administrator. And of course, developers can talk to their ops to put things together so that they are easy to deploy, easy to keep the score high. So operations and probably other things are like Tetris. Development is like making blocks. Score is the important bit and it's not request per second, it's not revenue. It's the thing you want to get in the end. Okay, so let's work together on maximizing the score. If you find any bugs in my analogy, contact me on those things. And thank you. Thank you, Lecek. Talks, I want to explain a bit what it is for the people who don't know what it is and where we're going. First I want to ask you, who heard of talks and I don't mean the chat protocol. Because like 80% a lot. Who is using it actively? That's like 20%, not enough. Who understands what it does? Well, it's a bit more. So I mean sometimes I hear, oh yeah, it talks, well that's this thing when you have to do really complicated stuff and you have to test against 10,000 versions and interpret tests and whatever. I don't need all that. I thought so for a long time and now I use it for basically everything and to get started with it is not so hard. This is why I made this little hello world. You need four files and that's including a CI tool chain already on GitLab. So you have your production code up here which does something really complicated. Then you have your test code which is using PyTest in this case. So it's calling my production code and asserting against the result. And then I have a Toxini and as I don't have a package and I don't want to install anything, I just have these all in one folder and just run it. I don't want to build a source distribution and I don't want to install anything but I want to have PyTest and I want to run PyTest to run my tests. That's all I need. And so you can get started from a very simple project already and you don't need any complicated rocket science. And if you want to run this in GitLab then you need four more lines of code. You need a Python 3.6 Docker image and you install Tox with PIP and you run it and that's it. And that looks in GitLab you have to put one switch on and then you have it in your CI chain and that looks like this then there. So it sets up all the Docker stuff, runs your test in PyTest and has a little smiley face in the end that it all worked. So this is how you get started. This really not rocket science. And where are we going? Yeah, well the vision of Tox before I joined the project already was standardized testing in Python and yeah, standards is always you create a new standard then you have more standards than before. So that's the old vision I would say and a new vision is standardize everything. No, yeah, basically what I'm I always tell people who ask me about Tox what you do with it is I really do everything with it. I create development environments, I apply automatic fixes with black and things like that. I build my stuff, I release it, I build documentation and the nice thing is you have a single entry point and if you join a new project you can say Tox minus AV which gives you all the environments and tells you what you can do in that project for testing, releasing and everything. So for me that is like a single entry point for developers, this is why I like it and this is why I would like more people to use it because if I want to contribute to a project and I see a Tox in a file I know immediately what to do. Yeah, and I want to thank my employer that he sends me here and gives me time actually of paid time so that I can work on Tox. I'm really grateful for that. So I wanted to thank him and yeah, if you want to know more, Berna Gabor gave a whole talk about Tox that will be on video soon. His slides are there as well. I think he didn't post them. That's why I put them here and the slides for this little thing are on GitLab, my handle, Tox Lightning Tox if you want to look it up. Thank you Oliver, this is so good. Yeah, this is me. So yeah, somebody asked me, what is my OS minority as Windows 7? I just realized recently because I run minority meetups so actually I am one minority that I never realized until recently because I'm using Windows 7. So being an OS minority is not fun, why? Because everything I do, I can't find any documentation for me how to install things and all these or maybe I can't install it anyway. So I just Google everything, please save me Google. So I want to show some example of like the challenges that I face. So it's like how you do it normally and how I have to do it. For example, install a Python library, which is very simple, if you install everybody you know how to do it. If you are using Linux, Mac OS, sudo, give you everything. Me is like, okay, Alaconda problems. Oh, I have to install Alaconda before that. So yeah, and then if you install. So using Git, which is of course it's a very good version control tool. You can do like Git in need and all these things, right? I have to download Git for Windows, the link is over there. I don't think you gotta have enough time to copy it, but you can Google it, yeah. And then you can use GUI or Git barge and then with Git barge you can just do the normal things. So SSH, yay, I'm using, I'm trying to use AWS, so I have to do some SSH thing. So I found this on that documentation, which is, I can just copy and paste if I don't use Windows 7. So using Windows 7, yeah, a lot of steps, right? So also Docker, Docker is like, I found it's really good to use, like I can have a container and all these things, like for data scientists it's a bit new, but it's very nice. But I'm not using Windows 10, so basically when I see Docker is like, okay, install like, yeah, Windows user install it and I just click base, only support Windows 10. So there is another instruction for people who use our Windows 7, but yeah. I will tell you what happened. Basically, if you're using Linux or whatever you can do, I've got like Ubuntu, you can use Appget, right? But for me, I just decided that I would install VirtualBox, set up a VM, install Ubuntu, and then I can do everything. So, yeah. So I'm thinking, oh, if we are sharing something, open source or something very cool, like shall we give more support for Windows 7 users, like to help the minorities? I think probably not, just tell them not to use it, like Python 2.7. That's good. Thank you, Chiakka. So I would like to introduce you to an idea that we started in Poland, Poland. It's called PILOV, and it's PILOV.org. PILOV is a non-profit organization which is completely open source, so all our materials lessons are available. And we are promoting Python and teaching Python to anyone, basically. We don't care who you are, where are you from, we will teach you Python. And while we are doing that, well, the issue was that there was no group that is doing it professionally enough in Post9 to get more developers, because as everyone and everywhere, we are missing those and we need more of those developers. So our goal was to create some interns or junior level developers in different fields in Python. So we started with a two-day kickoff. There were over 700 submissions for this event. We accepted 200 students. We had 33 mentors, 10 volunteers, three organizers. And it was very nice, very well. We started and finished almost before the object-oriented programming. And after, for next 30 weeks, we were training people in various Python parts. Obviously starting with object-oriented programming, but we need also virtual and flask, some Docker, at least basic security, SQL. We even finished with MongoDB and RabbitMQ. But those two were basically mistakes for teaching at basic level. Well, we also developed our own learning process. Basically, we started with the quiz on each lesson. Then we have the basic theory part. Then we have a live quiz, which was a summary of the theory by asking question and if someone get the answer wrong, we're telling people what exactly did they do wrong. And as well, those were mostly A, B, C, or true or false questions. We also checked the attendance, make some exercises and then send homeworks and gather feedback from each lesson. So the feedback loop was working very well, also regarding like the speed of the workshops. Then we also introduced the project. So after two months of learning, they started to do basic flask application. We split them into teams, provided some criteria, so specification for the project. And then they presented twice the project during the course and there was a final presentation at the end for all of the stakeholders, including sponsors and the venue of the university that provided us the space to do everything that. We also had an exam to measure their knowledge about also measure our ability to deliver the knowledge. There are a few questions which are not trivial, but if someone thinks about it and they had access to internet and the Python interpreter, they could just run it. So it wasn't that hard. It was mostly about focusing on thinking. There are a few screens on the project. This one was the best looking one, basically. It's fully working stock manager for a car company. And the second one, the RGB manager was created by one person. So the team broke down to one person and it still was working application. And the one of the funniest one was the graveyard manager. So you could manage your own graveyard. Well, obviously to motivate people more, we had a reward. We have five paid internship spots in three different companies. So people after finishing our course could start as a data engineer, automated tester or software engineer, depending on the company they were applying to for the interns. And during the course itself, four people at least out of what I know get an internship somewhere else regardless of those propositions we had for them required. So we used application to scale that up because we have 10 people for each mentor. And application handled all of the stuff I mentioned before starting from the recruitment till execution of the workshop. If you want to help to develop it or see what it looks like and play with it, there's the link. It's quite simple stock, but it's useful. We're planning the next addition, the same schema. So today workshop, weekly workshops from October to June, then exam and project presentation, and then the internships. What can you do? Well, we are looking for companies who will take another bunch of interns after this year edition for the summer internship. If you are interested, just find me and ping me or you can Google me, whatever. You can become a sponsor. You can help with the application or you can propose something else, translating that back to the English or fixing the English parts will also be nice. And now I will switch to PiconPL presentation. But I think you should get a round of applause for that talk. Big round of applause please. So what do you think will happen if you gather 500 Pythonista in one place in the middle of nowhere for four days? Yeah, basically you can try that on PiconPL. PiconPL is an OSSA which is in Poland from 23rd to 26th August. We are the second oldest Picon from 2008. Around 500 people every year. We have programming challenge over 45 talks and 10 workshops. Most of them, so like over 75% is in English and that's the important part. Some pictures, a part agree real, more part agree real. The pricing. Well, we are quite cheap conference I would say. The current maximal price for the individual ticket is €350 and that includes accommodation. And everyone is sleeping in the same hotel, so it's quite nice. And if you are sponsored by the company, the maximal price you can pay is €520. That all, that both includes transfer from the airport. So basically you need to only get to Warsaw and from there you will get to the conference. More details are Palpy.org or you can just talk with us here at the conference. I was hoping to deliver that yesterday, but if you find us, just grab us. Thank you. Thank you. Take it away. Yeah. So good afternoon. I'm Kacza and I would like to invite you for the first Picon Balkan in the Balkan area. It's gonna happen in Belgrade in Serbia and we are gonna have like 500 attendees and it's gonna be in November. And this is the first Picon in the Balkan area, so I hope you can join us. And also it's gonna be all in English. It's a good thing to mention. We already have some keynotes, so if you want join us please. Thank you. A round of applause. Hi everyone. Glad to see you all here. My name is Irina. I'm one of the organizers of the Picon conference in Russia, Peace Apply. We are going to have the conference on 2nd and 3rd of November and expect to meet around 200 participants and it's going to happen in St. Petersburg. The venue of the conference is for Star Hotel close to the airport and close to the city. And we also have everything in English like website, booklets, pages, talks are also in English or they are translated into English. As an international conference, we invite foreign speakers and some of them you can meet here and actually ask about their experience. St. Petersburg is really beautiful, Europe and city with great culture and this picture was made on the third day of last conference because we have really nice cultural program for speakers. So if anyone of you interested in attending the conference, feel free to find me and also for other events in Russia. Thank you. I would like to talk about Game of Thrones because you like winter. Do you like winter? No, we want to have... Oh, so we want to have summer. We have to have your sci-pi in the summer and that will be right there in Italy. So we moved to Italy this time for the 11th season of our your sci-pi conference. It's a very nice event. It will be the end of August, until September. We have two days of three track tutorials, very interesting tutorials. We have two days of two track talks and we have two days of sprints and we have a wide variety of topics. We start from astronomy to zoology. So we have pretty much anything that you can think of in terms of scientific usage of Python. It's a very interesting, very nice conference. So we invited to come up to Italy to the summer. Geo-Python 2019, it's still far away. June 24th, 26th in Basel, Switzerland. It's a special conference. It's not only just Python, it's Python and Geo. So we have a speciality conference in this case. It's about geography, geophysics, geodesy, geomatics and all geo-related things. We also have machine learning, tracks, et cetera, et cetera. So if you're interested in geo, come to Geo-Python 2019. Thank you. Do you like programming games in Python? Yeah, okay. This is gonna be an unusual conference because it is not a conference. You do not attend in person. You use the internet to meet other people and program games alongside them. All you need to do to participate in the next Pi Week in October is to put that date into your calendar and go to that link on or near that date, before that date. That week is the actual week where we will be programming games. The week before that is voting. So there are some themes made available and you rate them in the order that you want to do them and a theme will be picked and then you program for a week on that theme and then you upload and then we have two weeks of playing each other's games. So these are some of the winners from previous weeks. The big one, I did that with Larry Hastings, who's a core developer, and we won, so yeah. Thank you. Thank you. Hi, everyone. Maybe I get a few extra seconds and I'm gonna talk to you about five different conferences. I want to welcome you to invite you to a Picon in Africa, which you might not have considered. So in a few days' time, I'll be going to the first Picon Ghana in Accra. And then in September, you'll have the opportunity to go to Picon Nigeria, Picon South Africa in October and also Picon Zimbabwe. And then when February comes around again, Picon Namibia, where I've been several times and wouldn't miss it for anything. So you can find out more about all of these. Most of them have websites. They're different from Picon's that you might be used to in some ways, but very similar in others. So take it out of that. It's important for you as Python people because it gives you the chance to go to a place maybe where you've never been, not just be a tourist, but do and be what you do and be best, which is be a Python Easter. So it could be you in one of these photographs doing something that you will remember for a very long time, which will have a big impact on you and make a big impression on you. And you also, in turn, will be making a big impression on the people that you meet. So please consider it. Plenty of us go to these events. You won't be alone, and you will find and make brand new friends. Thank you very much. So yeah, and then a little bit closer than Africa is Newcastle Pond time. So it's just a monthly meetup, really friendly people. We're always looking for good speakers, or if you wanna speak on something that's interesting, it is a great place to just sort of like speak to a much smaller crowd. And yeah, and we have like a really sort of wide range of topics, you know, data science, web development, IoT, education, or sort of the things we typically cover. That's on the second Wednesday of every month. There's the website. You can sign up or just email scottatpythonnortheast.com if you're interested in speaking, and I'll get back to you pretty quickly. Cheers. Who here has heard of San Sebastian? Woo! Yeah, so in the midday, if you look at the sun, you go straight to it, right? And... Ah, it's okay. Well, so it's in the north of Spain in the coast. This is a conference, it's on a weekend, so you don't have to take holidays for it. It feels like holidays. So on Friday night, we usually go for pinchos. Saturday, we go for cider house. Not, I don't recommend vegans to come, I'm sorry. Well, this year, we are changing venue. We are doing it in the Curzal. It's like five meters to the beach. So if there is a boring talk, you can just go to the beach. It's the fifth piece we make. We are not very organized, so just follow us on Twitter. It's going to happen. It's going to be from October 12th to 14th. Yeah, just, well, you know how to reach me on Telegram or follow us on Twitter. We usually have nice keynote speakers and we usually have a lot of fun. It's a nice conference. Last year, we were 70. The first time, we were 25. So it's growing. I hope not too much more. We only have one track. It's very family. Yeah, just come. All right, so my story begins in Mastodon. Mastodon. So Mara asked for a chocobot that goes quite every hour or something. By the way, how many of you here have used Mastodon? Okay, well, Mastodon is like Twitter, but less popular. So I thought, you know what, okay, fine. I'll do it, why not? It's pretty stupid. A bot that just goes quite every hour. So I did it. And I did it in the D programming language. It was easier than I thought and it made me really appreciate D. There's some spoilers down here where I link to the code. But before that, let's look at... There it is. Just goes quite every hour. It's appealing Chinese, but you can see that on the right, those are timestamps. And most of the time, he queues very quietly, but once in a while, he gets excited and he queues very loudly. Well, it's not here anymore. So the way... Oh, and here you can see a better picture of him. The chocobot. So as I said, it's in D, which by the way, I hosted on Mercurial. How many of you use Mercurial? Oh, that's more than I thought. But still, Mercurial is like get, but less popular. And this is, of course, the D programming language, which how many of you know about D? Wow, that's a lot more than I thought. But regardless, D is like rust, but less popular. Of course, it begins with a copyright header because I like copyrights. Now the statements here are D is kind of like C, kind of like Python, but it's in the general family of the C family. So it's like JavaScript, Java, in terms of syntax, I mean. The imports are all standard library here. I didn't use anything but standard library. The first function here is the que function. By the way, a que sounds like something like, que! And the first thing that I do here is I just pick some random squacks. This is a weighted die. Most of it, so it's weighted towards the first one, which is 40, the weight. The next is sleep. Right here, I make the Chocobot sleep for a random number between 40 and 80 minutes. You don't want it to be too predictable, right? Because otherwise it's not fun. Otherwise you're just gonna see like it's always the same time. Finally, this bottom here thing is curl. Curl is part of the D standard library. And it just posts right here to the mastodon API. There's bots in space, mastodon instance that accepts bots where I put Chocobot. And finally, all I do is forever loop and just que, forever, and sleep. So que, sleep, que, sleep. I really like die. I recommend you check it out. Dlang.org, it has some really nice examples here. Here's for example, how to make a web server. It's all based on the vibe.die. So it's really nice, die is compiled. It compiles to machine code, it's very fast. You have never seen this faster website than die. It's a web framework that compiles to machine code. Very nice. That's all. Thank you. Thank you, Jordy.