 Fun Alex it seems like you're here again. Are you gonna tell us about Hansel? Yes, take it away Alex So just one thing before If you like the t-shirts, please For this girl, this is the artist that made the design the designs She's a local artist a very friend of ours and she does she does a great job and Well, if you liked it, please tweet about it Okay. Thank you So well, I'm I'm Alex Savio. I'm one of the core core organizers I'm a co-founder of the Paterson Sebastian from Society and I'm one of the EPS board members. I work in Munich in the Hesse is a Hospital and I'm going to talk about a small module that I I did for my work last Christmas, it's called Hansel and I'm going to show a bit so Yeah, so in my in my job if I usually work with databases of files So they are basically totally balanced Tree of folders and files so I'm here for for example in this case. I have the subject ID a Subfolder called session and then one type of file and another folder for another type of file and then finally the the file so to To parcel this I I couldn't find something that would help me enough and so I created I created some Hensel which Which has an object called crump and it works like so Here I define Well the the root The root of the of where this this tree this file tree is and then Next I put So I say here go the The subject IDs then the session and then the folder where the Image files are and then actually the files So this is how I define the crump and then I can ask for the subject IDs available in the file system Yes, and then I can I have a list function and Sorry and If I do list I I get a list of crump objects with each one with With one instance of of the existing SID so for each one of these I can I can ask for It's a crump file and so it's a crump object and I can ask for the specific The specific idea of each element and I can also Keep searching inside it And then also I can look I can use rag ex or found name matching So for example, if I want only the subject IDs that finish with zero one I can Do this? It has other functions like intersection to compare different So copies of the same file tree. I don't have the live demo prepared And also it can copy crump file trees In the with different structures. So using the same Argument names I can copy different Different parts of the tree somewhere else Yeah, that's it. Thank you Ladies and gentlemen, I know that Alex is a very humble man and he might have skipped over that So I'm just gonna embarrass him a little bit here because I think he snuck away last year before we could do this but Alex is actually the chairman of The conference and he ran the conference here last year and he ran it this year So we all owe him a huge debt of gratitude. I mean to all the organizers, but especially Alex, so please show your appreciation Okay, I don't think he's actually gonna kill me So next we have leave your camera at home by Maximilian salts after that We'll have Lassa on growing a no open source community unless I think I saw you're here Mind yourself and then after that we've got Pat Curry Pat. Are you here? fantastic hi Pat and Armin, can I see you in the front row somewhere? Do do do do do do do do do there he is fantastic Okay So During this lightning talk session as per tradition. We should have one incredibly long joke Split over into multiple parts. We should have one rap and one song now We don't want to mess about too much so I could probably try and combine the rap and the song for you So let me just show you how the VGA adapters work because that's got to be part of my job, too Which are your VGA and that should work a little better To give a big hand everyone So my name's Max and I'm gonna tell you story Two years ago. It was in the end of September and I just finished my last exams in university I decided I wanted to get out go away from stress and It was a Sunday afternoon I had dinner with my parents and I decided I wanted to go on a tracking trip to Sweden in the middle of nowhere Not talk to another human person for like a week so On Monday, I went to the auto shop we have in Hamburg and on Tuesday I got my ticket and on Wednesday. I went on the train to Sweden and My first big adventure in Sweden started so What you can see here is something like the first five minutes of the trip and then it changes to something like this You're in the middle of nowhere There's only piece around you and I really enjoyed it But I had this nice plan to do around 100 kilometers in a week Which is a lot if you are carrying around 20 kilograms of baggage with you so the only thing that Kind of felt civilized I took with me or the camera and every time I saw a place I liked I took out my camera and took a picture like this So I came back with around 500 pictures or so Probably half of it was garbage. You couldn't see anything on it because it was I don't know shake you or anything But I noticed after the trip that every time I saw something I liked I took a picture of it And then I moved on because I had a lot of way in front of me so I Kind of felt like these tourists you see For example in Paris in front of the Eiffel Tower and everyone is just taking a picture of the Eiffel Tower And no one is actually looking at the Eiffel Tower so This is what I saw all day. It's beautiful and After I came back I wondered why didn't I sit down for a moment and enjoy it But only took out my camera and made a picture of it so I decided Last year that I would do it again and instead of taking a pic a camera. I would take a diary I've never ever written a diary in my life and it felt kind of strange doing it in the first two days It was like talking to myself And usually you're crazy if you do that But then I remembered the last time I went to Sweden I started to talk myself anyway after like two or three days of not talking to anyone and I Didn't really have discussions with myself. It was mostly swearing if there was a steep hill or I don't know I just wanted to say bad words because no one could hear me scream them from the top of my lungs So what happened then was There's Lakes everywhere in Sweden where I was so I discovered like a small current to Like that was not on my way, but I went there anyway because well maybe it was it was nice and I arrived at a lake that was beautiful. It was stunning. It was like on one of these photos you see on the internet and I decided well You didn't want to do the thing you did last year So why don't you just sit down here and I sat down put my bag is beside like Took off my shoes and just stared into the void of Swedish nature And probably took me two hours to realize that I did that for two hours and didn't do anything else So from that comes a very nice story because the first thing I noticed after like waking up from that Was that I had dragonflies and bees sitting all over me and if you're at a rival like this This was the view I had You look on your knees and on your arms And I think I had like two dragonflies and a whole lot of bees sitting on my hair in my arms You start to think about why are they there? And for me in that moment it was probably because of my smell so I thought about how How will I smell or how do I smell? For what? Has to be the king of dragonflies and bees so bees like sweet things So I had to smell kind of like honey and the only thing I remembered Remembered about dragonflies was that the dragonfly larva eats frog larvae and ponds So I probably smell like mud too Which is fitting after not showering for four days So the only thing That came out of that moment was the stupid thought But I was happy and I didn't take a picture of it the only thing I did was writing the stupid story down my diary and The name of my talk is leave your camera and home because I think we should live in the moment a bit more not think about how I'm gonna do a hundred kilometers in Sweden, but instead of That going I'm gonna have a good time in Sweden not do anything there. Just Sit a little like becoming the king of dragonflies and bees smelling like honey and mud Because what else is there to life than that and In the end I have a confession to make these pictures are taken from unsplashed. These are not the pictures I took on my first trip and This is just to make you realize This talk was good with pictures from different people. So why take your own instead just like the moment enjoy it Thanks I Very harsh lightning talk host, but sometimes you can't quite bring yourself to end it on exactly five minutes zero zero. Can you? Let's say you ready. Yes, that's a big hand everyone Thanks, I want to talk about growing an open source community and about being newcomer friendly because there are a lot of maintenance here And there are a lot of newcomers here. Let's bring them together I'm talking about experiences. We have made from the koala community. So during those slides You will see quotes from people that have done our newcomer process. They will hopefully support my arguments However, this talk is not a koala talk So let's get started. I Think one of the most important things to do if you want to attract newcomers is make newcomer issues file issues if you see a typo file another one if you see another one don't fix it and If you want to be even better, you try to build a kind of letter newcomers climbed up So try to categorize your issues in newcomer difficulty low difficulty medium difficulty high let them Get to the next level and that is something that people really like and is really helpful Of course, you need documentation so ideally you just make a documentation page pointing to your list of new camera issues and Maybe explaining something about your workflow then newcomers can learn about your workflow and get smoothly started What I think is also very important is rewarding newcomers, so we have had some newcomers Contributing some really really awesome bears for koala Which means new code analysis and what we did in those cases was we tweeted it out to our users because it's great It is awesome and you did an awesome job. We want them to know that and our users as well There's one thing about Responsiveness when you have a community and you wanted to grow try to respond now whenever there's any question Drop everything you have right now Respond right now. The response can be I don't have time up until next week, but respond now It is also very important To know that code review we have seen this in a lot of other talk as well Code review is a good way to exchange information so you of course want to review the newcomers code and You want to do it friendly with newcomers be especially carefully make them aware that you're doing this to everyone not to deny him But also very very soon You'll want to have the newcomer review your code because in this way You always get the fresh experience from the newcomer together with the like old but more seasoned Experience from a senior developer so you can get the best code and the best learning experience That's a two-way street. So use it Of course if you have a channel and you should have a channel if you're low non-code discussions Like make enough topic channel or something that current greatly enhance the social aspect of being in such a community I think the off topic channel is one of the most channels in the koala community almost as much used as the main channel actually and When a newcomer has Was getting started with your community Ask him for feedback because he has done the process and he will know way better what he needs in order to get started So you can improve next time at the same time you show with this that you appreciate his opinion and The last and most important thing I think is live the spirit You want the community to be because it is not an empty sentence that a lot of people say That a community or things that you do as a leader will be amplified the way you raise the community it will be So very very free words on how you can actually get newcomers to use you newly polished pipeline for newcomers Participate in hackathons summer of codes make workshops for newcomers and Just enjoy them coming to you So I always end my talks with something you I want you to do Maintenors, please try to do at least some of this for your project the open spaces was yesterday Sorry, I forget to update this size And the newcomers ask for those things because maybe the main tuner just doesn't know about it yet Thank you very much Thanks. That's a up next. We have reverse So we have a pat curry on this is my first time for everything Hey, so listen, I gather that and I haven't seen this directly that on Twitter Some people were saying that maybe I was a little bit mean to Florian after his his presentation about the amazing Vim powered Browser, so I just want to say a couple of things first of all I'm a Vim user and I think that idea is awesome and second of all like if I was saying a Project this niche and this crazy if he can do it anyone can do it my message there really was One of of ambition like that is a niche project But I want to you know that thing should really stimulate each and every one of us to go out and try things and we're always surprised By the feedback we can get back from strangers and from the community out there So really for me it was an inspirational story. That's really what I meant to emphasize I'm sorry if I gave the wrong impression and but please take the lesson that I did from that story Which is Florian is amazing. We all can be amazing and we should all go out and try these things that seem impossible And we're so often surprised by how well they'll turn out So forget applauding that please applaud Patrick who's come us to tell us about everything Gracias, este es mi primera vez hablando en español delante un gran audiencia y gracias la gente de Bilbao Los organizadores del europitan. This is also my first time Speaking in English in front of such a large crowd It's my first lightning talk. It's my first year of Python a couple days ago was the first time I've ever been pickpocketed This is my first time Using reveal.js, and I am now working at my first web developer job at the Leibniz syndrome for marine tropin ecology in Bremen, Germany You know and uh These are my contact details. I'm going to be asking for help in a little bit Here's another first. So why did the monkey paint his balls red? To hide in a cherry tree Yeah, I know I know so what's the loudest sound in the jungle a giraffe eating cherries Yeah, yeah, yeah, okay, so this is the site that I'm working on and it's built on a Django back end with a postgres database and a leaflit JS maps background and what I do is I call using the request module URL where I have a data set That I can project on here. So Here's some dummy data sets. This is one This is bienvenidos. Here's another one you can Call it and it hopefully will arrive This is the ZMT that I work at in Bremen it's Here anyways, it works And the idea is to create a place where people can put their Mapping data sets and project them on to a map. This is the form that you would use to put everything on there and Then hopefully I'll be able to display everything onto a map like this and I'm working on this project all alone And after watching Google Matthews and them dangors Daniel proceed us and the koalas talks on Reviewing code. I felt like I should ask for some help so This is the Django model that I use. It's fairly simple and the most important be the URLs section right here. I'm going to be adding a user model for authentication and stuff, but I Call the URL to get the data into the the site and from a The request and serializers and this is what that looks like it's kind of crazy and I'm pretty sure that there's a better way to do this, but I don't know it So I've come here to ask for everybody's help Same we've been talking about code review If you guys have any suggestions send me an email or You know want to do some code review go ahead and find the github account. Oh and I'll put that up in just a second in response to Daniel Procedas Frustration with the terms rock star and ninja. I thought maybe we could be wizards Maybe we could be electric wizards Thank you Patrick, so I'm in I'm in your next After Armin, we'll have Pierre Gilbaugh on py3 stats. Pierre. Are you here? Fantastic, and then after that we've got Danny and Andreas on shah 2017 and I know you're over there I should also say that when I joke about this year being Linux on the desktop that I am proud Linux user and I fight those issues all the time and I have the full Stockholm syndrome. That's been gendered by that I'm in are you ready to go in give him a big hand everyone Okay, so this is about Very boring problem you have a big application big Python application and this big Python application has a bug Then well You're probably going to spend the next two weeks Fighting this bug because it's hard to reproduce etc. Etc. So just for fun. Here is one big application With a bug Okay, so everything I'm going to show in this demo is on this huge application But actually it works on a real large application Okay Can you see what the problem is? Okay, it's five and two. Yes Okay, so well obviously here the problem is that The list will contain one of the objects twice And then this loop will add the value of this single object It will add one twice So that's then this Strange assertion here will fail Okay, and then well Of course if you run it crash, you know, and then you're not happy because well what crushes it this line here Okay, and then what can I do I can I can I Mean it's it's a bit pointless, but I could do that but then What do I get from that? I Get an object X and X dot value is seven. Yes. Thank you So what else can I do you can actually start it using a special version of Python interpreter, that's a special version of pipe. I actually as it turns out that that does not really matter and I That I want to produce a log file So now I've run my program and it crashed and it produced a log file of Everything that this program did Okay So what do I do with it then I? Use another program on the log file This is for Color code lightning and now I get a debugger and this is called a reverse debugger Because now I am at the first line and if I say continue it goes up to the last Executed line, which is a west of exit in this case, and we see that it's 1988 88 executed line of code. Okay, that's boring and Then I can sprint my object and see that the value is wrong like it's seven But what I can also do is going backwards step by step So now I'm on that other line Okay, but that's not the end of the story now x dot value is seven Right. Yeah So x is v subjects dollar zero so I can actually print dollar zero dot value That's just a strange syntax, but I can watch it now. I'm watching Dollar zero dot value and I can continue running backward And now it stopped backward at the point where dollar zero the value changed this is the point where the value change to Six and if I go again backward This is the point further further back where it changed to five Okay So it means twice in the list LST one if I print LST one when it's a big list Okay, but I see that this big list is dollar two So I can watch I Can see I can count Like yes, it's really twice in this list. Why is it twice in this list? I'm going to watch this Now I'm watching the fact that this value is two now I continue backward And it's this line that's like before it was one and after it's two So this is the line that is your real bug and Now you've found the bug. Thank you. Oh man Next Pierre Gilbaugh Gilbaugh, where are you Pierre? There you go. Thanks Gil Fine, so I'd like to do for you now One of my favorite songs and one of my party pieces. It's about a minute long and it's a song a Famous rap actually I like to rap by an outfit called Salt and pepper and I'll do that probably just after the next speaker. Please give you our big hand So this is my first talk ever the your python and it's about the pie free statues and excellent. So Thank you. So I'm sorry, but it's very excellent centric and unique and stuff, but You're going to say why X from there or no, I don't want to hear about it But I hope this makes you want to switch to a better window managing system So why this talk I was watching people trying to plug their computer yesterday struggling so hard with our display And I was like why? This is 2016 it should not be that difficult Exactly so what X is X from there X from there are is a primitive command-line interface to the wonder our extension and wonder our extension is a kind of communication protocol and X from there provides the ability to use that protocol and resize rotate and do things with the your screens Okay So What's I free wm I free wm is the the best styling window manager out there Well and I free status is a very small program that handle in a very efficient way the dating of the I free bar and By the way, I'm going to show you the I free bar in the next minute. So be patient But also check with Qtile. It's written in Python and it's quite like I free So what's by free status? It's an extension of I free status that's it The that handle the I free bar and it can do a lot of things the class feature is from is that it can handle click events So I'm going to to show you live demo of it Oh, okay, I'm just Yes, I'm going to switch to clone mod so And so now you can just see what I'm seeing right now So this is the I free bar there and this is the X under our module of by free status and I can scroll and Change mode and I can change also the the song and stuff like that. So this is on the left side the The the simple configuration of X under and you can see that I can say when I plug My this paper it will put the HDMI I one on the the the right for for instance and I can I can do that I can Can shut down the the screen oops and I can I can put the screen back on but Yeah, I Can do I can do that also I can just say I don't want to be on the screen and then I plug it and Then when I plug it back on oh, I have to And when I plug it back on this This works And so I'm back to the slides now and one this is the configuration and I'm going to show you the github now, but I hope you all like this right now amazed and Yeah, so here is the github. This is some things about by free status on Twitter So if you want to to share your impression or I'll see what people are talking about saying about by free status and Please You're all saying what I'm doing right now No, please I have a look at the github There's one of those songs that you start off thinking is really lame And then you kind of like it in an ironic way and then you realize one day that you just you just actually like it Now I can bring home the bacon fried in the pan never let you forget that you're a man because I'm a W Ma and that's what I am doing what I can the thing that makes me mad crazy upset Got to break my neck just to get my respect go to work and get paid less than a man when I'm doing the same damn thing As he can uh-uh when I'm aggressive then I'm a witch when I got attitude you call me a bitch You think we could be a weak and sex fool. Oh, yeah, you were full. Have you ever been in labor? I don't think so. No, I'm a genuine feminine female thing. Can you hang a number to sheet then? Dan child 2017 everyone. Thank you. Thank you okay We're gonna talk about not really a conference, but a camp that is next year Shart 2017 We are actually not Danny and Andreas, but which dog that's me and this is big We're from hack 42, which is a Dutch hacker space Actually the best heck of space Varnem also the only heck of space Varnem So this shot 2017 what is it? Well the unofficial name is still hacking anyway You may or may not know that every four years. There is a hacker camp in the Netherlands Three years ago that was owned 2013 That was my first heck of camp I think Mix has been too many more One more. Okay anyway So what is it? Like I said every four years and every four years we think of another confusing name So sorry It's actually a Large large campsite. We've got a lot of big tents That are really way too hot We don't have any hotels or stuff like that if you want to go to you'll have to bring your own camping stuff and There's well nerds techies Programmers, maybe even people speak Python there. There's people who talk boolean over there Really everything like that, you know What can you find there well open technology? The most amazing tech The most amazing knowledge We do little little projects what you see on this picture is actually a radio antenna and The colors on there is a live working VU meter That was indicating whether there was any broadcast at all really So Please join us either come and Help us organize or be a volunteer at the campsite This is our URL Thank you. Thanks very much We've got promoting Python a student community mentoring interns interns by a bug over Are you here? Bargava will skip that one for a minute for stem Stefan Virtele After Stefan if we can if we can find the promoting Python Bargava person. Otherwise Statistical data visualizations by Klaus A. King a class. Are you here somewhere fantastic? So this boy has this dog and it's a very shaggy dog and And all his friends are all constantly remarking on the the exceptional shagginess of this dog and Eventually his friends and family say you know what you should enter your dog in the in the village shaggy dog competition to see who has the shaggiest dog So he thinks okay. Well, I'll give it a go. I mean it's not I mean okay. How could I really win? I'm not so sure I'll tell you who can win is stiff and telling you about first them That so my name is third not really important that I'm just Stefan so It's just an announcement about One day the four and five February 2017 in Bursar's in Belgium. We will have the first them 2016 17. Sorry It's just a small event where we can find some hackers lecturers and the rest. Yes That's the description on the website, but in brief is just talk hack beer talk hack is sometimes some beers Okay, the result some we try to improve the free and upper source software In my case just Python We try also to improve the skill my skill and the knowledge So for the first them it's just a small event we found five thousand hackers 400 lecturers and of course unlimited beers because we are in Belgium So yes, this event is totally free Okay For the next we have some topics. You are you like pythons, but I think that you like some other topics We can find hell LVM security post grassy quail my SQL virtualization with Xan docker and the rest testing high o.t configuration container go Ruby and pearl So, but of course there is a python that room So a small example if you don't know first them is just that 1,000 people in the same room One doesn't it's not the mode the bigger room so Welcome to Python first them 2017 The last year we receive 500 awesome. Pilarista Thank you 16 lecturers and of course unlimited beers. That's the room of the Python first them At the beginning we receive 80 people the last year with the success We receive 400 or 500 people in the same room Thank you Oh, sorry, so thank you Stefan I just will be a dinner I Just like to say that I've been to Fozdem and I've been to Belgium just for it And it's not only beer that you can get in Belgium and you don't have to drink there. That's not compulsory. You can also get fries Fantastic, so Klaus are you coming up and getting ready? After Klaus will have Yernef Makovic probably yeah Managing compliance and technical debt What's the pretty close? So surprise surprise he goes and actually wins this local shaggy dog competition His dog is so shaggy that he wins the village shaggy dog competition. Would you believe are you ready Klaus? Yeah, let's give it a go I'm Klaus. I do data analysis and scientific computing and I want to quickly show you a library that really increase the quality of my working life visually exploring data sets is often very Tidious tasks and this is where a seaborn comes in handy So seaborn is a visualization library that is built on top of matplotlib and also sci-fi and pandas so it's kind of standing on the shoulders of giants and It offers a high-level interface to to produce a statistical graphics so it might be interesting because it has nice style functions appealing color palettes and You can do distribution plots regression plots category plots and exit with objects So I'll give you a few examples basically for the times use plot and a category plot. I fear a small data set where a Categorical variables and wage and we want to see how wage depends on these category variables I hope it is okay. If I continue because it's not very inclusive our data set. They're only male participants, but I Hope it's okay. So let's see what we have I want to see how wage depends on education and race by means of box plots But those who don't know what box plots are. It's basically a plot and a box So here we have half of the data lies in this area We have some robust statistical estimates estimates and here we have outliers so there are some people learning quite a lot of money and Yeah, we said we want to relate it to education. So let's add education to the X axis and We see here. It also I think it already looks quite fine But the order is a bit distorted. So let's let's change the order here By adding the order keyword and we see that it helps to have higher education But it is not really necessary. So you can already be a top earner even if A grad student at least in this data set and Yeah, how about race? So let's include race. We could do this of course by adding a second plot But it's hard to to see the relationship. So it would be much nicer to first split the data set According to education and then according to race. So let's do that We have a hue variable Which is split up by race and Now we have everything together Over the Education and also over race then you might say, okay, it's a bit dense so make it lighter change the styling of the plot and Yeah, for example like this and I don't know whether you use the matte blood lip But I think five lines for this graphic. That's a good. That's quite good so It's a fast way to produce Good-looking all view graphics. So this was an example for in the category of plot another thing that I frequently is a time series So in this case, we'll take a look at the sample data from European air quality database in this case It's a nitrogen dioxide So it looks like this We have a daytime index and some variable and want to explore this variable in this case It's from Vienna, but I think it doesn't matter here So what does it look like for sake of simplicity restrict ourselves to the last year in the data set We use a partial string indexing. That's quite nice. I think it's part of a pandas feature And yeah, this is how it looks like so we know that The cause for nitrogen dioxide Are for example cars So since we know that cars don't occur uniformly over the day it would be interesting to see how the concentration changes over time and also whether there is a difference between weekends and during the week So let's add this information to the data set. I had a column whether that tells us is it weekend or not We had another variable that is depicting the hour of day and another variable that we need for aggregation purposes So we just add the information that we want to display in our plot to our data frame And then we just plot it So it's like this Maybe it's a bit hard to read so it would be nicer if you could aggregate Maybe using a median or so some some other robust estimator. Let's do this and there we are to be clearly see that During the weekend the nitrogen dioxide concentration is much much less We have this typical peak in the morning hours caused by all the people who Drive to work by car and there we are so we had just a few lines of code to add to the information And another three lines for the plot for me. This is quite useful And maybe you want to check it out as well. I think my five minutes are over so Thank you Thank you very much. We have a couple of announcements Alexander here. Can you see him everyone stand up? We've just received notification that a talk is canceled at the last minute So if anybody would like to do an extra last-minute talk first come first served You have to find Alexander after the lightning talks end because it's not fair because otherwise just the front row will get to him first So first come first serve free talk slot tomorrow the other announcement is that Pokemon trainer trainer by the name of Well, so a Pokemon trainer has won the Pokemon go Championship, but I'm here to announce their name. The name is a throaty mule Are you in here? Maybe it's an anonymous thing But anyway, the prize is a free ticket to the cider house for this evening So you'll be able to pick that up from the the registration decks congratulations The best Pokemon trainer whatever that means and one final clap here for Janusz, please So hi guys. I must confess. I really liked all the lectures, but there were some That really somehow resonated with me. I Was really surprised how many therapeutic sessions we had, you know, we talked about How we write tests? how the upper management doesn't understand that we need to write tests and we Also discussed how to make pull request reviews as best as possible and So all of this energy just to not fuck up things And like an hour ago, we had a discussion. It was a talk What do we do when we fuck up things? So in my day job, we do a Lot of the time with startups that have similar problems and Interestingly, it doesn't matter if they are very small if they are just verifying their market Or if they just got like 10 million dollars in their D funding kit round and I just thought it would be interesting to share some of the solutions that worked for us So, yeah, again the meta classes guy So meta classes at the end of the day are really not that black magic And I would try to argue how they can actually Help us in daily life to resolve conflicts or similar things so The first picture should basically make the whole point and because I don't have much time I'll just skip it. I'll just make the case so you can then at home check what is actually going on Okay, we have some code So you see we have here two classes the first is decorate public methods and the second is require docs So usually the teams that don't have the time or the budget to write test and yada yada They also probably don't have time or the budget or the resources or whatever to set up the CI pipelines and things like that so the other options is of course to Find some static analysis tools or linters and configure them correctly, but if you have like a Legacy project you'll get just noise. So here are a couple of solutions. So the required docs class You see it is Metal here which indicates that it is somehow connected with meta classes and now every Class that will Be subclassed from this one Will check on initialization Or better yet whenever you start the app So you get instant feedback no waiting for the test or the CI server or whatever you just run it and You'll get an exception if your method doesn't contain doc string. So how cool is that? So if you want to go further you can analyze the doc string and say and write your Parcel here and say hey if this does doc string doesn't comply to let's say Google guidelines throw an exception And you can do a lot of cool things like that just with meta classes And again you get like instant feedback. You don't have to wait for Jenkins or whatever and it doesn't take a lot of resources so that was kind of the compliance part and Towards the technical depth part So again, I worked with Selenium for quite some time And you know if you want to have the proper reports and so on you have to configure a bunch of things So a solution would be to write a decorator that catches an exception and makes a screen shots And at that point, but in this case you would have to decorate all of your test methods not very cool Just write a class like this a meta class and Use it in your test class and from them from there if you subclass that class It just works it. So if you check out what's happening here you traverse through the class Methods and you basically decorate them and you are doing that for all of them the other thing is yeah, we didn't have time for Design and whatever excuse and yeah, basically you can refactor step by step and That's basically the same solution. Oh, sorry Oh Okay, yeah, so you have a class it has some arguments and You can solve it like that with meta classes And that's it. Yeah Thank you very much. Oh, yeah, the crowd selfie everyone stick your tongues out And that is in fact all we have time for today. So thank you very much to each and every single one of the speakers Thanks to each and everyone of you Thanks to all the trainers thanks to all the gold Organizers thanks to the volunteers thanks to the bar staff in all the bars Thanks to the restaurant owners thanks to the people who sell us ice cream on the street Thanks to the people who made the bridges and the museum and the arts and the and the pigeons and the birds and the bees and the nature and the sky and the clouds and everything