Django Chat

Django Fellow - Mariusz Felisiak

Episode Summary

Mariusz is an expert on Oracle databases and a Django Fellow, responsible for triaging tickets, security releases, and generally guiding Django itself.

Episode Notes


Episode Transcription

Carlton Gibson  0:06  

Hi, and welcome to another episode of Django chat. I'm Carlton Gibson joined as ever by Will Vincent.


Will Vincent  0:10  

Hi, Carlton. I will.


Carlton Gibson  0:12  

And we have a special guest today, Mariusz Felisiak, my fellow Django fellow Hi, Marius, how can I buy Max? So Marius is your Django fellow like myself? So let's let's first of all talk about how you got into Django and then perhaps we can get into what the Django fellowship is and what we do. So tell us about how you found Django and how you got into that.


Mariusz Felisiak  0:35  

So I work with Jango for almost 10 or 11 years now. And most of the time, I worked with Oracle databases, and in the same time I used Django heavily. It seems that it's not a common combination. It was quite rare when in 2015, I think Jungle false positives announced that they are trying to find someone that will help in maintaining the jungle or at the backend the entire infrastructure right everything that is related with Oracle


because if they will not find anyone then they will consider to remove


the org backend from from from the court because it's really hard to maintain without an expert that is using it daily. I decided that maybe that's the best time to start to contribute to Django to how to move with any current infrastructure. And to be honest I was really surprised that at the beginning was such a warm and friendly welcome because basically at the beginning cuz I was a person that nobody really knows After a few weeks, I started to be responsible for the Oracle ci infrastructure. As and I started to contribute to Django. This became a part of my daily routine to be honest. So after my normal day of work, I checking your tickets. It's hard to find boxing, especially in the wrong bucket at the beginning, and then I moved to another part of Django. I tried to find some small optimization, cleanups, reviewing pull requests, which is not really a common thing to do, because most of us would like to submit patches, and be a part of Jango being one of the authors of Django, but there's only a small amount of people that really would like to reviewing to review tickets and check if they work properly.


Carlton Gibson  3:05  

Right. And you said you were doing? Yeah, no, I mean, it's difficult, right? I mean, we'll come on to what the the fellowship role and what that is in a minute. But you said you were doing this after your work. So it was like you're employed, we're using Oracle at work, as well.


Mariusz Felisiak  3:21  

Yeah. So historically, we use Oracle database and Jangan work. And after a number, and then of work after eight hours, I came back to home and use my computer to contribute to Django. So it was quite a hard time for me because also in the same time, I tried to defend my PhD. I also have a family, a small kid, etc. So it was quite hard. Time for me. Yeah, because we really


Carlton Gibson  3:58  

wanted the big things with open sources. People getting burnt out people putting in too much people like energy running their energy levels low and then not being able to carry on. So I mean, how did you manage that? Were you allowed to contribute as part of your work? Or was it purely on your own back or purely extra time?


Mariusz Felisiak  4:17  

So this is pure in my extra time. So it was really intensifying for me. Yeah. But now finally, I have some free time. Because Django is my daily work. So yeah, I don't need to do this is my extra time. But but but Betsy probably spend some extra time in Django.


Carlton Gibson  4:41  

Yeah. Do you have any tips for people contributing like how to how to be aware of how much time they give versus the other things in their life?


Mariusz Felisiak  4:49  

For sure, sure. You should


have some box of time that you want to spend on, on on any open source project. It does. To be a Django you can contribute to one of Django first party package, you can contribute to another open source because there's plenty of them. There is a there's plenty of maintainers that really would like to get your help. That was not so obvious for me at the beginning when I started to work in an open source world




I imagine that all open source packages and their maintenance or just some kind of superheroes out there know everything and and it's, it probably will not be helpful for them to to get any, any time or any code from me.


Carlton Gibson  5:52  

That's not true, right? Not all superheroes wear capes, right? Like all projects are under maintained or I don't know I don't know whether all projects but But most projects most maintainers could do with a helping hand. I could do with your input.


Mariusz Felisiak  6:06  

Yeah, I've set it up set it to three small Django packages that is called job request. And it was also quite surprise for me that after sending five or six pull requests to this package, it's my turn they asked me to pay me we've created a Django request team and we will help you to maintain this feedback. I was really surprised also with such a word welcome. Because it was someone work and he gave me an access to his repository and and ask for help. It was a small, big step for me, an


Will Vincent  6:55  

open source maintainer czar, very trusting as curious Carlton since you also got started with us. Number of packages. If that was a similar case where a couple prs in the maintainer says, here's, here's the store, here's access, because in non non open source engineering context, no one would do that, but it seems actually quite common in open source if they get a sense that you're a reputable actor, I guess you can always revert everything, but people are pretty trusting once you've crossed the bar.


Carlton Gibson  7:24  

Yeah, I think so. I mean, the issue is time, right? So you know, I've got a few projects that I want to work on over the summer. And the reality is, we're halfway through the summer and i've you know, not had very much time to work on them at all, but you know, I'll chip away and then you know, I'll get to do a release in the autumn but the the cadence for that kind of that kind of management is very much slower than, you know, something that's fully maintained with pay time, simply because it's volunteer effort. And so if you can come along and say look, I'll fix this issue or I'll, you know, triage tickets or I'll, that's amazing. I don't know a single maintainer who He's not going to jump at that, because I don't know any project, which is got more hands on it than is needed to keep it going.


Will Vincent  8:07  

Right. Well, Mario has for you. What was that process like? becoming a fellow? how did how much work did Carlton need to do to indoctrinate you? Or what was that onboarding process like? Because when we had Tim Graham on, Carlton and Tim talked a little bit about that process, but what was it like for you? Because that was, that wasn't that long ago.


Mariusz Felisiak  8:29  

So to be honest,


at the at the very beginning,


it wasn't really tough for me because I was already a part of the Django core team. I had access to the Django repository, I was aware of how to backport changes, how to review tickets, how to trash tickets, etc. So I know the entire process




I can say that


especially I should be thankful to Tim Graham for that. Because from 2017 when I became a part of a member of Java core team


helped me a lot with reviewing tickets.


We've the entire process for a lot of tips and how to do some things. So I'm extremely thankful for to him too. I can say shamburger


because he was responsible for the ORAC beckoned




of course to Simon Charette, who's our


RM star in China. So if you have any Have the RM specific issue, then we can also ask him for help.


But I don't think that the entire process of


becoming a Django fellow was really tough for me. I just switched from doing almost the same in my extra time to normal daily work. Maybe with some small differences like releasing Django, previously, I didn't know how to release Django. There is a new version of Django, but


now I can do this. Yeah,


Carlton Gibson  10:43  

I mean, the difference is, well, I wasn't actively maintaining Django before I became a Django fellow whereas Marius was I got, I got the fellow role from the base of my work on DRF and Django filter and you know, other packages, but Mariusz has already been Been working on the array. And you know, when Tim said he was going to step down, I was a bit like, wow, Tim knows so much. how's it gonna work without him? And then when the fellow committee then they nominate when they pick merits, I was like, wow, that's the perfect person. You know?


Will Vincent  11:15  

Exactly. No, you're telling me like, and I was asking you, how do you how you felt about it, Carlton, you were saying how thrilled you are and then you've been saying the same thing last couple months how you know, mersa super amazing work you've been doing, Maurice. So


Carlton Gibson  11:28  

anyway, right. Mary's tell us about the what is the thread for our listeners, tell us about the fellowship role and tell us you know what that involves? And, you know, what is the fellowship? Well, for people who don't know,


Will Vincent  11:39  

because I've seen you, you you do tweets, I think monthly is it talking about tickets you've, you've handled, I find that very helpful. I almost wonder actually for YouTube fellows, in the same way that Tom Christie does a monthly update, if perhaps more visibility on the roles that you that you got They both are doing would be helpful to the community?


Carlton Gibson  12:02  

Well, there is we do fellow reports on Django developers where we, which is the public, the the public facing work that we do so that, you know, tickets that we've reviewed on track or or prs that we've reviewed GitHub. We see those. There's other work that we do like security work, which we don't put in those, those fellow reports. But


Will Vincent  12:26  

the Yeah, man, it's more just there's a divide between developers and the rest of Django and I feel like, you know, perhaps I can promote it a little bit on my newsletters, the fellows report, but I think most people aren't actually aware of what the two of you are doing.


Carlton Gibson  12:43  

Yeah, maybe. What are we doing? What's the


Will Vincent  12:47  

What are you doing,


Mariusz Felisiak  12:49  

even for me to squint hard to expand what I'm really doing in the job, even to my previous colleagues, or other developers here, when they ask what you're doing as a Django fellow, and when I try to explain that it is not mainly related with writing a Django writing code today Django core that was quite surprised that it is not the biggest part of our job. So we are mainly responsible for reviewing tickets for trashing tickets for reviewing pull requests. I think that's the main part of our job. So my routine starts from checking junk updates. We've taken all events on our truck instance, comments that people aren't new tickets, etc.


I started I mainly start From


reviewing tickets, review and other review tickets, and after that, reviewing pull requests, left some comments. We are also responsible for meeting ci infrastructure. We are also responsible for being for example on IRC channel and other support Jango channels to,


to to


be one of the


language supports for for for losers but we have so many people that are involved in supporting users on Django users, Google group or in Django IRC channel that it is locked up. It is not the biggest part of it. They work so many charging tickets, reviewing pull requests, merging them big party changes, but we are also


checking Django security group


discussed security issues.


If it is a security issue or not, how to solve them. Mainly That's it,


Carlton Gibson  15:22  

doing the security releases. And yeah, yeah. That's one of the biggest


Will Vincent  15:27  

Yeah, we're gonna start out and we're, we'll link to the Django developers and Django users groups, because I'm looking now at the monthly fellow reports that you, you both put out. So for folks who do want to see there is a lengthy, detailed report. Just this is the separate question of communication within Django, and it is when you use it, Google Groups work but maybe not the most public facing forum for stuff.


Carlton Gibson  15:56  

I mean, one thing that's been coming to me recently over the summer has been You know, we just did a security Reese release with four security issues. And then the month before that there was a security race with one or two I can't remember without looking right now, but there's been a lot of work there. And then there's also been issues on Django Project And then there's a Django people and there's Django packages and you know, there's there's all these other extra side Django snippets. I think he's under the Django organization now as well has been for years. I don't know. But there's these other bits of the kind of Django ecosystem that extensively Marius and I meant to maintain as well or part of our remit is to keep those maintained. We just don't have the time because we're working on the core Django project. The Django you know, open source project Django. And so one thing that's really been coming to me is that is when as an as another way that people could contribute is in all these other things around the community, which I've been coming to realize are part of the federal role, but which should almost unmaintained because there just isn't the bandwidth there to support.


Will Vincent  17:04  

Well, what's an example of a community that does this right? Is there a language or framework Django can borrow from? I mean, because this is a hard problem.


Carlton Gibson  17:12  

It's a good question.


Will Vincent  17:15  

I guess part of the issue is that Django truly is open source and community driven, whereas some, some projects are much more solo efforts with a little bit of help. And so those solo efforts can have a canonical, you know, I'm thinking of view or Laravel, where there's one person who's really driving it, I guess, DRF it's, you know, as you and Tom Carlton for quite a while.


Carlton Gibson  17:39  

Yeah, I mean, what would I say? I mean, I think there's things like Django packages, which has been around for a long time, which is super, which is great. And there's Django snippets, which again, has been around since the early days of Django, and but they're not really picked up and loved and we either need to sort of say to them, well say either, we need to go to the DSF members. mailing list, which if you're not a member of the DSF, join it as we say every week almost. But we either need to go to that mailing list and say, hey, there's there are these resources that need maintaining? Can we find some volunteers to help maintain those? Or we need to end of life them and scale back a bit? And I don't know. What do you think marriage because you, I saw you a week or two ago, you ended up spending, you know, a quite a lot of time maintaining Django people. So what happened there and what were your thoughts on the scope of the of the Django project?


Mariusz Felisiak  18:30  

Yeah, we have a lot of packages and to be the source of a lot of sites that are under Django swing. So it's, it's really hard to maintain all of them, just like the issue that we have in Django, people


a week or two ago.


Who some stretch size that that that that you get, instead of Django people


and to be honest, it's still something that we didn't understand how it


was happening probably some issue in Heroku but it's it's it's hard to understand what happened but they spent their entire their own backlink requirements on redeploying in Django people on here who etc. Previously before this issue happen I did not really spend time


in maintaining Django in within Django people so


but suddenly an issue appear on the Django people that they have a certain size issues of Django people and maybe we should fix this. So I guess what Whoa, whoa, what what what just happened? it it's it's really strange, maybe some updated requirements. Let's bump them. No, no.


It wasn't better.


So but it's not currently it works fine but but we have a lot of packages that are currently in the Django org like Django Docker books that that we


moved from Tom Forbes


repository under under the Django and


also it.


Carlton Gibson  20:41  

Let's talk about the Django doc box project for a minute what is that and because that's, I think that's gonna be really useful tool and explain what it is and how people might use it.


Mariusz Felisiak  20:52  

So this for me is extremely useful because I'm not able to have


multiple things. Based versions on my own


laptop. So, in the jungle cookbooks we have ready to use containers with a different version of our databases that are currently supported by Django. We have different versions of libraries, for example, these libraries




you can use them to run tests you can use them to, we can use them to find issues on a different versions. Because our infrastructure currently works with a single version of each database, mainly the last that then the newest supported version of each database and in the Django, the cookbooks or supported versions with the entire test suits and you're able to catch some small issues. In the previous version of each database like, I don't know if this single test is failing on PostgreSQL, 9.4, for example, or Maria db 10.1 point something which we won't be able to catch without it. And then it's also really helpful for for user because you don't need to set up the entire test. Right. So


Carlton Gibson  22:27  

that's what I was gonna say, do you think do you think using Django Docker box is a better way forward for new contributors? I mean, assuming they're happy with doc here, assume like you think that's the way forward to recommend to new users to get going with the Django test suite and


Mariusz Felisiak  22:42  

get going. If you have if you have a basic Docker knowledge like me, then you will be able to to use them to run the entire test without


the entire process that


can be quite hard to set up database Just 123 or four different database and database engines and to set up everything correctly, is usually, especially if you are trying to submit a patch to the URL. It's it's the hardest part because you need to support all database mentions.


Carlton Gibson  23:20  

Right? And so speaking of all database versions, your You said you got into Django because of your use of Oracle and you could use support you chose to support the back end. So for all of us who aren't using Oracle, what what's the offer what's, you know, because it's got this reputation as the enterprise beast, but you obviously have fun with it. So, you know, give us the 10 second elevator pitch what's Oracle for us and why should we use it?


Mariusz Felisiak  23:46  

Yes, I think that the ORAC is just a normal database. I know that is


maybe not us.


Support for users and developers. That's the main issue with the Oracle database that is not the developers friendly just like PostgreSQL for example, or other databases, but it is changing in the in the last few years. So you can see that there is a process


of changes in the Oracle database and


it starts to


looks like almost like a PostgreSQL. So


for example, a year or two ago, they added a feature that is really similar to the different databases like the PostgreSQL Yes, we have, you can have different databases in the same engine in the same instance here. So I think that it was big step forwards. Now they're trying to support JSON fields and


and other features that they added recently.


So it's better than it was years ago.


But currently I'm not using convey so. And I'm thankful for that. And to be honest, I think that the biggest advantages of using Oracle database is the entire enterprise management aspect of enterprise management utilities that they get for you. So, probably not find so many. So many features for DBAs, like in the Oracle database, okay, so it's easy to administer. Yeah, it's easier than in other databases.


Will Vincent  25:49  

Oh, I was gonna ask, if Oracle ever reached out to you, or other Django people directly, like, you know, do they give a shit about Django with new features? saying, Hey, we worked on this or is it just they toss it out there and assume someone like yourself will do the free work to integrate it?


Mariusz Felisiak  26:07  

I'm not sure if they really care about open source sort. But, but but few years ago,


they take under the Jenga they take under the Oracle organization,


at least Python driver that was previously maintained by a single person currently currently his Oracle employee and I think that he's It is his daily work to maintain Python driver from the Oracle database. So, at least some step forward but but yeah, they need to try to profess I'm not sure.


We try to urge them to


to get some fans. It's hard for me to say


Carlton Gibson  26:59  

it seems Something that we should do right, we should reach out to this giant mega Corp Oracle and say, Hey, can you give us some peanuts so that we can maintain the support in the leading one of the leading Python web frameworks?


Will Vincent  27:13  

Well, and there's a real danger Mario's with you not using it day to day that it will not be as maintained as it has been. So who would we who would do that reach out Carl, and this is actually just so we make this for those listening. Part of the problem with Django is that there's a lot of cooks like who would anybody who is empowered to reach out


Carlton Gibson  27:32  

so Marius could email him? I can email Frank Kadima, Frank, president of vSf bought could email them, but we'd have to put that on his radar. You know, any member of the DSF anybody, any user could be like, Hey, I use Django and I listened to this podcast on Django and they said the Oracle don't fund maintenance of the back end. How about you Vaughn, like, but yeah, ultimately, I guess we should reach we should reach out and say hey, dear Oracle, please, can you support us?


Will Vincent  28:02  

Well, and ultimately it's finding there are big companies out there using Oracle and Django. And in the absence of support will need to drop one or both for their project,


Mariusz Felisiak  28:14  

and probably the title of sinking, originally will be to get contact with someone that that really can make a decision, because he's a huge organization.


Will Vincent  28:26  

Yeah. What? Yeah, and we don't have to spend the whole episode on Oracle, but they must. It must be a solved problem for some other frameworks or languages. It can't always just be this beast that is totally disconnected from the programming world that uses it and pays their bills. Anyway, maybe someone from Oracle is listening. What would be like what would be helpful? It'd be nice it like for you both. What would what would you like people to know about fellows that they don't already know and what could the community do to make your roles easier


Mariusz Felisiak  29:00  

problem people the people that are that are not maintain any open source project don't know how


hard it is to maintain an open source projects.




once one one thing that I like to say if you reach any open source project angle other than be polite to maintainers because because they are


very people that


in many cases have their own job, have their own family and maintain open source projects is not what they would do daily for


eight hours.


And sometimes in an open source you you reach the kind of discussion or conversation conversation When people are just


arguing or or trying to


say, not really supportive things like you're not meeting this package very well. So I wouldn't use it here.


And they are not, then you understand that? It is not something that I know personally, I would like to hear. And


in most of cases they shouldn't really. They don't really bother off that kind of comments. Yeah.


Will Vincent  30:35  

Yeah. Well, it's and I think it's, it's an extreme version of what happens to a lot of software. If you, if you're at a startup, there's often the case where you're less happy as it grows, because the numbers on the screen increase, but the amount of complaints you get from users, that's, you know, you hear those and you have to deal with those. So even though you've gone from 100 to 10,000 users, day to day, you're going from five 250 complaining people and so you're just sort of miserable. Because there's that disconnect between digital and the human side of what you're doing. And I for you both as well, you.


Carlton Gibson  31:12  

Yeah. And I think a lot of like the job of triage, the reason why no. So why was the fellowship program creative was because no one was creating tickets, and no one was reviewing pull requests. And it can, it can be really difficult. You know, you've got a pull request that's three years old on the ticket that's nine year old, nine years old, that's been updated. And some more tests have been added, but comments, which were vital for years ago haven't been addressed. And to find that history and to really work out what's going on. It can, you know, it's really hard work. And then you get to the end of the day, you're like, wow, I'm exhausted. And that's why the fellowship role exists, because that work simply can't get done. And we're working our butts off to get us through as well as we can and If people people all I guess I would ask if people recognize that and people realize that we're doing our best and if you don't agree with us, that's fine. Just say, Hey, I don't agree and try and explain why. Rather than the passive aggressive or I'm going to stop using Django, it's like,


you know,


Will Vincent  32:19  

come up with a better insult, right? I mean, that's not Yeah.


Mariusz Felisiak  32:24  

Yeah, but then you to say that in the Django community, we are


really happy people because it's, it's not really often that you get that kind of comments.


Carlton Gibson  32:33  

Yeah, it's very,


Mariusz Felisiak  32:34  

but yeah, instead of adding comments to subtract tickets that when you will move this forward, unit or Always remember that patches are welcome here. If you want to move it forward, prepare a patch and we'll review it as soon as we will be able to,


Carlton Gibson  32:53  

and when we do quite well, you know with like the patch. So in the track system, there are patches which there Lots of patches submitted there's 200 open pull requests, but lots of flagged with need improvement. They've got reviews on them, or they need documentation. So they've got reviews, there's only about 20, which are sort of they not with a review already in place, and that that 20 rolls over pretty quickly. You know, you we get there, we get there quite fast. We, I think we do quite a good job. And you know, Mariusz is amazing, and I do the best I can so


Will Vincent  33:26  

well, Marius, I'm curious for you. So Django has a number of new features coming forward, I guess, most prominently async What are you excited about? That's coming to Django as opposed to the maintenance role that you have to spend a lot of time on


Mariusz Felisiak  33:42  

to this async


async person or insert expert and it was a huge challenge for me to review Spears async ticket with adding as the handler For example, because I didn't even know where to start and in the same time you are supposed to pull from I think is to Django for the quality of this country because partly we are responsible for for data for not creating a new regressions, etc. So I had to learn a lot about async with this in this first batch here, and probably learn even more when we add async support for for for views and to another part of to another part of Django. I think it will be a big challenge. I'm not sure if we will be able to release in the Django 2.0 to a testing support for views but we'll see because we have only a one month to the feature freeze, and all sorts of other features in in the light lie in the line like enums for example to junk or am adding new current currently rather than your exclusion constraints to Postgres where we have also a lot of new features that are waiting in the line and currently when we have only one month to the feature freeze we can see a beginning of this pressure that's, that's my new feature, you should add it because if not, then I will need to wait another few months to the next general release here. So please Peace out. It's at this last day before the feature freeze, if to view it and move it into into court.


So we need to be early.


Thirsty people


at least In this fueler speak speak before the future, please. But we have so many new features currently in the Django 2.0. That's even if we will not add any new feature to Django 2.0. It is already essentially,


Will Vincent  36:16  

what is that date for feature freeze?


Mariusz Felisiak  36:19  

It should be at the beginning of September.


of September, I think


Carlton Gibson  36:25  

913. But yeah, okay.


Will Vincent  36:27  

Yeah, pretty well. Perhaps we want to move this episode up, Carlton, just so that people are aware of that deadline? Who maybe wouldn't be?


Carlton Gibson  36:37  

Yeah, I mean, I think anybody who's regularly developing knows the feature freezes coming because it's, it's kind of


Will Vincent  36:45  

Yeah, I just I think most again, I'll be the the voice of ignorance. I think a lot of people aren't aware of the schedule and for your Yeah. So if someone has submitted something, they're aware of that. For a regular person. They're not aware that by September, you know, it's coming in December. More or less?


Carlton Gibson  37:01  

Yeah, I mean, so the interesting thing with the feature freeze is like, it gives us time to release the alpha or the beta, the release candidate, get those tested in the community. And that's generally speaking, why the the point releases are good quality. And they're, you know, they'll always be half a dozen little mini regressions in some new feature. But the point of having the feature freeze is to allow time for those bugs to be found. But you know, we have to be, I know, kind of certain that there isn't bugs. We can't just go all we've still got three months to fix it. It's like no, no, this is if it's not ready, we can't bring it in at this point, right. Any projects, you want to make side projects, you want to mention Marius,


Mariusz Felisiak  37:44  

and I'm so involved in in Django that


in the last two or three years, I didn't have time for and


Will Vincent  37:56  

side projects. If people do want to get in touch beyond The Google Developers that developers Google group, is there a way that they could or should Twitter email? Do you have any preference? I


Mariusz Felisiak  38:08  

think that the best way to reach us is on Django IRC channel, Django, Deaf IRC channels to be honest. Because basically we are there for then for the entire day, maybe not actively, but when I start my job, I'm just opening currency channel and I get the entire history from from the last few hours here. So, we are able to respond to to any comment there. So if you have an issue with running a test suit or you would like to propose a new feature, but you are not sure if they should go to the core, you cannot and you cannot help comment or are on IRC channel. And if not one of us, then probably another form from committee will respond to that. I think that the IRC channel is the best and the most responsive way to get help in using Django and to get started to contribute to Django.


Will Vincent  39:21  

Okay, great.


Carlton Gibson  39:22  

Yeah, Mariusz is marvelous, very active there. And so a lot of the other core members, I'm less so I'm more of an asynchronous methods. person. So you know, for me if you want help get setting up the test suite, email, Django core mentorship, and I'll get that and reply there. You know, I'm on IRC, but I, yeah, well, we'll link to all these


Will Vincent  39:39  

resources in the show notes. So they're available to everyone.


Carlton Gibson  39:42  

But brilliant, right. Let's leave it there. Thank you,


Marius, thank you very much for coming on to the show. It's been super having you. And thank you for joining us, everybody. We're on Twitter, chat, Django


and Django Join us next time. Bye bye.