Django Chat

From Django 0.9 to Present - Russell Keith-Magee

Episode Summary

Russell Keith-Magee is one of the original Django core contributors, a former President of the Django Software Foundation, and the creator of the BeeWare project. We discuss funding open source, legacy Django features, and the future of Python.

Episode Notes

SHAMELESS PLUGS

Episode Transcription

Will Vincent  0:06  

Hello and welcome to another episode of Django Chat. I'm Will Vincent joined as always by Carlton Gibson. Hello Carlton Halliwell. And today we are joined by Russell Keith-McGee, who has a huge imprint in the Django community. And we're thrilled to have him on Hello, wrestle. Hi, nice to having thanks having me. So there's a lot of things we want to talk about today. But if you can give the 32nd version of how did you get involved with Django and put the exclamation points on all the ways you've been involved? Because you've been involved with 1213 years? I mean, you're one of the very, very, the elders of the community.

 

Russell Keith-Magee  0:36  

Yeah, yes, yes. It'd be straight. My beard was a positive

 

Will Vincent  0:39  

sense in a positive.

 

Russell Keith-Magee  0:40  

And so yeah, I joined the project. I wasn't involved at the journal world. I was one of the first one of the one of the early contributors who joined the project. I downloaded it for the first time, around November of 2005. Where was about 0.90 0.91 timeframe? that point in time, it was a period where there was a lot of low hanging fruit like it was, it was there and it was being used. But there was a lot of stuff that could be improved. And because it was Python, I could jump in and I could read the code and was able to work out what's going on. One of the first big contributions I made was around many too many fields. So if you've got you got your models, you've got many to many field where a is related to be Django, as of that time, you could query from a onto Model B, but you couldn't query from B back onto Model A. And so you know, that was kind of useful. And so I thought maybe I won't be able to do that I jumped into the code was basically take all the code that was there for one, copy it reverse the direction of all of the the variable joining Porter that was happening, and submitted that as a pull request. And after that, and a couple of other little smaller pull requests that I had to put together because I was just kind of tinkering and this looked interesting and I had some grand plans of things. I was going Do Adrian mildly early January 2006, and said, Hey, do you want to you want to join the project. Now at that time, what we were doing was a thing called Magic removal, which is this very large scale rewrite, which was only going to take six months at one point I would I would be was was like weeks away as soon as we could finish magic removal. Magic removal was finished in about six months in 1.0, took about another two and a half years. But I was there through that process and was involved in the introduction of the act like a user facing test testing tools for Django. I mentored a couple of students during Summer of Code projects, most notably Alex Gaynor, and the introduction of multi modal database support. And another a number of other little projects along the way, over the course of a couple of years.

 

Will Vincent  2:49  

And you were in Australia this whole time, right? Just because we like to talk on the global nature. Were you were you doing your PhD or do you come out of your PhD?

 

Russell Keith-Magee  2:55  

No, I was well at a PhD. At that point. I finished my PhD 2001 and was Working for a defense consulting company, Western Australia, how and Perth in particular has a very large naval base. And there's a big sort of US naval presence and defense consulting. That is a thing. And so I was I was working for them. And we just happened to have a project at about the same time that I discovered Django like I was looking at Django for my own background, tinkering side project stuff. And we happen to have a project where the the project plan we've been funded to build this thing. We were going to build this giant Java client server application with databases and user interfaces and all sorts of things. And I sort of had this sudden realization and about February of 2006, that we're proposing to build a website, except it's going to be a lot more complicated and a lot harder to build. So why don't we just build it as a website like it was a data gathering site for like, the idea was that you're going to have assessors like Teachers trainers in a in a military simulation context, looking over students who were, you know, operating radars or flying flight simulators and assessing that they were identifying, you know, targets as they were approaching or whatever that whatever they had to do they met, they met that criteria for training. And then we're just going to be like Check, check boxing, yes, they've met this criteria, comments, they could have done a little bit better or whatever. And it's literally just filling in forms, which is exactly what the web is good for. So why don't we just build the form in Django and say, it's done and I pitch this to my, my immediate supervisor. You know, I've been fiddling with this thing called Django, I got a feeling we could knock this project down in like about two weeks if we, you know, if we just did as a website rather than build this whole client server thing, and he went off and spent a couple of days and came back and said, Yeah, you know, we can we can do this. We had like, first prototypes up in a couple of weeks, and we polish it extensively beyond that, and it became a major line of revenue for the company beyond that, but that because it was Because I was discovering an open source project and its early phases, I had gotten myself in beta as a member of the core team. And then I managed to work out that I could use Django for my day job. It sort of became a self fulfilling prophecy that I then had a reason to work on Django and was getting not paid to work on Django, but at least paid to address some of the bugs. They didn't mind if I answered questions on the mailing list during work hours. So it kind of meant that there was a reason to stay involved as well.

 

Will Vincent  5:26  

Right. And that third piece is not always common. I mean, some of our guests who are very involved, you know, have to code and not Django during the day.

 

Russell Keith-Magee  5:35  

Yeah, no, I and I was very, very lucky in that regard that I did. I did have, I was working for a relatively small company that had certain liberties and the way they're implementing things they didn't have to adhere to, you know, this huge spec that had been laid down by some huge contract two years before. And engineer engineering manager who was open to the idea of trying something You in the name of getting something done well, so dunk, dunk quickly.

 

Carlton Gibson  6:03  

It does also work the other way. If I think some of the major contributors currently who, you know, they're there all the time, it's because they're working with Django in day job and have that time, you know, people wonder how is it possible to contribute? Because, you know, it looks like these people are giving out a lot of time, and they are, but you know, they have that opportunity. Yes. And that

 

Russell Keith-Magee  6:21  

is suppose ultimately is the thing is that money ultimately is what decides what people's attention gets spent on. Now there is there is an extent to which the work that I do in open source like outside of Django in Django, everything else that I've done is, you know, the way that I entertain myself on a Saturday morning, some people do sonichu puzzles, I fixed bugs in Django, or I fix bugs in an open source project and it is a fun intellectual exercise from that perspective. But particularly when you start getting to the really gnarly problems, or the really hairy bugs or the you know, rewriting the website, which everyone really wants to do, having someone like Do it makes a huge difference and having someone whose day job it is means that there is a reason to have this work be done which which is a big, you know, the incentive matters. Yeah,

 

Carlton Gibson  7:10  

yeah, I think particularly the ORM. Like there's a couple of major contributors there who ongoing basis if they weren't there, I think it'd be really difficult for Django to continue and we're just very fortunate that they're there and that they, because their work relies on it, they are able to give us that time

 

Will Vincent  7:26  

by name Carlton,

 

Carlton Gibson  7:27  

well, Simon charities in particular Nick Pope, you know, Tom Forbes, I don't know what his work is, but he gives a lot and you know, that the there's a group of half a dozen people who work around the ORM that without them, we'd really struggled to move forward. And but with them, we are able to do that and it's fantastic. And

 

Russell Keith-Magee  7:44  

that is true historically, as well. If you cast back a few years, it was actually Canaan, Finnish guy who was working through his PA, I think PhD, who did a huge amount of work in sort of the 1.1 to 1.4 inch kind of timeframe from it rightly and then even back before that, the reason we have Have the RM we have is almost entirely because Malcolm tredinnick who sadly isn't with us and died a few years ago, spent six months almost on his own time. He was despite a lot of time working for banks being paid very well to work with banks and then salvage salvage T is what was left of his sense of contributing to the community by going and contributing to open source projects like anime and Django and the ORM. We have is almost entirely his original design, like yes has been massively improved since but the framework the bones of what is there is all all Malcolm's work and was done in like a period of about six months after about three or four rewrites. And I think at one point, I have a recollection of a conversation with him where like he was, he had a big contract with someone didn't pay him and like because he wasn't getting paid all of a sudden Oh, Crap I'm like on, I have no savings left because I've spent a lot of money contributing my own savings to Django instead of getting the next contract and padding my wallet. So,

 

Will Vincent  9:11  

yeah, one difficult way perhaps that's a segue. You've spoken a number of topics, but one of them is talking about, I mean, pike on Australia 2015 Money, money, money was the title, talking about how to make open source sustainable. I don't want you to repeat yourself, but where are you at with your thinking on that? In 2019?

 

Russell Keith-Magee  9:31  

Um, the I don't know that I have any more answers, which is the unfortunate part part of it like there are a lot of little things that can work. I think there are still some, I think the problem we've got is that there are lots of ways that we can make a little bit of money or, and but also be clear when I'm talking about a little bit of money, I'm talking about money that is less than one full time employee. We I am able to make a little bit of money through the Things like GitHub, GitHub contributors and other forms of small scale fundraising. It is very welcome. I'm very glad very, very grateful to the people who do sponsor me. But I'm not quitting my day job anytime soon on the basis of that on the fundraising that I've currently been able to do available, and I've, I have a very high profile, a very large microphone and frequent opportunities to use it, and I still can't crack getting people to donate to make things happen. So we have lots of mechanisms of making a little bit of money, but the the large amounts of money you need to be able to hire multiple people to be able to hire three or four engineers is remarkably difficult to shake out. And the problem that I'm seeing is that we haven't worked out how to operationalize the fundraising process. The altruism is clearly not enough to make it happen. The fact that Django is valuable, is I don't think anybody who uses it or anyone who's in even the broader Python community who doesn't necessarily use Django. Very few people would say, it isn't a good thing that it exists, it isn't a good thing that Python exists, there is a huge amount of good that is being done with it. And it is good that you can get at it and it's free to get available. It doesn't cost you anything to download it Django girls can use it without having to pay a tithe to some large corporation to be able to get access to the software. But that doesn't translate into large corporations that are making huge amounts of money through using Python giving back into a format that is then that can then be operationalized and used by other by the groups that are maintaining the software that is being used. And to my mind, the key point, the key piece here is you need to find a way to express the ask in a way that businesses can put on their expense claims. I've had coverage Many conversations with people that have said, you know, I've got a corporate credit card, I can spend $1,000 a month without even raising a question on anyone's anyone's eyebrows. But I have to bet to say this was necessary for my work and I couldn't have gotten a cheaper elsewhere. And the cool thing is the couldn't get it cheaper elsewhere when the price is zero, that's a problem. So finding out what we can operationalize to to get those funds out. I think is that is the piece that we haven't worked out yet. And I'm still searching for what that answer is,

 

Carlton Gibson  12:32  

because there's things like the tide lifts subscription.

 

Unknown Speaker  12:36  

Is that what it's called?

 

Russell Keith-Magee  12:38  

Yeah, there's a couple of those around. These are all bunch of posters at the moment. The it is definitely interesting and effectively what they're selling there is the support model of you know, we will guarantee there is someone there to support your software.

 

Will Vincent  12:53  

I have because I think it prioritizes the tickets, right. That's the idea if you contribute then of the thousand open tickets on Django You could say, I really want this one done, Carlton, it's

 

Russell Keith-Magee  13:04  

Yeah, it's not quite nice, because they this, they are saying that they will, they will provide the resources to make sure that the issues that their subscribers have get resolved. And I think right.

 

Yeah, yeah, they will pay the contributor to do that.

 

The, the, there are two, what the one of the problems that exists with that is that it does work for a maintenance because capacity works reasonably well for fix the bug that's there. It doesn't work well for funding, work that neat large scale work that needs to be done. So I have actually spoken with the guys from tide lift, and they're essentially not interested in doing anything to do with B where because b weight doesn't have a user base yet.

 

Carlton Gibson  13:47  

And so can you just mention

 

Russell Keith-Magee  13:49  

I'm sorry, I just mentioned what

 

project that I've taken on and having what I now have I do less work in the Django community on a code basis. I'm still around but I don't do as much in the code base. Be Where is my attention Get Python running on all the new devices that people have on iPhones on Android tablets on Android phones, in in the web browser as a client language, and things like that provide the tools and resources to to get Python into those spaces. It is still very much early days of that project, like most of the tools are version 0.3. And even that is optimistic in some cases. But as a result, beware doesn't have users. It doesn't have people who are using beware to make money they're not being they're not the cornerstone of the company the.com that they just don't the startup that they're they're running. I'd like that to be where it ends up. But this is this is Django a year before it was publicly open source kind of space. It's there's still work to be done. There's a lot of work they'd like there's resources that need to be spent. tide lift isn't good for that model. It's only good for fixing bugs and things that people are actually using. And, ironically, almost works in the same problem almost hits when it gets to things like Django, Django He's stable. Django is out there and is working. Yes, there are bugs. But they're not that common. Like they're not immediate, they still occur and there are still things being fixed and whatnot. But compared to the rate of change of bugs that were there 510 years ago, it's a lot lower.

 

Carlton Gibson  15:17  

So you know, it's very stable, it

 

Russell Keith-Magee  15:18  

is very stable. So I suppose the theory is that you're going to pay tide lifts for this guarantee that bugs are going to get fixed. But which bugs and why and like, why am I going to buy the support contract? Yes, there are the there is absolutely a you know, the covering of covering of but making sure that it will be updated aspect that possibly will actually drive that it'll be interesting to see if Tyler does manage to sell that broader narrative of insurance against the thing that should we hope never happens. So yeah, I tried Lyft is definitely an interesting development. I have some reservations about the fact that it's a VC funded company, which does sort of affect the economics of what they're doing. Like, I need to make a large amount of money out of this in order for it to be viable, not just for open source projects to be viable. However, I will take them on on faith that they are doing what they are doing for good reasons. And we just have to shake out and see where that goes.

 

Will Vincent  16:12  

So another, I mean, cuz I think a lot about this, how to the crazy and I, since I'm newer to it, the newer the craziness of how used and how much work people are putting into Django, and then you have these large companies that we can align their self interests with the projects. And again, I'm always curious about how decisions are made, you know, because it is sort of a consortium. I mean, for example, Django rest framework, if you sponsor it, you can give a prominent place on the documentation. That seems to me like an obvious way to get, you know, probably a developer's worth of salary on the Django site to do something similar because I mean, I donate a lot of people donate, if a company said over $1,000 you rotate through a place because recruiting is a big issue for folks. Right? Like, I wonder if it has that. I'm sure that discussion has come up. Where is the To the extent you to another consensus on something like that, that seems like a very easy win to me from the outside.

 

Russell Keith-Magee  17:05  

So I can't speak to where the conversation is. Right now. I can I can speak to where it was a couple of years ago. Because I went through a period being the DSF. President. So

 

Will Vincent  17:14  

yeah, I'm sure you I'm sure you did.

 

Russell Keith-Magee  17:17  

The, the sort of there's two pieces to it. One is the the reason it's problematic is that if you're dealing with that budget, you're essentially like the money that is spent on putting your logo on the website is either a marketing or recruiting budget, which is good money if you can get it, but very fickle and very prone to changing. We see that in conference sponsorship, some years it is trivial to get conference sponsorships, you throw it out there say there's a conference and money just falls out of the sky. The next year, half the sponsors after sponsors don't don't want to show up because priorities have changed in the way they want to spend their money or revenues are tight this year because of you know, global financial crisis or whatever and all of a sudden, my Cutting budgets are lower. So right, the money is highly flexible. And he's not tied to how much the software is being used. It's how much tied to how much benefit they think they can get through being prominently placed on this on this website, how much easier it can make their recruiting task,

 

Will Vincent  18:15  

right? Well, they don't really have analytics on it, per se.

 

Russell Keith-Magee  18:17  

Yeah. And then the other side of it is literally it's that it's the the community pushback, or at least historically has been a community pushback to even putting analytics on the web page. Because of, in particularly European the European focused like the GDPR data privacy type thing. There is concern about how much data we are gathering about our users and whether that information is going to be exploited whether people have the right to use the software without being tracked and so on. I can't speak to whether that is still currently a problem I just know that there was a lot of pushback is one of the one of the very early deaths check a couple of months put together was around cracking just putting into stop bro Django start project Tracking, who really like putting in as an opt out, we are going to we want to be able to log that you're using this just so we know how many people are using this. We can use this for recruiting purposes or fundraising purposes. And there was a huge pushback against that as a concept.

 

Carlton Gibson  19:17  

Right. And the same with homebrew, the homebrew package manager for Mac OS that had the same problem they got. I don't know if they put it in in the end, or they didn't put it in. But I remember there being a really big hoo ha, when there was a discussion about putting it Yeah, it's it's difficult because it's it's this this trade off between needing to justify your existence and needing to say to companies, hey, we're worth your money. And then this whole open source free software thing where it's like, No, we don't want to try to use it for you know, these are all good reasons to like,

 

Will Vincent  19:45  

practice users, right? I mean, Carlton, you must maybe we can ask Tom when, when he comes on. I mean, it's, I imagine it's a sizable amount of funding for DRF.

 

Russell Keith-Magee  19:53  

Yeah, I will say that DRF is probably the one success story that has it has gone extraordinarily well for them. And, you know, pro pro mad props to Tom for everything that he's been able to do around that space. That Yeah, he took a project still on an

 

Carlton Gibson  20:06  

ongoing basis needing to re re find sponsors and redo it. And, you know, like, if you read the monthly reports that he puts out, he's very open on the funding situation for encode. And it's not a done deal. It's not like he's got sustainable forever. It's like sustainable right now but need to draw in more money, but he's doing amazing work.

 

Will Vincent  20:25  

Yeah, well, maybe it's a conversation at Django con. I'm happy to be a bull in a china shop on this because I have no past scars. But it seems I would like Django. I would like Carlton and Maurice and others to get paid Andrew for the async work and it's such a hassle for these talented people at free or a discount to do it. And I don't think the community realizes the problem, right, cuz it's not their problem. And if there are these solutions out there,

 

Russell Keith-Magee  20:52  

yeah, and it's part of part of the like, the dilemma here is that if open source is working well, magic sauce Twin falls from the sky that everyone can use. Never have to think about how it's been how it's been how that sausage gets made. And yet, yeah, the it gets built because Andrew Godwin is effectively taking a huge pay cut to contribute some of his own time to work on this stuff. Now, I don't think necessarily that open source contributors should be making millions of dollars a year, but they certainly shouldn't have to be making a serious life decision about Should I or should I be in a position where I give up having a comfortable lifestyle? So that large corporation with billions of dollars in the bank, I can make a little bit more money off of my efforts and that that's the part that really great smoky is?

 

Will Vincent  21:41  

Yeah, well, we just this will come out in probably a couple weeks from now that we just released last week the interview with Andrew, which a lot of people listened to and we had hoped to have be able to put a link into the funding around that and and just the machinations of that it's not available. So yeah, I think it's I think it's important for people to highlight to the community, because these are real issues and, and some other front, you know, I'm always interested in how other frameworks do these things. I mean, for example Laravel, PHP is a one man shop, and he's very open about. He sells, there's a, I think it's an e commerce option for like $99. So consultants can use it. And you just download that and you have boom, a SaaS product you can sell. He also has hosting. So there's a lot of I try to find inspiration in other areas for how they do things, you know, view links to its view mastery educational content, where they give 510 percent or something of the sales of the educational product, to back to view. So yeah, I try to put my thinking cap on. I know other Django content creators. I've had this discussion with them. I mean, I would love Django to have a page of current educational resources and they get an affiliate fee. But I know that has been discussed to death and the community doesn't want to pick favorites is the Django view on that. Yeah. And that has been historically a push

 

Russell Keith-Magee  22:59  

the one Though the lateral Laravel and the PHP WordPress is another example of does it as well, instead of there's two levels of which these things operate. Like we talked before about the fundraising coming from marketing and and hiring, recruiting budgets. The real goal is to get into someone's operational budget. You know, AWS is never going to not get paid. Because you don't pay them, they turn off your website, their bill gets paid every month on time. That is the budget you want to be in on. Now, in the case of Laravel they've got here is a product we can sell, that you can use, it is cheap enough that anyone can get access to it, but it's enough to make sure we can fund the rest of the development that's there. WordPress then takes it sort of a step further in generating the marketplace of saying, you know, this is where you can get your plugins. This is the place where you get all your stuff. And as a result of that, there is now you know, there were just as much as there are this is how to build your WordPress website. There are training courses about this is how to build your Company building WordPress plugins because there is there is an expectation in the community that money will be part of the process. And there is a mechanism by which that money can change hands.

 

Will Vincent  24:11  

And that money can be expensed to the client to

 

Yeah, yeah because maybe when we had Tom Dyson on with wagtail that would be a context where it'd be easier to Yeah, cuz my friends are just like, nine $9 whatever expensive to the client and it saves them thousand dollars of time. But Django is a little more custom and advanced typically and how it's used

 

Russell Keith-Magee  24:31  

yet, or at least the the core of Django is and they're the like the there are two places where I can see this potentially you could potentially get into the end of the chain here. One is not saying put a paywall in front of paper or pie but at least put the ability such that you can charge and shut in front of pi so if I do want to release my package on poppy I still be open source but if you want to pip install it, you have to you know swipe the credit card and money goes through the till that radically changes the dynamics of pie. And I completely grant that by, you know, pie pie Pro is a mechanism. That is that is the operational point at which you get into someone's budget. The second one is one that I, I would love to be able to get in front of someone to propose this. And I'm hoping to be able to have some conversations at PARC on this coming weekend for me, and I believe, you know, others around the conferences around the place is to actually get to the AWS and the Googles and Google clouds and the people and say, okay, you know, all this software that you're, you know, you're putting up the platform. You are in some cases actually operationalizing open source software, in the case of stuff like AWS, can you like put a check if you are selling Microsoft, if you sell a Microsoft license, etc, to you buy a Microsoft license at a you know, at your pro rata rate of a Microsoft license. Can Can you put a checkbox in there that says that I'm using the open source license charge are an extra half percent of the of the money that's going through there and then funnel that into open source foundations. Because that is a trivial box for any engineer to check, it is a bill that you can guarantee will get paid every month. And that money can then funnel into the community. Actually convincing the Microsoft's in the eye of the Amazons and the Googles of the world to do that. AI is a much harder sell. But I would love to see that kind of program in place. Because that is the operational that is where the money is that is where the money is changing hands at volume. And if we can, if we can funnel even the smallest portion of that, that would pay for all of the Django development we ever needed. It would pay for all the maintenance of all the open source tooling that we ever needed.

 

Will Vincent  26:43  

And it's not just Django. I mean, this podcast is about Django, but it's not just Django. It's every little project out there. You know, it's all third party apps in the Django ecosystem. It's all the packages on pi pi in the Python ecosystem, and then the same for the JavaScript world. And absolutely, no, absolutely none of it's fun. Well, and I love that the engineering mindset to appeal to people's better nature, because perhaps because I have an MBA, you know, fear works better, unfortunately. Right? Like fear being like, hey, maybe Django won't be around, hey, maybe, you know, and finding a way to do it and not a blackmail kind of way. But that is the reality, right? I mean, and, you know, for if Andrew Godwin isn't able to be paid, even at this massive discount, async Not gonna happen in 3.0. Probably, yeah. You know, these are these Stark terms. And I, but, you know, anyway, so I love that we're all thinking positive, but there are real costs for me before. That's why I mean, actually, maybe you could talk about I know, you were actively involved. We had Tim Graham on the Django fellows kind of why that came about, and then how, right because it was, what, two, two plus years between releases and then part of Tim's work was to standardize that to the schedule we have now right, I believe he played a big role in that.

 

Russell Keith-Magee  27:53  

I played a big role in getting the the

 

fellowship program going that was like one of the one of the last hurrah says As I walked out the door of being DSF President, I think we did have a fairly regular release cadence. It was just it was a it was a much slower release cadence. And and

 

Will Vincent  28:09  

I think Tim said a year's

 

Russell Keith-Magee  28:10  

time. Yeah, it was we did we did go like 18 months or two years at one point. Yeah. But it was it was kind of more of a realizing that we were having this slow increase in the number of tickets that were being opened, and they're not even really looked at and they were there were patches that were being contributed and not reviewed. And they're like the the DSF itself is an interesting legal structure. So it's a 501 c three, which is a US not for profit Foundation. The US tax office doesn't consider software development to be a charitable activity, which is a problem when you're a software based foundation. So the DSM has a number of things that DSF can't do. And one of them is we can't hire someone to write software. So I should say The DSF can't hire someone to write software. If you look at the terms of the which Carlton and Tim and Marius are employed, they are there as community managers. The community management process inevitably involves some writing and software, but it is they are the managing the ticket process, making sure the grease the wheels agrees that everybody's contributions are actually happening. The DSF actively paying for Andrew to work on something gets into very, very weird, very weird territory. And I won't profess to speak to where that that like where that discussion currently is or anything like that in terms of the data set, but I am aware that those those issues exist even to the tune of like there's been some recent discussions about paying members of the DSF board for the roles they're doing like you know, the person doing the accounting, which absolutely has to be done right and has to be done on time, but also gets very weird if you pay them because of the way the 500 See three operates. So

 

Will Vincent  30:03  

yeah, anyway, that's that's getting deep into the weeds. Now that's interesting context because I, I'm, I didn't I didn't know that I just asked Andrew and he vaguely referred to issues. Well, so perhaps the transition so you're wearing a Django con sweatshirt that people can't see. But Django cons I've heard stories like pink.

 

Carlton Gibson  30:23  

So pink it comes over the audio maybe

 

Will Vincent  30:25  

when did you you're at the first Django con writes I've heard stories of you, you know giving multiple talks in the early days when you couldn't get enough speakers and I guess how have you? Have you seen Django cons advance over time to where the San Diego ones coming up in the US this fall?

 

Russell Keith-Magee  30:40  

Yeah. Well, we think there's there's another one before then there is Django con happening in just two days. Right. So I have been to every single Django con, except two. So I missed the very, very first Django con Europe in Prague. I missed 20 I was like 2013 in Zurich. But I've been to every Django con us. I've been to every Django con Australia, most of them because I was organizing them. And I've been all by to have the Django con Europe's.

 

Will Vincent  31:15  

So that's quite a that's quite a commitment.

 

Russell Keith-Magee  31:18  

Yeah. And I actually I tie that record with Andrew Andrew has been to all the US and all the Europe is to pike on Australia. So we're we're down to monkey knife fight for lesbian standing on who's

 

Will Vincent  31:30  

tweeting about just landing in Sydney. So you guys will tie this coming

 

Russell Keith-Magee  31:33  

on? Yep. Yeah, we're staying tied. It's whoever whoever drops out first.

 

So yeah, it is it's been it's been a ride it is they've they have changed a lot over time. Like the very, very first Django con us 2008 was essentially Django 1.0 was about to happen. Someone went to Jacob and Adrian said, Hey, how about we have a conference? And they said, Well, yes, sure. As long As you organize it, they managed to arrange with Google to for Google at the Mountain View campus to provide a space for two days. And they did all the AV recording and whatnot. And we called in a bunch of favors with friends and whatnot. We got Cal Henderson, who was the well was the front of the founders. flickr is now one of the founders of slack, who did one of the opening keynotes, which is still to this day, one of my favorite keynotes of all time well worth going back and watching.

 

him it was it was

 

also set an interesting theme that went round ran for a couple years. So the talk is called why I hate Django. And it was basically Cal Henderson as a person who builds a website was responsible for a website that was several hundreds of orders of magnitude larger scale than anything Django was operating with. Talking about why Django wouldn't scale at that level. And they were, it was this combination of, he's a very engaging speaker who had the entire flicker as his, you know, his his slide deck image catalog. I'm using amusing reasons I can't we couldn't possibly use Django because it doesn't have. It doesn't have a mascot, preferably a mascot with magical powers. Which is where the Django

 

Will Vincent  33:11  

Django ponies right

 

Russell Keith-Magee  33:13  

after that come after that that comment. And then so it sounds great. What's the problem? The problems is that it doesn't do multiple database support multiple database READ WRITE support is absolutely essential if you've got large traffic because you have to be on a shard your reads across multiple sources. At the time it did. One by one we've actually been hitting off of most of his his criticisms, I think about went back and ordered them at one point and we'd like we only Miss two or three of them and they'll fail each case, things that only flicker needed or worth marginal utility. So yeah, that was that was also also set the time because for many pythons after that, also many, many Django cons after that. We had a habit of inviting someone to speak at Django con as a keynote from a different language community to tell us what we were doing wrong. So you have someone from you know the small talk community come and talk about why small talk is better you have someone come and talk from the, you know, the xop community come and talk about why Cyprus, why soap is better than than Ruby. Interestingly, we never, we never managed to get David Hanson or anyone from the Ruby community that I can remember.

 

Will Vincent  34:23  

Well, I just emailed him actually blind emailed him yesterday to say, hey, you should come on our podcasts and he's on every other podcast. Yeah. And also David Lord about flask. So I'm glad I didn't know this was a thing, but I'm glad it is. Because I think ultimately, you know, 95 it's like, you know, our DNA with chimpanzees like 98% is the same. And then the differences are actually really helpful for both communities to discuss like flask Andrew was talking about, in flask, they're tied to whiskey. So they're gonna have a it's interesting to see how they'll adapt to an async world for example. Yeah,

 

Russell Keith-Magee  34:52  

yeah. And yeah, that that she had done it and I think he's absolutely a thing like ryles implementation of cross site scripting. CSRF handling is almost no more the language changes. And squinting is essentially the same approach the same implementation, when we have had security reports against Django is CSRF handling. You send an email to the rails guy to say, hey, by the way, you might want to just check to see if you're affected by this as well, because chances are you are. And we've had a couple of those go back and forth of they find a bug and tell us we find a bug until then. And yeah, it turns out, we're both affected by the same bug. And we do almost parallel security releases around the same problem.

 

Will Vincent  35:33  

Right? Well, I think that's because beginners see it as a competition and then people working on it, see them as complimentary tools. So I think that's an important distinction to make for people because I mean, I'm asked all that as an educator, beginners all the time, rails flask, this and that. And, you know, I, I want to say it doesn't matter, but I want to give advice to people, which is usually just pick one. Django is a great choice, but just pick one and get into it. And once you've learned one, you'll see the similar Between all the others, you'll be able to bounce around as needed.

 

Russell Keith-Magee  36:02  

Yeah, as I think is simultaneously The most important thing, and the least important thing, it is the most important, because it will literally be the thing you work on every day. So yeah, you pick a community you like, and this documentation is good. And it seems to be healthy and progressing, because you don't have to replace your code in two years time. But once you've met that basic requirement, it honestly doesn't matter which one you pick, as long as you are comfortable with your choice. Because Ruby and Python, yeah, okay. There are significant differences. But the things that have said that there are more things that are similar than things that are different.

 

Will Vincent  36:33  

Mm hmm, absolutely.

 

What else? There's a lot of things we want to cover. So I'll I'll jump to So actually, one thing that's I wanted to talk to you about, I think this is the first time I emailed you out of the blue and you responded about your talk on authentication, red blue user, because this is back when I was wrapping my head two years ago, around the multiple user models in Django, and I remember, yeah, like why would you need a custom user model and this is a great talk well link to it but you're giving the example of not everyone's name fits a first and last name paradigm, especially yours. And I know you and Andrew Pinkham have worked on Django improved user project, right, which I've talked with him about. So maybe to tee that up, perhaps you could talk about. So why do this Django improve user project? What's, how do you handle? I think the interesting question is, how do you deal with a legacy thing like the user model that's built into Django yet there are these limitations that we want to make it forward facing to, you know, match modern patterns?

 

Russell Keith-Magee  37:29  

Yeah, sure. So the work I did with Django improve user is effectively the public facing contribution of something that's very difficult to add into Django is core itself. Django 1.0. Did what every website does it, it sets up an internal user model that is first name, last name, and a password. And it turns out that is a serious ad patent. And it is one that it is normally Normally ended up hitting people, not because of that anti pattern, but because people want to login with an email address. And if you've got a username, first name, last name and username is capped at 16 characters or something like that you can't put an email address in it. And so people say, oh, but can't you just increase the length of that to 40 characters, not copy 40 characters, how many characters we have to make it to be able to allow it to accept an email address, and so on and so on. But even once you get past that problem, you then end up with Okay, well, but then you've got first name and last name. And not everybody has what you could reasonably call a first name and last name, you go to things like a lot of Chinese names. For example, which name is the first name and which one is the last name when you say marks it on? his given name is Dom which is the name at the end of the list. But if he puts Mao like he put it in the order in which is written, you're going to get it in the opposite order to which it is useful if you were thinking the last time is the one As the family name if you go to the third secretary general of the, of the United Nations, his name was taught. That was his entire night, he only has one name, there is no first name, last name, his name is taught. So was he, what does he put in last night? If you've got a lot of set, a lot of Islamic people will have a sort of a pre given name of Muhammad to as a as an indication of piety. That is their first name, but it's not the name you'd ever call them. So there are a bunch of these problems that exist when you say first name and last name that aren't immediately obvious. And so I wanted to get in there and say, Okay, yeah, we are boasting that we have an existing user model. We need to move off of that user Django having it's it's a history a history of essentially not breaking anyone's code unless we absolutely have to means we need to find a way of migrating out of that. So that means we need to find a way to help allow users to opt into a new user model such that they can then say, Okay, now I on this website, I'm building this new website I'm building I'm going to use a better pattern for that. The one of the better patterns that exists is sort of short name, what name? Do you want me to use the casual name? What do you want to use me to refer to you as if I if I say if I write a letter to you, or do I say deal? Will? What? What's the will bit? That's that name, and then full name? How do you want me to address you when I send you the legal filings? You know, I want William matru, insert whatever you know the full full name that's there. Those of you then capturing the role that you want the name to fill, rather than some preconceived notion of there's always a first name and a last name. The problem is that like my original goal was to see if we could actually get that as a country module in Django itself, because there are like that. short name full name is a common enough pattern that at least you should people shouldn't have to reinvent the wheel over and over again, but Turns out this there are some problems with that around testing. And the biggest problem around the swappable model thing that Django Django user models do or does is around migrations, because if you change the user model like Django is migrations, don't try to trace the state of the settings file. And you can change your user model by changing a setting. So you need to then have an audit trail for some of the settings in your configuration file and how to choose from that that is also the technical reason why it wasn't done. So the easiest way to manage that from from a practical practicality perspective is let's have a completely standalone project that does it the right way and is tested and does all the things it needs to do and has all the integrations with all the things that needs to be integrated with and is being tested against recent versions of Django and so on and so on. But let's keep it external, and and deal with it

 

Will Vincent  41:58  

that way. Well, I remember Talking to talking tweeting with Tom Christie about this very issue when I was first wrap my head around it. And he was saying, Well, why can't we just default to custom user model? Because that solves a lot of problems for people. And he suggested, potentially, you could do it with the start project command. Now, this adds complexity but saying, you know, there's like advanced version, where from the beginning, maybe, and then you could sort of stuff in all these other things that are legacy issues without breaking. But I know it's a it's a tricky thing. And I love the beauty of just not having these issues on Django. But there are these general legacy questions. And there's a number of things that would be nice to be addressed in a non breaking way.

 

Carlton Gibson  42:38  

Yeah, no, I think this issue that Sorry, can start the start project template doesn't give you a custom user and that yet the doc say you should have one it's like, but I've started project I've started code. I've created some models, and then I've come to look and read the docs in more depth. I don't know I've done the wrong thing. And by then it's too late. And

 

Russell Keith-Magee  42:58  

yeah, but it's a it's one of those. It's an So it's a complexity, you only know what to know exists when it's too late to know it exists. And so then you've got to start your project again, which is kind of a bad user

 

Will Vincent  43:09  

experience. But

 

Russell Keith-Magee  43:11  

yeah, it's it's awkward. And one of these things that you have, because it is just awkward enough, and there is just enough of an easy enough way to work around it, that the no one sat down and spent the, you know, the original country, both us getting that that land, it was like a three, four months worth of all of my open source contribution time just to get that landed, let alone all the other problems that come with, you know, making sure there's a there's a, an onboarding path that makes it easy to adopt the What do what should be the right thing when you come on board and things like that.

 

Will Vincent  43:42  

Um, speaking of onboarding, I'd love to Okay, have you talked about your Python speech from this year that I was able to sit in the audience for where you spoke about the challenges around Python itself around installing if you do any beginners and then packaging, I wonder if you could give, how would you sum up that talk because I We're going to link to it. It's amazing talk, but it talks on some of these existential crises of potential issues around. How does Python die? And this might be one of the ways. Yeah. So

 

Russell Keith-Magee  44:09  

it's it was we bought, and there was sort of saying standing up and being Cassandra talking about how how the world was all the Python world is going to die, which actually, ultimately wasn't really the point of the talk. The point is that it can die if we don't pay attention to what is going on. Yeah, I heard a really interesting comment today, someone pointed out that I think was, was pushing a talk from Lucas longer from his keynote at Poland inium, which was an awesome talk as well. mentioning that the rise of the the AI and data science community coincided with a switch from Python two to Python three, and that may have been what saved Python three and Python two to Python three transition. Because we had a sudden influx of new users just as we were adopting a new code base, and Sorry, they weren't coming with the hangover legacy of the old Python two code base. Right. And it's interesting to note that a lot of the users where Python has historically had a lot of use in the web space, in system administration, whatnot, those groups are less common than they once were. Now, that doesn't mean it's the doom and gloom and the web's webs been been seated JavaScript and systems language, everyone's using gopher systems. But it is an interesting observation, if only because it means you have to look for where your next user is coming from. And there are a number of things that exist in the Python ecosystem at the moment that are not good for our next users. Now, our next use is about the example I gave in my my keynote is my son. My son started high school last year. He doesn't have a laptop like a lot of schools will have everyone's gonna have a computing device and they do all their their high school work on company computers. My son has an iPad, all of his educational experiences delivered through an iPad.

 

Will Vincent  46:00  

Yeah, they're gonna lead Python.

 

Russell Keith-Magee  46:02  

Yeah. Why would Why is he going to learn Python, you can't like you can run Python in a, you know, simulated shell or something on a website, but you can't build an iPad app in Python. So why is he going to learn Python? Now, that doesn't mean it is Python is still a good language to teach people to programming. But if you've if you're faced with a teacher who's looking to optimize their education outcomes, the way they're going to do that is by exciting the kids to get a do something practical with their device, the actual device they've got in their hand. If Python can't do that, we have a problem. Similarly, the How do you even outside of like, actually, on a desktop machine, I write over, you know, we're gonna get a kid invited, interested in writing writing code. We want to, they want to write a game. They want to give their game to their friend, point me at the page of instructions where I can teach a 15 year old who has just written their first game, how to package they're going to give it to their friend, which doesn't involve their friend also reading the same page of instructions about how to set up the puppet environment, install these dependencies and everything else they're going to go through it. That's a problem like that, that user experience. One of the big areas where Django has an older with Django and Python have advantages is in this space of people who are not computer science. geeks, they are people who are using computers as tools to get stuff done. And our tool chains don't well support that use case, you need to have a very deep understanding of environments before sandboxing and virtual environments makes any sense whatsoever. Once you understand it, it makes a reasonable degree of sense. But getting to that point is huge. And packaging that code to give it to someone else is a non trivial activity. That is there are no standardized answers for that or not particularly good standardized answers for that at the moment. Even you know just the the perpetual bane of Django girls workshops. You get a bunch of people into a room you teach them how to use Django. You teach them how to To build a website, which works fine on their local machine, and then you tell them we want to deploy it on any environment be at Heroku be at Python anywhere, whatever by Python anywhere is a lot better than what it used to be when it was Heroku instructions. But deploying a Django website is not a one button click thing it is you've got to get multiple configuration files and pod set up in the right place and configurations going in the right direction. And that is a lot more than most people are willing to put up with to just get a website up and running.

 

Will Vincent  48:29  

Well, you don't have to but you should I mean, I say that so my Django for beginners book we handful of steps. But I mean, we don't we don't do all those things. So you get it up. It's not particularly secure. And but then yeah, Django for professionals. My new book, I have multiple chapters on just like the bare, you know, at 20 minimum, and it's, yeah, it's a lot of steps. And I think the challenge to for teaching is that you can people can use something like Django cookie cutter, which is fantastic. And does a lot of these things, but you're not going to understand If you just drop that into your tool chain, you kind of have to learn how to build it up yourself, which is, at least in that book, I spent a lot of time building up how to do that. But yeah, your point is directly accurate. I mean, you know, like rails, Roku was built for rails, they did have one click Deploy. And that was sort of the rails was rails tutorial. I think. I model a lot of things on the Django for beginners books. And you can we can get pretty close to that actually. So like the first chapter, we deploy hello world, but it is there are a couple extra steps. I mean, I personally excited with containers, the deployments are, can be a lot easier. I mean, it is sort of like trusting that the image and everything works, but you know, for Django, girls, I mean, I think about this with my Django x starter project, there is a degree of Should I add a Docker part where it's like, just trust that this works, and you know, fixing it will be a lot more work, but you can get pretty close to a one click Deploy, and then at least give people the confidence that it's, you know, is I find the moment that someone can not just deploy themselves, but I They show it to someone else. That's when it really clicks. And oh, yeah, we can add Google Analytics. And you can prove and you can see that they actually did it for beginners. You know, that's sort of like the face of the New York Times website. You know, it's like these like, booms in people's head around what you can do.

 

Russell Keith-Magee  50:15  

Yeah, no, I agree. Like you can page like the the, the the deployment experience of PHP is copy a file with FTP, and your website is up. So you know, that is that is what, that's what we're competing against in terms of degrees of similar agreed degrees of simplicity. I agree like that the Docker experience, other than the fact you have to sort of download the universe before it works for the first time. There's

 

Will Vincent  50:39  

no lines. So

 

Russell Keith-Magee  50:40  

the containerized model is definitely very interesting. And seeing that sort of evolve into more tutorials is definitely something is interesting. But then you're also writing that having a cookie cutter that that spools out thousands of lines of code, which is all boilerplate and you're trying to work out what that boilerplate does

 

Had I tried for work purposes I had.

 

I had to play around with Falcon, which is a web framework that's asynchronous by default, that was delightfully refreshing getting going. Like it is literally three lines of code and you have a web server type territory. Yeah. Now there's a lot of stuff like this is the classic flask or Django thing, there is a lot of stuff you don't get. But the simple stuff works so quickly, that it's compelling. And that zero to kick ass time that that time it takes to go from I know nothing about this to doing something useful that I can see as applicable to my personal situation. And I understand what it was that I did, it wasn't just me copying and pasting this hundred lines of code and hoping I understood that it did what I meant it to do. That's a powerful thing. And and, and often overlooked.

 

Will Vincent  51:49  

Yeah, well, I think you I mean that and that's possible with Django. I mean, if you google like Django, hello world, I believe I have the top hit for that because you can really do it in just a couple lines of code. Which I think if you're an expert, you sort of, you know, go, Oh, that's not correct. It's like, well, it's enough. At the same time, I think, you know, cookie cutter, like I've learned so much studying that project. But certainly when I was starting out, I was just what is going on here. And so a long term goal for me is, I kind of laid it out in the book. And once I've my Django x project, I'm going to basically say, here's this project and if you want to know how I built it step by step the book will show you just because there are so many steps and again, you have to make some opinions as an educator or as a designer, but opinions are better than sorry, going well, it depends which is the ultimate job because the tagline of this

 

Carlton Gibson  52:40  

show Well yeah, it depends every episode but like I think it's the like mentioned with Docker can be easy one step deploys, well, yeah, I've got a one step deploy, but I've got years of putting together playbooks to make that deploy half but

 

Will Vincent  52:55  

can you share in Carlton how you use and you share it though?

 

Carlton Gibson  52:58  

Yeah, it's well more or less templates built and shareable and yeah, and you give it to clients and you, you know you, you but that that knowledge isn't something you can expect a kid picking up a Chromebook to, to have they've got to have a much smoother story than that otherwise. But you know, I look at I look at Mac apps or Windows apps, it's not a trivial process to package one of those if you build a, you know, Mac OS app with Xcode, and Okay, once you've got the final executable, but to get that executable is really quite difficult.

 

Will Vincent  53:28  

I think the answer which I find exciting is these aren't these web based containerized programming platforms like rapid like, Twitter, what is it glitch? Doing the same thing? I mean, if you're a teacher, a lot of times, yes. Do you need a way you can automate testing and students don't have to have their own laptops, they can have any computer? You know, in some ways, I wonder if that will solve some of these issues because it's all just in the cloud. The problem that there is the business model, which is it's hard to get money from students and at some point, you want to eject and go to the Real Thing sort of the challenge I think Python anywhere in Heroku and others have is people object to a certain point. Anyways, well, we're coming up on time or we've thrown a lot of questions at you. Are there any projects or things you want to highlight wrestled before we head out? Oh goodness for me on the on the throw me on the spot day like

 

Russell Keith-Magee  54:19  

I am I'm very excited to see what Andrew has decided this well, this Friday, he's talking about it about about async and sort of where that's going. That is, for me one of the big, unanswered questions of how Jango moves to the next level is Django Django is what it is that it is great at what it is and it will set it you know, does more than enough for Morpher for plenty of people. But you know, async is a thing it exists and there are there are things you can do or do more of increasing the life the lifespan of Django if if that's better supported the other. The other end is like that and this is plays a little bit into wiiware plays a little bit into things like wagtail Is the front end story like I I very badly would like to see a much, much less JavaScript much more Python front end story. And I don't know that I have any good answers like I can't point it anything they beat will be whereas doing is kind of part of that big picture. Seeing that, you know, we're having there is there is white tile is there and you are able to build rich widgets and rich containers and Richie Rich experiences through things like wagtail is certainly interesting. I don't but I don't think either of those projects are by themselves. The end of the story like that, I think there is. There is an opportunity here to reclaim some of what the ground that Python has seeded in the web space to JavaScript as a client, the front end through things like better use of two technologies like wasum webassembly. But that is a much longer project and one that I know is going to take eyeballs and attention and who's going to spend the time to build the thing. And then open source it so that we can all use it is the

 

Carlton Gibson  56:03  

Can I ask about webassembly? Like, is it like Do we have the currently the ability to for instance, scrape the DOM there because yes,

 

Russell Keith-Magee  56:11  

absolutely. So like if you if you go to pi iodide so well Zilla has been playing with this with PI died. You can if you go to the PI to the demonstration page that is effectively a Jupiter notebook running entirely in your browser. So it's you know, full full c Python, full NumPy, full Sai pi, full matplotlib all compiled to run in your browser. So it's not there's not a Jupiter kernel running that your web browser is talking to like the normal sort of Jupiter model. It is all running in the browser as as well as web assembly. And it is literally just the C Python sources and the sci fi sources and the NumPy sources compiled into webassembly. The downside is that it's a little bit big like it's about 12 megabyte i think is like the full the full payload download, which is not which is quite a lot on a page load. It's not It's fine. If you're downloading A Jupiter notebook that you're going to use once I like load once and then use persistently. It's not if you want your homepage of your website to be that.

 

Carlton Gibson  57:08  

Yeah, I was more I was thinking like, a sort of jQuery but for but using Python, you know, so you actually scripting the DOM and doing so you instead of having an HTML file a CSS file in the JavaScript file, you'd have a HTML file a CSS file and a Python file.

 

Russell Keith-Magee  57:23  

Yes, it is, it is compiled highly in the realms of the possible and that is that is kind of what I have been playing around with Batavia. Batavia is not doing with web assembly, although I have some thoughts about how that might progress. It is entirely possible you can from within wisdom, access the DOM, and there are multiple channels by which you can get to that there are some garbage collection issues, you kind of need to dance around a little bit, but you can you can certainly do it. And I have had at one point in the not too distant past, a demonstrator of like one of the talks that I gave at pike on Australia. years ago, I think, was was a demo where in the space of 17 minutes took one Python file one private application, deployed it as a native Mac App, a native Windows app, a native GTK Linux app, a native iOS app, native Android app, and as a single page web app, and it was it was only a Fahrenheit to Celsius converter. But in every one of those steps, there was no nothing other than the 40 lines of Python, just deployed in different ways. And it would work natively on all those platforms. So it can be done.

 

Carlton Gibson  58:24  

Yeah. And that would be awesome. Because that's kind of the missing thing I can do. I can use Python for analyzing data frames, I can use it for scripting system administration tasks, I can use it for building website. But if I could somehow build a GUI on front of that for a native app, that would be

 

Russell Keith-Magee  58:38  

brilliant. So it's part of the reason why like What are these? To my mind, part of the reason why notice becomes such a big thing is that JavaScript is the language it's in the client. There are occasions where you have logic that needs to exist in the client and needs to exist in the server. You know, if you've got like a credit card validation algorithm or something it needs to run client side and server side if I have to write it in JavaScript in the client side, then why should not write it? Why Why should I just use the same implementation? Why should I have to re implement it on the back end. But if we can push it the other way, that's incredibly powerful, right?

 

Will Vincent  59:11  

Especially as JavaScript is becoming more pythonic. Over time anyways. Even if it's syntax again,

 

Russell Keith-Magee  59:16  

again, coming yet again, coming back to the fact that you know, all the ideas, there's only only a half a dozen ideas, and we will just keep stealing off each other as time goes by.

 

Will Vincent  59:26  

Yeah, well, good artists borrow great artists steal. Right. Exactly. Exactly. Great. Well, thank you so much for coming on, and sharing your story with the community. And we'll have links to everything so people can check out your work. If people want to get in touch what's the best way? I mean, obviously, give you a fun, beware. We'll get your attention. But how else can people get in touch?

 

Russell Keith-Magee  59:46  

So yeah, I'm free boys. 3742 on almost every platform, so on on Twitter, on GitHub, all of those. You can get me through the beware projects there. beware.org is sort of the hub of all the work that I'm doing, you know, opensource at the moment around getting Python running on all these platforms, you can and in terms of funding that work, you know, I am always on the lookout for people who can either help me pay for that development work, contribute to that development work, any ideas about how to commercialize that development work? I am, I still haven't completely given up hope of finding some way of making beware a commercially viable project. I just need to kind of find the person to be the business end of that. And because I can, I can talk business, but I'm not good at it. So yeah, but yeah, either way, so you can in the meantime, you can sponsor me through the beware project, b way.org. Or you can sponsor me through GitHub sponsors. I was on that on that program as well.

 

Or, Yeah, super.

 

Will Vincent  1:00:46  

Great. Well, thank you so much for coming on. My pleasure. All right. Okay, bye.