← Back to Show Notes

Transcript: Django 4.0

Hello, welcome to another episode of the Django Chat podcast. We are back from our summer

break and in this episode we'll be talking about Django 4.0. I'm Will Vincent, joined

as ever by Carlton Gibson. Hello, Carlton.

Hello, Will. How are you? Good summer. Good summer.

Yes, good summer. A little bit of a break. We're back. We're going to be back to our

bi-weekly schedule lots of guests lined up so we didn't tell people we were taking a break but we

took a little break this summer and yeah we're both excited to have new things going so this

episode 4.0 we're going to talk about it's a bunch of jango news talk about our summers so maybe just

just on the podcast so yeah bi-weekly going forward i looked at the stats we we started this

february 1st 20 2019 after a couple false starts and there's been over 300 000 downloads

which is a lot or a little depending how you look at it um currently episode 98

and it reaches a couple thousand people a week so very happy with that um no sponsors but you

know at some point if somebody wants to sponsor it or if we get large enough we'll do that but

that's not really why we're doing this so just put that in there yeah no you know if you want

of chug money out of stew but as will says it's not really the point is it how anyway yeah yeah

it's really just our it's our time and the hosting costs which are minimal and and we get a lot out

of it um so what's going on django so uh django con us is coming up in end of october signups are

free it is online definitely we have a link do that if you haven't already um django 4.0 just

this morning right the the feature freeze or 4.0 where is well it's just it was your feature freeze

yeah that was last week so last week was the feature freeze and then and that's that's just

like that's essentially mental that's the hardest bit of the year it's like because you've got all

these things that you'd like to get in like all these things you know this massive long back list

of oh wouldn't it be good if we didn't have it and there's only so much time and so much energy

um and we had a really good push to get that in and then maris bless him he's release manager this

time so um he's he takes all the slack he takes all the all the flack and i i just try and pick

up what i can around it and then you know next time it will be my turn and he'll be laughing and

i'll be sweating it but he might he actually get that out late on i think last monday night and

then yeah and then that's it and then now you go out download um run your test suite against

django 4.0 a1 so that's the alpha one and then there's five or six weeks for the alpha period

and that's when you know we've really got to find the the first wave of um issues and tell us about

those and then we can fix those for the beta and hopefully there's a few less things in the beta

but again we need testing all the way through and the more testing we get during this pre-release

phase the the better because you know then we get to 4.0 final in december and you know there'll

always be regressions but you know hopefully not no major show stoppers the day after the final

release right well this year there's there's two releases because the nine month schedule sort of

works like that so it feels like i mean on my end just updating the books and stuff it feels like

more but it's really just we're in this nine month well schedule more or less indefinitely until

something arises yeah so it's eight so it's it's eight months so that means that there's three

releases every 24 months yeah yeah it's eight months so it goes um i know it goes august april

december august april december okay yeah um yeah and so yeah in 2021 there's april we had and then

there'll be december as well yeah that math checks out that's the kind of math problem i've been

giving my my oldest daughter and um i think she's better at it than i am yeah no i mean you know all

those lot all those logic ones like you know john's taller than sally sally's taller than tim

who's you know who's taller they're just like yeah they got my wife's brain on that so lucky

no but it's children isn't it they've got these the kind of the capacity to employ reason that

you've sort of lost as a parent right yeah um so we'll talk about 4.0 and what's involved in there

but um yeah summer how was your summer we haven't really spoken to be honest i needed it there's

like it's been crazy that it's not just um working it's this whole pandemic ongoing so

it's still 2020 as far as my brain is concerned um and I was struggling I was like not struggling

but just the thing I've realized like for years and years I've always had loads of balls up in

here but it's been juggling away and juggling away and I've just found myself not able to make

progress unless I sort of really focus on one thing and just focus on one thing and like okay

yeah I can get that done and then I can focus on the other and that's you know if you read

productivity textbooks like productivity 101 is focus on one project put your energy on that get

that finish move on so okay so it's not rocket science but like it's just a for me it's kind of

like a marker of the low level stress that that just is with this whole yeah environment background

of anxiety yeah it's that if i if i'm really if i'm not really conscious about that i've been

struggling so you know to make progress on um you know 4.0 to get through the feature freeze that

was like okay i've got to really head down and focus on that and you know um and then um you

know looking at the open source projects that i maintain so um after the 4.0 free feature freeze

last week i was able to spend time getting um compatibility with 4.0 provisional compatibility

because you know there might be issues that get revealed but if if you know for instance if rest

framework won't even test against 4.0 then it's very hard to to for people to test with rest

framework so okay let's get 4.0 um let's get jet rest framework 4.0 compatible at least on the the

main development branch there and um i was able to work on that and then i put out a release for

django filter um which which is now 4.0 compatible and a release for django app conf which is now

you know there were with app conf it's crazy because there haven't been any code changes for

years but every time the the trove classifiers on pi pi get updated the ones where it says you know

This is compatible with the Django framework.

I get open tickets going, this isn't compatible.

I'm like, did you try testing it?

Because it really is.

There's no code changes.

The test will pass.

But okay, we'll do a new release with the Trove classifiers.

And so anyway, AppConf has now got official Trove classifiers for 3.2 and 4.0, which it was missing.

Looked at Django Compressor.

That's essentially compatible.

there's a few test glitches in a ginger 2 version 3 that's i can't get my head around ginger 2 3

um the issue but other than that it's it will run you know if you're using compressor that will run

so um i saw david smith he put out um crispy forms with 4.0 compatibility um so you know if you're

using all these big packages they should already be 4.0 compatible thereabouts there's no reason

why you can't test your code on them to find the bugs hang on but anyway the point i was making

was I had a bit of time to work on the open source stuff

and now I've got time to work on Daphne.

That's next up.

So Daphne's been waiting for an update for a while,

but I just haven't had the capacity to work on anything.

So it's very much I'm doing these things

kind of serially at the moment.

Yeah.

And yeah, I think, as I say,

that need to do things seriously

has just been a marker of stress,

a marker of, you know, yeah, stress.

It's no other word for it.

it's it's it's been a really difficult two years and i think acknowledging that is perfectly okay

yes how about you how was your summer how was yours i agree well so um

how honest do i want to be uh not a lot of work stuff um the goal was to have a couple hours a

day just all the maintenance things that i need to do um so we still have the django news newsletter

that jeff triplett and i do that's still going weekly that's not that hard that's that's a fun

project because it's not a huge amount of time it takes two hours a week um if i'm crushed or

jeff is crushed we can alternate um that's a fun one so that's pretty easy to do yeah i've been

working a lot on the 3.2 updates for my books i and i've gotten in this pattern where sometimes

i'll have just cursory updates where i just go through the code make sure everything's fine and

And sometimes I have a buildup, as you were saying, with 4.0 of all these things I want

to change.

And for 3.2, that's been the case.

So I'm going Windows first.

I bought a Windows laptop.

I've been doing all sorts of stuff with that.

Using pip, not pipenv, adding black, just across the board, adding a lot of updates.

So it's taking a little more time.

And I was really trying to get it done before the summer, and it just didn't happen.

You know, the reality is everything still basically works.

You know, Django is quite mature.

So there's one or two small things, but it's more of a third party situation.

So I'm racing to finish those updates and then I'll do the 4.0.

Um, so that's been good.

I mean, personally, yeah, I've, I had a kid, I've had a child during lockdown and I don't

have as many children as you, but kids in the summer need, need, oh, I'm done.

I'm done.

I'm done.

Um, kids in the summer need to be entertained.

So, you know, lots of life force being expended.

Not all of it towards Django, but that's fine.

DSF, Django Software Foundation, we've still done a number of things.

We had the survey, so I helped lead that.

We partnered with JetBrains.

That's concluded, actually, so we're waiting on them to compile the results.

But we got more responses than last year, I believe.

And so that should be great.

Yeah, a bunch of just DSF.

Django con eu went off uh went well there was a whole bunch of work around that yeah so just

um i actually i had now that it's september i i'm back to the co-working space i was out before

still got to wear masks but the first week back i was um i was just like a blob like i didn't know

what to do without expecting to be interrupted every 15 minutes which has been the reality

working from home with kids in the summer um the past three months so um yeah but it still feels

nice to code still feels great to write um so those are all good things yes and looking forward

to you know switching my brain to professional things as opposed to just personal things all

the time um so yeah and i'm at you know and you and i are both you know as fortunate as it comes

I think with these things so just acknowledging that COVID's still here and it's um yeah it's not

gone away yeah I think I think that's it I mean you know I wouldn't trade I sort of joke the

summers the summers in Spain are very long the kids have 12 weeks off school which you know it's

just mental amount of time um and I joke about it being too long but I wouldn't you know am I going

to trade that for what are you why they work no I want to spend time with my kids and that's fine

and then when they go back to school then the autumn comes in and it's like okay a different

routine. That's fine. One thing I wanted to cut back to was the JetBrains survey because

that's really great. Over the summer we had the Google Summer of Code

which went really well. So we had two projects for

Django. One to add a Redis backend and

another working on the internals of the migrations

engine. So we're rendering models using

project state rather than blah blah blah. It'll speed it up. It'll be a lot

It'll be faster and there's some important steps there.

So that was a successful project.

But the rarest one directly came out of last year.

survey because we so we did the survey do you use caching what do you use okay so you know three

times as many people use redis as any other um back end and it's like well we've got three mem

cache back ends in the call why haven't we got a redis back end um and so okay we put that up as a

as a um a google summer code project and that's got done by daniel and he's done a great job um

Nick Pope really helped with the review there as well.

And so, you know, that's directly out of the survey.

So having the survey leads right into Google Summer of Code, which leads into direct improvement of Django.

And that's really great to hear, actually, because I think part of it is there's no human interactions, right?

So like you and I, there's been no conferences.

i see numbers about people who listen to the podcast but aside from a token email i don't

have a real sense of its reach or the newsletter or all these things right and so that's really

gratifying to hear yeah because the survey last year was quite a bit of time um and that's exactly

why we do it right so it's nice to know that there is that link yeah but anyway of you know

finding finding it because we you know because we don't track anything in django you know by design

So if not for the survey, we don't know in any way, you know, how the community is using it besides anecdotes, really.

Yeah, I mean, it's not the sort of thing we're going to put to limits.

That's great.

So, fine.

Anyway, just before we move on from Google Summit, I just want to say, because we had Wagtail come in under the Django org this year.

And they had three projects.

I think they'd have taken 20 projects.

There's so many, so keen, so many ideas, so many mentors available.

But they took, they had three projects that they worked on.

we'll have to get dawn on to come and talk about those but what was really nice is that wagtail

had applied to google summer of code before and they hadn't they hadn't got in but they were able

to come in under the django um sort of org and we've you know we've been in done it i think every

almost every year since google summer of code has been running um and then you know hopefully next

year wagtail can then apply on their own saying look well we did we came in under django the django

org last year and we had these three successful projects and you know now we can go on our own

and then maybe we can do the same maybe for jazz band i did mention it to janice but um i think

we've got to plan it a bit more in advance to see if we if they've got mentoring capacity and all

those things because otherwise it would just fall upon janice to um you know mentor him and he can't

do that by himself like he so it it's something that i want to try and at least have a discussion

about but it worked really well having wagtail sort of apply with django and so all in all it's

a really successful google summer of code i think so thanks again to google for putting that on again

Yeah, thank you. Yeah, that's great. Yeah. And all these things are there to be done if and there's funding available if people put the work in. So speaking of community, so I wanted to bring up again before we get to the 4.0 updates. So one of the things also I caught up a little bit on open source, there's this awesome Django repo that there was one before and then I started one years ago now, four or five years. And Jeff Triplett joined in a year or two ago, which has been great to help.

And somebody submitted a PR saying, Hey, you should reapply to put it on the official

awesome list. And during this week I had back in the office, um, in the afternoon, I was like,

okay, I'll do that again. And did that, spent a couple hours, submitted a PR.

It wasn't a perfect PR. The maintainer is, um, wrote a number of comments, um, half of which

were helpful and half of which were not helpful and so the end result is i said okay it's your

you know your football but i'm not spending time on this again which was the exact same reaction i

had a couple years ago when i tried to do it and so it really made me think about though jango and

the work that you and marius do as fellows because i understand how you can get to the point where

this person is at where you just get bombarded with prs that aren't perfect and you just rage

yell at people about it but at the end of the day it's open source and you know if you do that

people are gonna you know for me i don't care like i'm old i'm experienced whatever but if that

was a if i was a newcomer i was new to open source to you know the reality is that was hours and

hours and hours of time and throwing it off and then you just get the ball swatted back not in a

hey you need to fix these things but like you fucking stupid asshole kind of way and it's like

well that that would be really bad for a new person i think so anyways i tee that up as how

do you and marius not not be like that given given all the prs and all the things and all the years

i mean maybe it means summers where you take a little bit of a break but um i don't think jango

is like that certainly i hope jango isn't like that for newcomers yeah so first up sorry for

you experienced that because even though you're experienced and you know thick-skinned and all

the rest that's still not pleasant well i i see why he said it but it also means i'm i'm unengaging

with the project forever and it doesn't really matter but you know you have a bunch of those

micro things over time and a project will lose yeah um i mean with momentum so i mean something

that i'm really conscious of with django is that we we still have um a very male and largely white

contributor base and part of that is economic privilege but you know part of it is just

open source isn't very welcoming and so you know to be to to make sure that you're doing everything

you can to not put off potential contributors is is is to make your project more sticky is to make

it a better project is to make it more open to contribution but that's not always easier you

know a contributor comes and maybe pr is terrible perhaps and it's like this just isn't right and

how can i how can i respond in a way which is is suitable and um you just first of all you have to

be lined up and wired to give that response so you have to you have to want to give that response

if you don't want to give that response and perhaps you should you know step away from you

know triaging because that's going to be a part of it and that you know there's just no way around

that there's no i don't think there's any room anymore in open source if there ever really was

but there certainly was a culture of it but a culture of um you know just harsh responses i

don't think there's any room in open source for that anymore um and so if you're not prepared to

be opening and welcoming then you know step back um sometimes does it get too much yeah i mean

sometimes we'll get a difficult contributor and maris will say hey colton can you take this one

or i'll say to maris maris can you take this one and we're very conscious of what the other one's

doing and we we try and look after each other um and sometimes you just have to let an issue lie

but the last thing is to the last thing you do is come you know not deliberately just give the

harsh response and some you know sometimes oh that was a bit harsh it's oh okay that's a

misunderstanding of language or you know you know the tone could have been friendlier or yeah there

are some there's some cultural things sometimes um but you you just have to try to be honest and

i feel sorry yeah i feel sorry for the guys in a position where he feels he needs to respond that

way i can see how you can get to that way with a project i mean just the awesome jenga repo itself

i had a backlog of prs and i felt like i couldn't handle it and i was going to step away until i

talked about i mentioned it to jeff and he said he would come on and he was able to do stuff for a

couple months and so now i have the space again so yeah i can't imagine running you know that thing

among others solo but i think there is that awareness of of how you do it and you know but

to speaking about django and how we make it more approachable that is something you've spent a huge

amount of time and i don't know how we right now it's really just an add-on to django cons

when they happen when we can but figuring out if there's something that dsf or others can do to

make it easier to contribute to django you know because the code is relatively mature there's all

these docs stuff um i don't know the answer to that of working group but no i figure out you

know 2022 if things normalize doing something around that would be important one thing i want

to do that i've been on the list for a while is recognizing the contributors better so um

for 4.0 hoping to put a bit of time in over the autumn david smith's been taking an interest in

this as well and just drawing it together as well as we can without putting too much work into it

a list of you know the people who've contributed and trying to call out some of the contributions

and you think why does that matter like shouldn't we just get on with coding well

no because you know saying thank you that's that in itself is a good thing but also you know new

contributors that to call out their contributions to give them something objective to point to that

really helps contributors you know it's all right if you're an experienced contributor you know

I really don't need any one particular pull request to put on my CV but if I'm a new

a new contributor especially you know one who hasn't necessarily gotten all the time in the

world to donate to open source until they get recognized then having some kind of objective

recognition is important but then there's also so much sort of hidden work that goes on I did

an awesome workshop over the summer whose name totally escapes me but um it was it was about

on this very topic i'll put it in the show notes i could i really can't remember it right now

um but you know like i don't know the people who run the um international internationalization

localizationist and the translation i was thinking of that because what do they do what do they even

do like you know there's all these hidden jobs that they do and so if we can call out what they

do and say thank you then that becomes the basis of kind of like a how-to like because there's a

list of jobs that all need doing and then it also becomes a kind of um the basis of a volunteer call

for volunteers we say look there's all these jobs that need doing and they're in the hands of two

people who've been doing them for a decade and one day those people are going to need to step away or

just need a break right and can can we just can we make that into something that's more addressable

And so recognition is not only important in itself as like kind of morally the right thing to do. It's also about maintaining the sort of stability of the framework as we go forward. As the people who've been doing all this invisible work need a break or need to step away or, you know, move on to other things. Can we replace them? Do we know what they're doing? Can we replace them? Have we got easy addressable jobs?

so a new volunteer comes along says hey i'd like to help with the localization what can i do and

it's like well to be honest short of going you know the contributor guide is there and you can

go and trawl and that's but that's quite a hard thing to get we it's quite a hard thing to get

going with what we don't have is like these clear identified jobs that a new contributor can take on

and so part of the recognition effort is is about identifying those jobs and making them

addressable to new contributors yeah and it's just extra work for the people already doing the work

is part of the issue but at the end of the day recognition is easy to provide i mean the internet

the internationalization they've moved to the forum the django project forum off of google

groups because that's something the dsf emails people can write in on the forum a lot of them

are around someone saying i want to translate it into this or that language and they you know they

didn't they weren't able to find where the internationalization group is so we got a couple

those a month. Yeah, well anyways, we've talked about this before. Great to have someone from that

team on to talk about the work that they do because it is completely invisible to 99% of Django users.

Yeah, and the contributing guide is great, and it is, in a way, it's kind of there, but it's

so dense and so unapproachable that people have repeatedly reported. People are like, I can't get started

and there's no good saying keep saying well it's in the contributing guide because the contributing

guide just isn't working so i mean it is we it's like the fm you know it is it's okay it is working

but not to the scale we want and not you know the number of times a potential contributor has come

up and then well have you got an easily addressable thing that i can take on and the answer is do you

know what not really and that kind of breaks my heart every time i have to say it because it's

like that that's not django being easy to contribute to where it could be well we have these

conversations both to have them and also so others can hear what it's like in our positions and and

the things we're trying to to do so 4.0 is there anything else you want to or can we move on to

what people should expect in 4.0 yeah let's talk about 4.0 like um so i mean uh the big thing for

me then was we're moving to zone we're changing the time zone implementation so for years we've

been using PyTZ and PyTZ was installed when you install Django and in Python 3.9 they added to

the standard library was this zone info module which is kind of a time zone implementation

And that from 4.0, that's the default time zone implementation in Django.

So if you're doing everything in UTC, like the docs say use UTC in your database

and do all your calculations in UTC and then just localize in templates and forms and things like that,

it'll all just work perfectly.

But if you're using the PyTZ localized or normalized APIs where you want to convert it into a time zone,

then do some arithmetic and it might have gone over a date time you know dst transition so you

have to load you have to normalize it again if you're doing all that stuff then um you'll need

to audit your code and there's a there's a transitional setting so you can set this

transitional used it deprecated pi tz setting and then um there's a pi tz deprecation shim

um package which you can use to um uh to to uh wrap around zone info and give it a

a pi tz like interface and then when you call that in your code it will raise a warning and

that enables you to find your warning so that's um that's super and that's a big deal that's one

of those things i think time seems not complicated until you get into programming and then you

realize oh my gosh and i did want to call out we'll put a link to it russell keith mcgee had a

great talk um 2018 all about time and django and python um so learning about time that's one of

the things for students for newcomers saying it's a great rabbit hole to go down it's like well

time's easy is it you know like and what no i mean it's it seems like it should be it's it's it's

just yeah it's far too baroque for words um the like you know and they're so that there's this

abstract card tz info and then there's there's in the standard library there's date time tuck time

zone and then there's pi tz and then there's now this zone info implementations of this and none

of them are really compatible they don't compare against each other and it's just it's a weird and

wonderful world shall we say but anyway it's one of the really important reasons for you to test

during the um yeah the pre-release period is like you know this should all work you know if you're

doing the the right things it should all work and if you are using the you know if you are using the

the pyTZ APIs you're just going to have to adjust your code and the um the pyTZ deprecation shim

package has a really great migration guide that shows you you know how to adjust your code um

but if any if there are other issues that come up then we need to know about them because

um zone info is the future of time zones in in python um so it's time for us to make this change

And that will be the transitional settings available all through 4.x, the 4.x series.

So till Django 5.0, you can use this.

But ideally, you would migrate sooner rather than later and drop using that deprecated PyTZ and use zone info.

So that's one big thing.

Functional unique constraints in the database.

So you can have kind of computed constraints.

So, you know, that there's only one that's less than this or something like that.

You know, I'm trying to think of an example.

Maris is very excited about those.

The Redis cache backend we've talked about.

So that's not as complex as the, you know, as perhaps Django Redis, perhaps, which is, you know, that has more options.

But if you just want to spin up a Redis cache with Django, you don't now need to reach for a third-party package.

right and i did want to yeah i i was mentioning this to a couple people who are programmers but

not in the django world and it is important to note this just means official django support it's

not that redis is now downloaded with django no no no it's just that instead of having to reach

for a third party package um i had a couple people make that confusion so i just wanted

to mention that it's it's more just yeah there's an official support and django redis is still an

awesome package and hopefully over time if we need those things they'll be moved in yeah i mean

so the thing with so like with the orm for instance um we support um my mysql postgres

sqlite oracle and so the orm uh needs to capture what's common to all four and it needs to abstract

to over differences same with the bait with the um with the cache back end you know we've got the

m cache um memcache back ends we've got the redis back end now um you know it's a local file cache

but they offer a kind of unified API.

And then it's beyond that API.

It's open to third-party packages to go further.

So, you know, there's lots of Postgres add-on packages

that, you know, make more use of things that Postgres can do,

which perhaps SQLite or Oracle can't.

And, you know, so there's always going to be room

for Django Redis package,

which goes beyond what we're going to offer in core.

But I remember spending a day, two days, trying to work out which Redis cache package I should use out of the options and how to configure it and, you know, all these bits.

And then, you know, a couple of years later when I needed to again, I had to spend that same day, you know, combining that.

Ah, like, what did I decide last time? I can't remember.

well that's like me with um heroku deployments for the book because heroku has not updated their

docs in years on the matter and um i've done it so many times and every time it's like what a waste

of yeah what a waste of time this is um okay and then the other button.dev no hang on hang on one

more feature i wanted to mention for um 4.0 is um i mean there's all the the whole load of minor

features but the other one is template-based form rendering so you know where you've got your form

as as p or your form as table or your form as ul or well that's all now moved to the template

system so a few years ago we moved the widget rendering to the template system you could

customize the widgets but who's customizing the actual widget no one really what people wanted

was to customize the sort of the html that's generated when you when you get in your template

you just go form you know like output the form and now that's um so the default kind of proxies

to as table but if you you can override the the the default temple and template and you can have

it as you wanted so this is going to really it's going to be interesting how this interacts with

the likes of crispy forms and floppy forms because those libraries they they may be that they're not

needed anymore or you know aspects of them aren't needed anymore um that they can drop away but

that's quite exciting because say you want to have forms that just by default render i don't know

using your your fancy you know css framework that you you've got you can create the templates to

match that framework well the those defaults like around templates forms those are very confusing

to newcomers that's something that i have like a paragraph to sort of say hey this is this is just

a part of django that you need to know why does dash whatever you know dash p work yeah um so

that's but i mean so you have to make sure i'm accurate for 4.0 yeah so i mean ideally you'd

people would stop using as table as um as p as ul and what what they use instead well because now

you just put it in the view right you would well no you historically you would change you just use

the string render so you know we've got double under string the string method where you you

would just output the form and that that's always proxied to the as table it's always the same

output as a as table by default but if you wanted to customize that you would just customize the

default template you'd overwrite the default template to have how you want the form to appear

and then instead of going in your template curly bracket curly bracket form dot as p you just go

form and then you just however whatever the default string out a representation of the form is it

would render the template that you've configured for your project and then those methods they can

eventually be deprecated more because there's accessibility problems with yeah you know and

like um the the p element in html it's not allowed to have other block level elements inside it it's

it's just not valid html yeah so every time you're using as p you're outputting invalidation it's not

a great thing and then there's there's accessibility issues with tables and these kind of things now we

can make we can try and make those those um templates better but ideally you kind of craft

your your this is how i want forms to look at my project and you know be very easy for a third

party package to just come along and say look and here's some form this is a default form template

for you know tailwind or for bootstrap or for you know well that sounds like something i should um

i'm going to play around with that and maybe have a tutorial or two for 4.0 so anyway that was the

four point there's loads in four it's another it's to be honest it's another massive release

they just keep coming the community is amazing and it it literally you think oh you know there

won't be much for the next one and then there's just this huge list of awesome features plus a

billion bug fixes plus and it just works and you know you update pip install dash you django

pi test to go five minutes later you're like oh it passes deployed and it's you know django is

just amazing and yet another blinding release yeah well and python's still taking over the world i

think um it's officially or pretty close to officially the most used language now it's

gonna take over c and it's incredible yeah so you know we'll wait for it when 4.0 comes out i'll

send you the hacker news link saying oh wow django django's still a thing yeah yeah i know you love

the hacker news and the reddit conversations just like just like what oh don't even get me started

but like you get down to like comment two and it's like why aren't they using why aren't they

using js framework hotness of the week.com well i just don't know what the what the current default

hotness is because back in my day it was rails and then is it express like it's still right it's

not fast api like what it's still rails it's still jangle you know because if you you know in the

real world away from hack and use away from ready in the real world like it's these these mature

frameworks and then the exciting one in python world is fast api lots of people are using fast

api and that's super and that's great and that's that's awesome um and then flask has just done a

big update and you know so that's i mean it's a really vibrant time in the python ecosystem but

that

a different question from you know these threads on you know yeah well boot camps i mean just as a

quick aside i mean there was um yeah let's go into this so boot camps are struggling um you know team

treehouse is having some problems uh among others but there remains i think of this because i teach

you know there remains this problem of how do you get people into coding and it's just hard i think

at the end of the day there's only so many people who can pay out of pocket and have the time to

teach themselves you need even if you had the perfect curriculum people need a company to

sponsor them they need to be able to take in the united states take out loans to go study this

stuff it's just a really hard problem and there's not that many people who can pay 30 a month

and get very far and so all these companies you see if they take outside funding which they usually

do they veer towards being internal training tools for corporations who say you know general

electric says let's skill up a thousand people to be engineers as opposed to something else um

and it's so it's a it's a hard nut to crack um there's free code camp which is amazing and then

there's kind of nothing else as i see it out there so if anyone has any answers that's something i

think about a lot how do you you know aside from saying you just need to keep it small keep it

solo solo keep it sustainable and over time provide these materials um so anyways it's a

little and then what do they teach you know i don't know of boot camps that teach django maybe

they teach flask i still think they're all javascripty 12 week things you you know you

have a crud javascript app and then you're released into the wild and it's kind of sink or swim yeah

i think the point you made about like people not having the capacity to teach themselves like

because it takes ages right it takes it just takes you've got to have so much time to sit

at the keyboard being confused that very few people have that time and they're all the same

demographic and that ties back to the contribution problems we're talking about well right that's

that's the coursera and all these places you know where people are taking 100 000 people signed up

for a master's course on ai it's like yeah well they already all have a master's and went to

stanford you know it's that's not the you know anyways as an aside that was unfortunate i don't

like to see edtech companies not do well um but so be it um so button what else is that no button

you mentioned so but buttons button dot yeah so but still sign up no yeah yeah yeah that's coming

that's um it's always it's been coming forever but this juggling balls and um covid issue so

that's been that's coming on really well it's it's it's coming together really nicely i've got the

first users on board um solo and team you know starting to play with it and make sure the edges

are right works just as i it's it's you know it's a principle keep it simple it's you know a guide

how to it's a community of people doing it the same way and it's it's some tooling um and the

question is just my capacity to put it out and because i i'm not so you know i'm not um funded

to do that it's very much what i can fit in in this bed around you know fellowing around other

work around my children around my you know family around all those things so it's gone slower than

i would imagine but then you know everything's gone slower than i would imagine so i'm i'm really

happy i'm really excited it's coming very soon you know very soon in in real terms like you know

over the next period um and yeah i i the people i've got using it are saying yeah you've thought

of everything that i'm concerned about right and that's what's nice is it's not you know that's

what you that's what i set out to do that's what i said i do because it's not it's not you know if

you're already an ops expert it's not for you it might be for the people you're provisioning for

right instead of you you know building this platform for them to be able to provision on

you might just be hey just use button but if you're already an op expert it's not for you

but if you're not interested in all that or you haven't got the time to learn it or whatever then

you know maybe it'll be an option so that i'm quite pleased it's coming yeah well and it's

something you you can't get wrong i mean if someone's deployment doesn't work that's a real

problem it's not it's not a typo in documentation it's you know yeah the bar is a bit higher and

with your project then yeah and also i want to be i want it to be easy to use right there's no point

having a simple deployment that's just as hard to use as a hard one and so it's got to be you know

you might as well just do the hard deployment then you know i don't want to give you yet another

command line thing where it's horrible and you've got to remember these incantations and if you

can't get if you don't get the incantations wrong it gives you an opaque error i don't want that

um and so okay if it takes if it's taking a little while because of covid and because of

you know life stresses then that's totally fine that's totally fine but it's yeah it's it's well

that's exciting i'm ready i'm ready for it when you when you're ready i will i'm so ready for it

like it's so it's so uh like just like oh i just want to get this stuff done but you know life has

had other things to say over the last couple years so that's okay slowly slowly catchy monkey it's

it's it's it's long haul bootstrapper not vc you know fancy so you know yeah well every time i

update my books i spend more than half my time on heroku and send grid which are the only two

things i haven't been able to strip out and it's just a pain yeah so i would love for you know

something similar okay so well hopefully when you're rewriting for the 4.0 versions we've got

uh we've got something for you to point you think well by december yeah you think yeah yeah i mean

i'm like i'm i'm there like it all works it's all there i just don't need to set time no but i just

i'm ready i've just literally got to wrap up the bits in an order that i can deliver them so

you know i'm i'm so bored of having inventory sat on the shelf with it that it's coming

and it's just a question of how i can wrap it up in the nicest way that's all yeah well on my end

i have finally in some earnestness started a python book which is sort of when i get flustered

to my django stuff so this is i've been talking about to myself and a couple other people for a

long time and i i bought the domain name so it's gonna happen right i spent the twelve dollars yeah

yeah there you are there you are i bought a domain name job done it's a it's official it's

like that south park thing buy a domain name profit what's b yeah collect underpants um but

it's it's actually it's really fun it's really fun to write something new um i love doing the

Django books, but they first came out three years ago, I think. So it's a different thing to rewrite

them as opposed to something new. And, you know, there's so many good Python books out there. I

mean, Eric Mathis's Python Crash Course, for example, is a fantastic book. So I'm having to

think a lot about like, well, what would I do that's different, you know, besides my voice?

So, you know, I'll talk about it when I have stuff to talk about, but it's been very fun for me to do.

It's been educational just to go and revisit, to think about what level to introduce things,

how can you incorporate projects and maybe multi-step you know so you have a mad libs and

then that's a basic thing with variables and strings but then maybe you can add in functions

and yeah logic and you know how do you make a progression for people um so that's a fun project

and i i can't put a timetable on it i'm excited to have something else to work on that sounds

really exciting i mean i think um python crash course and then the other one one is automate

the boring stuff right i mean i think if those those are the two yeah al's book those are the

two that those are the two if you you know so if you if canonical if you're sort of looking at them

and saying well well what different can i offer then that you know it's an interesting that's an

interesting thing to be thinking i think yeah and then you know when you get more advanced there's

um you know fluent python is among the best and i think he's got it he's got an update coming out

yeah i'm so excited that's an amazing he's been working on that's an amazing you know next tier

book um so i'm really interested to see so it would yeah the one there's a lot out there um

But anyways, it's giving me an excuse to buy even more Python books and, you know, see what I like and don't like and how it's presented.

One I picked up recently was David Beasley's done Python Distilled, which is just...

Oh, I know who he is.

I didn't realize he had...

Yeah, so he did the Python Essential Reference years ago and was sort of updating it.

And I think over the course of it being updated, it became this Python Distilled.

So, you know, if you...

Oh, because he does all the compiler courses, right?

Yeah, that's really...

that takes his stuff and he he dogs on typing the whole time so you know i'd like to get him on and

see if we'll talk to this about dogs on python no not python not python typing typing on typing

wow but that just came out like a couple days ago as ever carlton you're you're an aspiration to me

so um anyways i think that's it we have um right is there anything else beyond we have a whole

number of guests scheduled yeah um so it won't just be us yammering on it'll be well i like it

we haven't yammered on in private for ages yeah that's true and you know what we don't have any

sponsors so yeah we still show we do like what was i gonna say uh did i did i mention to people

to download the 4.0 alpha and test against their their code did i mention that that'll be the top

link please do that if you're listening um that's very important and yeah i think thank you for

mentioning the the redis survey thing there's a small thing but honestly that's exactly the

example of like it's hours and hours of time kind of in the dark and just just knowing that makes me

feel justified and all the time on the the two surveys because i didn't really know that did

much yeah no i think frankly it's something i want to hand off to a new board member next year

when we have a new board saying get you know anna and i have a list of things saying okay

there's a number of things we're doing now and um you know that's one of them i think it'd be

better to have someone fresh but also yeah it is helpful i mean if as you've done it you can

outline the steps that are involved at least then you've got that how-to which is the you know who's

going to volunteer to do this you know right well and you know tim graham had done the last one

six five six years before and so the one last year was a google form i got a lot of feedback

from you and marius and and jeff and some others and then this year was quite a bit easier there

were still 20 new and then we removed some things so i think we it's in a refining stage which i

think is an easier place but a better place um and um with this ai component that um jet brains have

the kind of long form answers we can decipher that we can do a lot more than just check the box so

So I'm interested to see, because that's what they do with the Python survey.

They're able to do stuff around that.

So they had a number of questions around tooling and other things.

And they can, we will see, but they say they can, you know, analyze that in a way that

obviously a Google form cannot.

It's nice.

I mean, you know, they've already got that capacity, but it's nice for them to lend that

capacity to help, you know, us and maybe they do it with other projects as well.

Yeah, and they're the biggest sponsor to Django.

And actually, one thing for next year, actually, this is an important point, translations.

So we didn't have time this year to translate the survey, but that's something I really

want to do for next year.

And we'll have the time so that we can put it out there in either JetBrains or we can

ask the community to translate it so it's available in other languages, not just English.

OK, let's call it quits.

Lovely to see you, Carlton.

Congratulations to you and Marius on 4.0.

Yeah, well, that's Manny Marius.

Congratulations, Marius.

He's been driving that.

As ever, DjangoChat.com, ChatDjango on Twitter, and we'll see everyone in two weeks.

Yeah.

Join us next time.

Bye-bye.