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.