 B, opening Python built-in classes by Jesus Espino. Jesus, are you still here? Are you here? OK, fine. Jesus, are you here? Yes, you are. OK, go and get set up. After that will be Freelance Python by Pablo Ceballes. Are you here, Pablo? Pablo, stay here. OK, now we can skip that. Python Argentina, or Python Argentina community. Is someone here to give that one? Yeah, come to the front. OK, we're also going to have a talk on Vim, Neo Vim, and Python by Marcus Scribble. Marcus, are you here on Vim? Excellent, come near the front so we can have you. We're going to have RLY question mark. Well, I3 heart Python because, by Alexis. Alexis, are you here? Excellent, you're near enough. Come to the front so you can run up. There you go. Number talk, number 21, is just called Just Because You Can. Who proposed that? Just because you can. All right, you're nearby, fantastic. And the final one is by Q-Tile by Guillaume Vella. Are you around Guillaume? OK, fantastic. Hey, Jesus, how are you getting on? It's working OK. So, would you like to hear the story about the man with an orange for a head? Bearing in mind, there's a strong likelihood that I won't be able to finish it. So, bearing that in mind, put your hands up if you want to hear the man for an orange for a head, sorry, or at least the beginning of it. OK, now everybody else hates you. Yeah. And anybody that's been volunteering for the event or we want to recruit some new volunteers, we have to strip this whole building tonight. Now, all the sponsors have stripped all their own stands and a lot of the stuff is gone but there are still many things we have to get out of the building. So, if you've been moved to thinking, hey, I would like to volunteer for this conference. It's not too late. You can help this evening. Come out to the registration desk, find an organizer, even helping out for 10, 20 minutes, half an hour, carrying a few boxes from A to B, or help move this conference from here to the sprints for tomorrow. So, a last-minute volunteering will be very much appreciated if anyone can do that. Hello. OK, look at this. Yeah, yeah, there's some secret talks at the top here. Great. All right, who here has got Python 3 as default in Fedora? Robert, that's you, very good. Motivated to find the missing talks there. And pythonjobs.kithub.io. Daniel, are you here? Yep, OK, good. So, what have we got? In fact, OK, so it'll be Jesus, then it'll be Robert, and then it'll be Daniel. And then it'll be Pablo, and then it'll be more talks. And are you ready, Jesus? Yep, give Jesus a big hand. Hi, everybody. How many of you are Ruby programmers? One, two? OK, OK. Well, opening CPython built-in classes. What's the problem? The problem is the CPython classes are closed. I tried to set the in-class x attribute to 3, and the CPython interpreter don't allow me. Well, the solution. The solution is master key. Master key is a module that I have programmed, which allow to open classes. I can open the in-class and set the x attribute to the class. And now all integrers have the x attribute. Which application have this module? This module allow to fix broken float comparisons. For example, these are the same, OK? This is the same. And the assertion fail. This, with open classes, I can override the quality to allow some kind of difference. And for example, allow to fix a broken test that have float comparisons. And well, now it's true, and OK, it's false. It's OK. The left sheet operator is, I can left sheet a integer and get the left sheet, the binary left shift. But this have no sense for the people who knows decimal, not binary. Well, this is a solution. Now works. Now have sense. Well, more semantic Boole representation, if I ask the CPython interpreter to say true is true. And if true is false, say false. OK, but I prefer this approach. True is true? Yes. True is false? No. It's OK. But true is false. We need more Ruby's Python, I think. Well, I can import Rubint. And now I have three times print, or up to five print, or down to one. You can close your own classes. You can define a class, use master key to close the class. And now I can modify the class. Well, of course, this is a joke. Bad, bad, bad, bad. The code is real, OK? Here's the block magic, OK? With these types, and setting up a flag in the classes, you can open the classes. But of course, this is really unstable. And don't use this. And here's the code. If you want to evolve this solution, please don't do it. All right. Python 3D Fort in Fedora. Welcome. So this man walks into a bar, and he sees that only the barman and a man with an orange for a head are in there. So he walks up to the bar, and he goes, that's a little strange. Is that guy over there got an orange for a head? And the barman goes, yeah. Actually, he's a really nice guy. If you buy him a beer, he'll probably tell you the story. He goes, OK. So he wanders over to our man with an orange for a head, and he says, oh, hello. Can I buy you a drink? And I couldn't help but notice that you seem to have a small orange instead of a head. Just like to give a shout out to Larry Hastings, who reminded me of this joke the other day. So he goes, yeah, yeah, yeah. I've got an orange for a head. Yeah, it's a funny story, actually. Would you believe that I was walking down the beach, and I saw a lamp that had washed up, an old antique-looking lamp, and I picked it up, and I rubbed it, and how came a genie, just like in a joke? And the genie says, oh, thank you for liberating me from the lampo master. You now have three wishes, anything your hearts desire. And the bar guy's like, wow, that's amazing. So what was your first wish? And he goes, well, my first wish was that I would be fabulously wealthy. He goes, OK, I would wish that too. I think, did it happen? What happened? He goes, well, the genie waved his arms and said, abracadabra, and there was a puff of smoke. And suddenly, like a Ferrari pulls up next to me, and I look at my bank balance on my mobile app that doesn't run on my BlackBerry. But I've got a newer phone than that because I'm fabulously rich now, he says. And I find out my bank balance is huge. I'm very rich and wonderful. And he goes, oh, OK, that's amazing. That's very lucky. What was your second wish? And the man goes, well, I wish that I would meet a life partner to be happy with, and that they would be beautiful and supremely intelligent. And he goes, what happened next? He goes, well, sure enough, the genie says, your wish is my command. And the door of the Ferrari opens and out comes the most beautiful and intelligent person I've ever met. And I just knew we were going to be life partners forever. Are you ready to give your talk? Yes, but it will be without the slides. OK. So we've got two wishes down. And next, take it away. Hi, everyone, I'm Robert Kuska. I work for Red Hat, and I'm a member of Python group in Fedora. And we have this Python 3 as default change. And I would like to give you some sort of status update about it. In case you are not very familiar with Fedora and how Fedora operates, it's when you want to make such a change like making Python 3 default in Fedora, you have to make a proposal, so-called the change. And next thing is the change is being vote on. And if it's accepted, you can work on it. Then it is tested. And then it is implemented in Fedora, and everyone is happy. So what does Python 3 as default means for Fedora? We would like to have Python 3 as the only interpreter in the default installations. This means that when you install Fedora from Fedora DVD and you type Python, it will not work, because there will be no Python 2. And because of that, the name of the change was slightly changed to be Fedora as was changed to Python 3 in the default installations of Fedora. So our target is Fedora 23. And Fedora 23 will be released at the end of October this year. I have some links for this change where you can find more detailed informations. But sadly, I can make it work to show you. So what does it not mean, our change? We are not getting rid of Python 2. You can still install it. And also, there will be no change in user-beam Python. User-beam Python will still be Python 2. This is because the PEP you are familiar with, I guess. I don't really recall the name, the number. But it is important to note that there is a proposal by Joffrey Thomas from Debian to make user-beam Python sort of, I don't know how to say it, sort of switcher. Yeah, exactly. But I don't recall if it was already posted on Python then. Was it or was it not? But I can send you a link to this proposal if you are interested. So what do we cover in Fedora? We have many products, so-called flavors. Namely, it is Workstation and Cloud, which are already covered. And right now, it should be switched to Python 3. Then there is Atomic. And there is a problem with Python 3 as we need Python 2 or Atomic because of Ansible. Because there are many scripts in Ansible which runs only on Python 2. And then there is the last, but not least, product called server. And there are really two big projects we are working to port on. And those are Freepa and Samba. We got Freepa covered. But there is a big problem with Samba as there is lack of reviewers for our patches. And that basically all. Fabulous. Python jobs, Daniel. So where are we? We've got, OK, he's had two wishes so far. The first wish, fabulously wealthy. The second wish, the love of his life. And he goes, well, so that happened too. Yes, I met the love of my life. That's amazing. So back in the bar, he goes, wow, good. That's really an amazing story. So what was your third and final wish? And the man with an orange for a head says, well, I wished I could have an orange for a head. Yeah, it's meta. Hands up, who says that's their favorite joke of the week so far? He's got quite a lot of people. All right. I'll tell more like that in future. Take it away, Dan. OK, so I'm going to tell you a story from the dim distant past of March. And as it worked, and my colleague, Sal, turned to me and said, what did it take to write a jobs board? Because we were recruiting. And the Python.org jobs board had been down for a year. I was like, you know, if I was going to write it, I would write it as a static site. I'd generate it, like have it hosted on GitHub and have it generated whenever you commit, maybe in Python anywhere. And it would be a community project to maintain. And Steve, my colleague, had wandered up during the conversation and contributed some ideas, like building it with Hyde in Travis. And Steve wondered after I said, but of course, we shouldn't do that, because what we should do is contribute to the Python software foundations project and Python.org jobs board. But Steve had missed that bit. And so he went away and wrote it. And it is pythonjobs.github.io. So this is a community project, if you want to list jobs, if you're looking for a job, this is up. We launched it in March. And a week later, the Python.org jobs board came back. So that's python.org jobs board. So that is an option as well, if you want to find a job or list a job. If you want to list a job on ads, you just go to GitHub and just send us a pull request. And it's like Markdown and YAML. But so Python jobs was written by Steve in a couple of nights over a couple of weeks. And when we were discussing this, when we were kicking ideas around, we thought we were trying to think of ways to minimize the amount of work involved in setting this thing up and running it over time. And so our stack was just sort of GitHub and off the shelf software as a service. And there is a tiny amount of code there. And not like a dig at Python.org because they had lofty around ambitions. But it's like your classic Django and Postgres and like a Django app for tagging. And then there's all of this approval workflow where you list a job and somebody's going to review it, and then it goes up. And that took a year to write. So I think, again, not a dig at PSF. It's python.org jobs board is a much needed resource. I encourage you to share your jobs there if you're recruiting. But I do think that maximizing the amount of work not done is essential. That's from the agile principles. And so thinking very hard about how to not write code is your best bet for doing that, in fact. And also in maximizing the amount of work not done, if there's a project that's just about to go out the door. Contribute to that. Thank you very much. OK, we have to be out of the venue probably in about the next 10 minutes. So Pablo Cibayas on freelance Python. Are you here, Pablo? Nope, Python Argentina. Hooray. So this guy walks into a bar, and there's only the barman and a man with an orange for a head. Did you know that there's a, I mean, like in the theory of comedians, we take to say that there's two types of comedy. There's comedy based on repetition. And there's comedy based on repetition. Thank you very much. OK, I'm here all week. All right, all right, all right. Actually, it's all about timing, right? You want to get the answer in there just as the person is guessing it or just before. Somebody else once said that one of the magical things about comedy is maybe it's a little bit the same as the instinct for science. So you take a series of facts and you give them an interpretation. That's the structure of any joke. You go, oh, OK, here it is. It's one of those classic jokes about, you know, a genie and the genie is going to misinterpret the third one and that's why he's got a 12-inch pianist. And then you surprise them and cause them to reinterpret the facts. So the punchline causes you to understand the previous events differently and in a wider way. And in some ways that's a lot like scientific progress. Like a new scientific insight causes you to look at existing observations in a new way. Maybe the earth goes around the sun. Not the sun goes around the earth. Do-doom. What do you think about that, convincing? Fantastic. Somebody else, Isaac Asimov, once wrote a short story where they built a sort of supercomputer and the researchers that were programming the computer said, right, we'd like you to work on a problem we have, which is jokes. We don't understand jokes. They don't seem to make any sense. There seems to be no way of generating jokes. And also, you never meet someone who's actually invented a joke. You only ever hear people retelling jokes. So what kind of strange combination of human psychology is this joke thing? And the computer goes away and thinks about it for a long time. And it takes in loads of data. You want to start it like this? Yeah, that's OK. OK, take it away. Huh? Hi, my name is Cynthia. I'm from Argentina. I came with two friends here. And I wasn't supposed to be here talking. But this morning, I got this tweet about a friend that he's in Argentina, and he's insisting. So here I am. So Python Argentina's medium, it's about integrating Argentina and Python users, spread the world, our Pythonic world, and organize all kinds of Python events. We have a very large community that keeps growing each year. We have over 105,000 members, not only from Argentina, but from all Latin America and Spain. We have a cool mailing list, an IRC channel, his PIR at FreeNode. And we call the channel of love because PR means in Hindi, love. We have a new web, python.org.her, that is made with Django and Python 3. We have a lot of meet-ups all around the country that is so big. We have Buenos Aires Python meet-up. We have Django, Buenos Aires Django meet-up. We have La Plata Python meet-up, Patagonia Python meet-up, Northeast Python meet-up. And we are starting a lot of more meet-ups all around the country. We also have PyCamps that those are four days, complete spring days. We just have Wi-Fi, food, Python in the middle of nowhere. And we had a lot of fun. We also have our PyCon conference in Argentina since 2009. We have high-quality talks, international keynotes. And the most important thing for us is that it's always free. Our conference are always free and everybody can come. So this year, PyCon will be in Mendoza. So if you want to try an amazing wine, you should come here. And the last thing I want to talk about is about a project that is called Argentina in Python. And it's a personal project of a friend of mine that his name is Manuel Cauchman. And his nickname is Umitos. That means Mr. Smokesman. And he is traveling all around the country with his car. That's why there's a logo. It's a Python car. He's traveling all around the country, spreading the word about Python. That's Manuel and her friend Joanna. They've been traveling since last year. And they've made more than 5,000 kilometers. And these are all the cities that they've been. Right now, he crossed the frontiers. And he is in Sucre, in Bolivia. He also went with Joanna to Paraguay, to Asinucion. And he's helping to create groups, meet-up groups in all of these cities. So he's doing everything this for free. He's trying very hard to continue, but he needs our help. Actually, the community in Argentina is helping him so much. But if you want to help, you can do it in argentinapython.com.r slash n slash donaciones. All his events are for free. And with the money, he can fix his car. He can get gas. He can print posters, stickers, t-shirts, and banners, and renting rooms for events. So I've already helped him. So now it's your turn. So thank you. Marcus, are you here to talk about Vim? Marcus, are you here to talk about Vim? Yes, fantastic. All right, so we're probably going to overshoot our time. But at this stage, what are the conference organizers going to do? Like drag us all physically out one after the other? I say we stay in here and try and finish our lightning talks. If they have to drag us off the stage, well, that won't be the first time that's happened to me. OK. After Marcus, we've got iHeartPython by Alexis. Alexis, are you here? Yes, excellent. Do-do-do. What were we all talking about? Oh, yeah, yeah, yeah, the Asimov story. And so in it, the computer goes away and tries to figure out what jokes are. And it comes up after a long time of contribution. It goes, well, I've got an answer. And the research is like, what is it? What is it? The computer goes, well, you're not going to like it. So I recommend you don't ask me. And they go, no, no, no, we want to know. And the computer goes, right, well, the only explanation I figured out for jokes, given the fact that nobody can ever think of a joke that's been invented by someone, and given the fact that they seem to be psychologically inexplicable, the only explanation can possibly be is that there are complex psychological experiment being played on the human race by some sort of aliens that were in their sort of laboratory. And as a result of understanding that we're part of the experiment, the experiment is now ruined. And that means that the experiment is over. And the research has turned to one another. And none of them can remember a single joke. Yep, that's a classic 1950s short story science fiction. Don't do that, clap. I mean, I know I'm looking like I want approval for that, but you can just be like, eh, eh, you know, it was all right. Yeah, it was OK. How are we doing over here? That looks pretty impressive. Now, I guess I have to resize the windows to. Everyone, this year is the year of Linux on the desktop. But next year is the year of Linux on the desktop. There you go. Let's see, I think I'm set up now. Sure. We can tell another bad science fiction story. Yeah, OK, so my name is Markus Törnquist. It's not Markus Kribels. I'm sorry you got my name wrong there, Jerry. So I'm going to talk about Veeam and Neo Veeam and how to deal with them in Python. This was a very, very popular subject at the party. I was wearing my Veeam shirt, but can't wear it today because it still smells like Wednesday evening. So I've been using Veeam for a ridiculous long time, like longer than Python. So I'm one of those guys who remember when Veeam 7 came out, stuff like that. So I've spent quite an amount of time customizing it. And I hope that if I show some tricks, at least you won't consider it an obsolete relic of the past and use Emacs instead. So here it goes. So one of the main points in Veeam is that it's ridiculously fast to use because whenever you type something, you actually input commands. So you can do just a couple of keystrokes. Now, one of the downsides is that for things like highlighting, syntax highlighting errors, whatever you need to write it first, I'm going to get back to that. But relative line numbering, type in just where you want to go. Like I see that I want to go four lines down, highlight the line, stuff like this. It all works. I make a typo. Here, man, we need to see the bottom of that. OK, you're going to have to take my word for it that it's actually saying which paper error it is, right? It's just the bloody Linux desktop thing. Actually, I guess this is all. So this is a workaround. Yeah, expect two blanks. Found one. Cool. Write it out. It's fixed. And then there's autocomplete, which I was asked a lot about. I could just uncomment the line. But where's the fun in that? It actually opens the doc strings up there with the Jedi Vim plugin. If that's what you want to do, I'm not sure I actually enjoy the way it works. But you have the features that you would expect from a modern editor. Just as a side note, this thing here is called Nerdtree, really convenient as well. It does things like syntax, what do you call it? Folding. Folding is what it is. Yep. So a couple of words about NeoVim. Doesn't really exist yet. And it's a fork of Vim because Vim is, well, it's old. Let's face it. But it's also not even written in NCC. It's that old. Doesn't accept patches very well and whatever. So someone wanted to have multi-threading so that you'd actually get rid of syntax errors without writing the file out and stuff like that. So the patch was rejected. And then he forked it, forked Vim, raised some money on Kickstarter. It's kind of hard to set up. You've got to download a daily build and preferably have a wrapper script here to launch it. But when you do, it actually looks pretty much the same. And yeah, there are things like the syntax highlight or the autocomplete that doesn't actually work the same way. It does give you something, but it's not as fancy. So we have to wait for it to work a bit. So a lot of the stuff is from around 2008. And that's one thing that I think contributes to people thinking it's old is that, yeah, it was finished in 2008. It's not dead. It's just like venerable. Interesting. So some plugins. Actually, I don't have Wi-Fi here. I couldn't get that to work. Thank you. Thank you, Leonus Turvals. You're a hero of our people. So couldn't get the wireless going. But Syntastic is fantastic. I use it for the syntax checking. And this is probably, yeah, this is Jedi Veeam. It does all the cool autocomplete stuff. Here's my Veeam configuration. It's up on GitHub. Not very well documented. I only use it for myself, but in case someone wants to take a look at it, also have my Neo Veeam. It's a lot more work in progress. But if you want to take a look, just don't use it because it just gets sad. You're supposed to be inspired by other people's Veeam configurations and use those to make your own. That's what I did. And it's been a lot of fun over a lot of time. Three years ago, seven months ago. Yeah. OK, thank you. OK. I'd like to say a sign of Python. Three lightning talks left, everyone. There's a slight aura of anti-climax, of depression in the air. The conference is finishing with full of happy memories and exciting ideas for what to do in the future. But we also know that the slightly magical holiday, no, no, it was hard work that we've been having for the last week is maybe coming to an end. But there is the sprints to look forward to. There are three more lightning talks. Marcus is one of them. Take it away. You're taking too long. OK, so what just happened? I mean, everyone's struggling with their window manager. We are in 2015, right? And the first thing a guy named Bill Gates, I think, made is something like Windows. And we are still a lot of years after that, struggling with putting Windows together. So there is these other window managers that exist, which are called Tiling Window Manager. You may have seen some weird people with a weird bar like that. I think our friend from Argentina had one and other talkers. So well, the basic point is that each time you spawn a new window, it just splits it on the whole available space. So I'm not like trying to move pixel by pixel or anything. And I can just play with this. All right, so this is not related for Python at all. Actually, it's I3, Window Manager, and it's written in C. It's very, very, very small. So the footprint is peanuts. And the thing rendering the bar that's called the I3 bar is called I3 status. And the configuration of I3 status is pretty straightforward. But when you configure your I3, you just spawn me on I3 status. And this is the default that you can see over here, which is pretty large. So the first thing I made is let's tune it a bit. But I'm using Python. And this bar actually, if you check the clock on the top right, you can see that it's increasing five seconds by five seconds. And everything is written in C, so you put these modules that you can use on the I3 bar. So you can see that I'm one of the happy few connected to the Wi-Fi. And that's pretty much it. So you're stuck with the modules that I3 status provides you, which are written in C. So you can't do pretty much shit with it. I can say this, not much audience now. So I was like, how do I inject my Python code over there? How can I render this dynamic? And I came up with this crazy idea as to create a wrapper around I3 status because I had done all this extensive work of configuring it. The configuration is like this. You put the modules you want and in the order you want. And then you can have some configuration for them. All right. And I made a wrapper around it. OK. And what you can actually see is now the clock is ticking every second. OK. No applause. That's not big, right? But this is Python. And I can now do more and write my own modules for pretty much everything I want. So any script, you can get it to appear on your bar up there. And let's change some pretty things now. What you just saw is that Python status just took the actual configuration of I3 status. So there is nothing to change actually. But we just enabled Python in our I3, Tiling Widow Manager. Sorry, I know I'm there. It's OK. Now I just want to show you one thing. Actually, you can see shit. All right. Here, I can start by removing some useless stuff from the bar. Damn. OK. That's a pretty bad live demo, I guess. What I meant to show is I didn't expect that pretty low resolution here. Is that you can have some modules that come straight with I3 status that you can directly use. So you don't have to code them yourselves. One of them is the X-Render, which I guess a lot of people could have used around here. And which is one of the reasons I just had to plug in my thing here. And thanks to some Python magic, and I can have it showing here. And then all my available modes are available. And all I have to do is just right click, and then hop. I can change my X-Render directly from my bar. Thanks to Python. And then you can make even more things over here. I can just, I wrote a simple module, which is just an implementation of a class, which gives me the weather forecast for Paris, France. And another one, which is pretty cool to me, at least, is an online status over here. And it's strange because the guy who wrote I3 and the I3 bar protocol implemented the click event system. But I3 status doesn't bring any support for this. So I would just want to show you that thanks to Python, I also made the click events really easy to do over here. And now I'm just going to disconnect from here thanks to I3 status. All right, penultimate talk, just because you can. Who is that? Someone called Just, maybe? Or maybe someone called Can? Or unlikely that the name was into the middle of it there. Come on up. Do, do, do, do. There's a slight problem. I shut down my computer by accident. Oh, you got. Can someone, can you tell a joke? I'll tell you what, you can be the last lightning talk. So Guillaume, would you like to come up here? Do you need time to multiply and prepare? Guillaume, come on up. No, I think so, 10 seconds. OK, all right. We'll come to the front anyway, Guillaume. There you go, sit in the front row, then it'll be super fast. And when the conference organizers come along to like drag us all physically out, I'll tell them to neatly start from the back row and move one row forwards each time, starting from the ends of the rows because you need the reverse algorithm from the acorn algorithm in order to evacuate the room. All righty. So let's see, what do you call? OK, yeah, yeah, here we go. What do you get if you cross the Atlantic with the Titanic? About, what do you get if you cross the Atlantic with the Titanic? About halfway. OK, so I'm going to start. So there's been so many nice talks today, and there's this terrible thing that is bothering me for some while, so I'm going to give a terrible talk about something terrible. But I need to start the slides. What the hell? Oh, dear God. We need a joke. Emergency joke. No problem. I had one in mind, actually. Then I got, and then it disappeared. What was it? I had the Atlantic and the Titanic. The only 10 kinds of people? OK, that's a pretty classic. OK, well, if I say the joke, someone else should put up their hand and they'll be delegated to sell the punchline. So there are only 10 kinds of people in the world. Stand up, sir or ma'am. Who's that over there? Tell the punchline. That reminds me of the two hardest programs and the two hardest problems in computer programming are, what is it? Cash and validation, variable naming, and off by one errors. OK, I'm going to start. All right, knock yourself out. Yeah, so I can start down. Yeah, I want to get it done. Oh, I feel guilty about this. OK, so there was this nice talk about just because you can, you shouldn't. But how would you know, right? If you don't try. So I had to try. So do you think this sort of container class would be possible? So let me give you another example. So there's the same object, fields, and you could just slap on the fields. So raise your hand if you think it's possible. OK. OK, so raise your hand if you think it shouldn't. OK, it's kind of encouraging. So OK, so I actually shown this to a few people. It's quite controversial. So if you're going to punish me for this, I already heard these. So you have to be original. But it also has features. So it gets worse. You can have defaults. OK. So I'm very sorry. But whatever you do, don't make bug reports, because then I'm going to fix them. And then it's going to get better. Don't even start on GitHub. Don't, because then it will become popular. And people will use it. I'm so sorry. Sorry. I just had to do it. Yeong-Gol-Ah on Qtile. There he is, the final lightning talk, everyone. I was reminded of a good little joke there for a minute, when I disappeared again. I said, oh, wait, wait, wait, wait, wait, wait. No, it's gone. Oh, wait. Well, what was that then? The hardest problems in computer science, 1, 2, 3, ha ha. I also read somewhere that the hardest problem in computer science is not being an obnoxious asshole about everything, which is another way of thinking about it. Certainly that applies to me. I find that hard. Oh, yeah, here we are. OK, so it's a meeting of the Third Rights Natural Resources Extraction Committee. And one of the Nazis giving the report goes, oh, yeah. It looks like we've been extracting too many resources. We've been mining too many resources from the hills above, Hamburg. And one of the Nazis goes, well, mine less. Then Grammar Nazi bursts in and says, mine fewer. And Hitler says, yes. I really like that one. Mine fewer. Yes. Sorry? More stannis. More stannis? Over there, yeah. What? What? What? What? What? What? What? What? It wasn't fewer. It was stannis. I'm sorry, I'm pretty new with this screen. Take your time. We've got plenty of time for me to just be confused a little bit longer. It was stannis. Stannis. Stannis Baratheum. OK. And he made a mine fewer. No, made a game of Thrones choke, right? Does he? Does he? All the time. OK. Yeah. OK. All right. Stannis. If only I had access to Google right now, I could probably appear more intelligent. We don't have the exo-brain plugged in at the moment. Is this a presentation about how a tiling window manager makes it much easier to output to a presentation display? This is because I need PyTree status. Yeah. Are you ready to go? Yeah. You sure? Yeah. OK. Take it away, Guillaume, our last lightning talk for today. So yeah, I'm very sorry this is the last lightning talk because I met this lightning talk during the lightning talks. So I'm going to talk a bit about Q-Tile. At the previous PyCon, there was a guy called Matt Harrison who made an excellent lightning talk about Q-Tile. I will give you the link at the end of the talk. And this talk made me use Q-Tile, actually. So hey, Matt. And yeah, he made some statistics about window manager used by people. So I'd like to verify those statistics a bit. So who is using KDE or GNOME? Who is using a tiling window manager? OK. That's a minority. And who is using Q-Tile? All right. So Q-Tile is a tiling window manager which is written in Python. So that's actually very neat. So I have this config. It is the Q-Tile config. So it's pretty neat. It's just like some Python to configure your window manager. So yeah, OK. I can switch mode. I can pop some windows. That's cool. I can move windows around. Great. I can make them floating. All right. Yeah. OK, cool. Is that a tiling window manager that wasn't tiling right there? Why? Well, because it's like floating. That's the opposite of what I thought we were supposed to do. Anyway, it looks great. It's tiling. Well, so the neat thing about it is you can do some things like that. Ah, live Q-Tile. All right. So I can. Good. Yeah, OK, great. I can have some information about the current group. And actually, as you can see, my groups are called 1, 2, 3, 4. So it's pretty basic. And I can do something like this. Here it is. So yesterday, there was another lightning talk about something about Python and bytecode. Like, I don't want to append my Python object files. OK. I have a small trick for that guy. So yeah, there is an option for Python to not write byte files. So there it is. So you have the Q-Tile website, everything. And I made a small link for the mad presentation. Thanks. All right, give Guy a big hand. Give a good hand to all of the lightning talk presenters from today, from yesterday, Thursday, from Wednesday, from Monday. Give a big hand to everybody that's given a talk or had a tutorial. Give a big hand to all of the organizers. Give a big hand to yourselves. You've all been wonderful. It's such a pleasure being here. I am personally enormously grateful to be part of this community. Obviously, I'm grateful to be up here on screen. Clearly, Guillaume hadn't quite finished his presentation. Was there something else you wanted to say, Guillaume? No, he's off. Oh, my God. So you guys are amazing. This was a lovely week. I hope you're all going to come for the sprints. I hope several of you have decided to come for the sprints, even though they weren't going to come. Thank you all very much. Good night. Have a lovely evening. Have a lovely weekend. Have a lovely life. See you next year. EuroPyton 2016. See you at future conferences. See you at Pyton UK. Good night all. Good night, good night, good night, good night, good night.