Transcript: Django at UC Berkeley - Mohammed Shamma and Matthew Newton
Hi. Welcome to another episode of Django Chat, a podcast on the Django Web Framework. I'm
Will Vincent, joined by Carlton Gibson. Hi, Carlton.
Hello, Will.
And today, we're very pleased to have Mohamed Shama and Matthew Newton from Berkeley join
us. Welcome, both.
Glad to be here.
Hey, guys.
Thank you for coming.
Yeah, we're very happy to have you on. I think you came onto our radar because we saw through
Carson Gross, that you're using HTMX at Berkeley, and then found out you're using Django in a number
of ways there. So I'd love to talk about that, your backgrounds. Maybe we could just jump into
how did each of you get into coding, and then we'll make our way to your current work. Either
one of you. Mohamed, why don't you begin? All right. You know, I'm a product of the 80s Apple
2e generation having it in grade school having like one computer in the classroom so i was
you know i was always familiar with basic and obviously all the number of video games that's
really why i had the computer um but it wasn't until college that i started you know as around
1995 when I started picking up web programming and Perl CGI and doing side gigs for professors
and student clubs. And I was just the guy who was like, yeah, we want to get on the Yahoo web
directory. Can you do that? And I was like, sure. It's called email David or whoever at Yahoo.
there was a guy, you emailed him and he put you on the directory. And they loved it because Yahoo
was always like the homepage when the browser kicked in, it was mosaic. And they loved it when
they would click through to see like, you know, their student org. So I did that. I was a humanities
major and i basically um decided to head out west from there i was at university of texas and then
uh got accepted in the grad school at cal uc berkeley and uh was the inaugural class of the
basically what's today the school of information and that was um 99 when i graduated and yeah
um decided not to take a chance on uh the impending dot com bust and so i played it safe
with uh you know um uh working at a bank as a programmer for a while and then working as an
it auditor for a big five or big six firm at the time and then decided to come back to cal where i
just felt nice happy and warm fuzzy feeling there and uh i knew i'd have to start as a system
administrator to get kind of anywhere in the system but i did and now i'm here and uh i've
programmed in several different languages since then you know and uh i love it wouldn't wouldn't
traded for the world and what what is your current role so uh so i'm a technically a senior web
developer for uh marketing and communications in udar which is university development
and matthew helped me out here and alumni relations alumni yeah alumni is there you know
it's the people who ask you for money hit you up for money and uh right um yeah i'm gonna get it
for that one but uh so you're a profit center not a cost center at the university though exactly
we're a support organization of the university but it is our job to um ensure that essentially
the the representation of the university to donors and and interested uh potential donors and alumni
um as opposed to like public affairs which would uh target um potential students okay interesting
more to discuss on that but matthew we'd love to hear your so your backstory muhammad's path and
and mine are uh similar in a lot of ways um i also got bit by the programming bug in the early 80s
in elementary school. My school was lucky enough to get an entire lab of Apple IIe's
networked together, very, very fancy, when I was in the third grade. And they sat us down in front
of those things and first taught us BASIC and then taught us LOGO. And I just remember falling
in love with the idea that this was a machine that at one moment didn't know how to do a particular
thing. But if I sat there and typed for a few minutes, I could teach it how to do something
that it couldn't do just a few minutes before. That was when I just fell in love with computers.
So fast forward years later, I did my undergrad at Berkeley, and I also was a humanities major.
The idea originally was that I was going to go to law school, but working in a law firm for a
couple of summers dissuaded me of that idea so uh when i graduated um the web was taking off and i
you know had been a computer geek for a long time and i had also been a writer and an editor
and so my first job out of college was um basically in a content factory at cnet uh in san francisco
which is still around of course um and then after a bit uh i landed a job at pc world magazine which
at the time uh was the most widely read computer magazine on the planet or at least that's what we
told people uh and um i wrote and edited there for a bit but then when the dot-com bust happened
uh the magazine downsized and they didn't have a job for me as a writer and editor anymore but
they asked me if i would project manage the in-house web development team uh so starting in
2000, I did that. And while I was on that team, we ended up building a CMS from the ground up
in active server pages, which at the time, Microsoft's ASP gave you a choice. You could
program your backend in VBScript or in JScript, which was Microsoft's own version of JavaScript.
So we went with JScript, and so like, I don't know, 10 years before Node was ever a thing,
we wrote this entire CMS from the ground up in server-side JavaScript.
We kind of didn't know how ahead of the times we were in that regard.
But being on that team for a number of years made me realize that what I really wanted
to do was code full-time.
And so when I moved on from that role, I became first a freelance coder and then worked for a couple of startups in the city.
And then I guess it's around 10 years ago that I became the in-house web developer for the Alumni Association at Cal.
And then a few years later, joined UDAR.
And I've been on the team with Mohamed and the rest ever since.
Okay, that's awesome.
Yeah, we're lucky to have Matthew.
This is Django Chat. So how's Django fit into the story? Is that the tech of choice? Or how did it become the tech of choice? Or how did you get to use it?
definitely the tech of choice in our department these days um i joined the department a little
bit before muhammad did uh and at that time we had probably about uh on the order of a dozen
cms based sites that were all in drupal and then okay not a dozen cms's and a dozen sites
Uh, and then we had, um, a PHP legacy app, um, at Cal, which is kind of a homegrown mini
social network, um, that is still in existence.
And then, um, our department's biggest deal is give.berkeley.edu, which is kind of the
canonical way to give money to Berkeley.
Um, and when I joined the department, that was a legacy cold fusion app.
And we knew that that had to be replaced with something someday. And then the person who was kind of the godfather of that app left the department, and we hired Mohamed to replace him and then immediately began the discussion. You know, what platform do we want to move forward on? And what language do we want to be writing in? And, you know, we had all those big, meaty questions to answer. Mohamed, you want to take it from there?
I mean, I like sharing this story. It's a it's a funny story. So when I that's around 2001 and the alumni really I was working at the School of Business at the time and I was programming in ASP.net, Cold Fusion and Pearl and PHP and Alumni Relations asked the School of Business.
Can you have one of your programmers consult with us on how to make those dynamic web pages?
That's what they said.
And so they asked me to go down there and give them a talk.
So I basically walked them through the, you know, how to do it in pretty much those four different, you know, languages.
And I told them, you know what, I think ColdFusion is going to be your best bet because you already know HTML.
And what's a little bit extra on top of it? At least that was the marketing back then. And so, lo and behold, I'm hired by UDAR, which was Alumni Relations. And what do they have? The ColdFusion web application that I feel like I kind of, you know, encourage them to write.
and but they want to get rid of it and it wasn't the first time i was asked to get rid of cold
fusion and so i think that was kind of what piqued the ears of the interviewers is like
oh you know how to get rid of cold fusion i did not know that it lasted for so long
but how did you go from well we're going to get rid of it when there's these different options
out of those why python and why jay i i think um the first question that we really um
tackled was you know do we want to be a cold fusion was obviously not not a solution going
forward and so the the question was do we want to be writing in php or python going forward i think
we may be considered java for half a second but not very long at all um and i had you know been
uh in the drupal world for several years at that point had written a lot of php
um but was also very familiar with python and i i definitely knew where my preferences were
um because i tend to like code that looks as close to pseudo code as possible
and python definitely gets you a lot closer to that ideal than php does um and and so that was
why i leaned in that direction um i wasn't the only one on the team that leaned in that direction
And so once we kind of knew that that was the language we wanted, the next question was, what kind of framework? Do we want something that's big and opinionated or do we want something that's light and more bring your own batteries? And maybe, Mohamed, you want to talk about how we weighed that?
Yeah, I mean, it was clear that I think no one really wanted to write in something that they had already been doing.
Everybody wanted something new.
And it was new to us just by chance.
And we really liked the simplicity of Python and Django together.
It was clear based on all of our experiences that we'd been using something more complicated and kind of pinched ourselves when we were comparing, you know, writing these, you know, the fizz buzz examples side by side and seeing them in all the different languages, Ruby, Java, PHP, Python and Go even.
And, and we were just like, it's, I mean, it's pretty obvious this, this seems like, you know, the right way to go.
Can I ask what the timing was for this?
This is roughly five years ago, five and a half years ago.
2016.
we were making these decisions yeah so django was what like one eight one one six one eight
then it was pre 2.0 yeah so already had the migrations and things like that so i mean
so you're talking about um language examples there but like it's the web the web examples
right it's like so you're very much building these dynamic web pages like you're you're
needing to fill a template get data from a database that kind of thing is that yeah i
was coming fresh from .NET MVC. And so I was like, whoa, I think Microsoft borrowed a lot here.
And I think about the source now. So I want to learn the source. Because, you know, I was doing
migrations in .NET MVC. I was like, this is pretty cool. But where did it come from? And then I
discovered, you know, so. I have to say that another thing that weighed heavily as we were
making these decisions was how excellent the django documentation was compared to everything
else we were looking at um i'm really big on documentation um and i just i had never seen
documentation that was this expansive and just every time we had a question about oh well how
would we solve this problem if this was our new universe um the answer was there in the docs
and and that was just easy to find yeah right yeah i wonder if that i mean carlton maybe you
know if that's in part because um of the three founders um adrian and jacob were english
journalism majors and simon was a cs major but i mean there is that sort of humanity's instinct to
have a little you know not just read the manual but like actually have a manual and
i always feel like there's some of that you know they came from php and wanted to do python but
also you know docs were important from the from the get-go and i think from the from the word go
there was this emphasis on having topic documentation as well as just references so
you know okay you've got the you've you've got like the method signature and you know what it
does but you've also got a more discursive document that explains how you go about something how you
know how they the url routing works or you know how the form layer works um or how the template
layer works or whatever so yeah i think it's interest i think this is interesting because
it's not often that you get a team that are in a position that have experience of several
different languages and are in a position to make a kind of almost greenfield decision as to
which tech stack that's kind of a privilege a privilege and a burden because if you get it
wrong you had all the choices it's on you right we are deeply lucky in that regard um there are
numerous tech teams across the Berkeley campus. And I can't speak as to whether they all have
the kind of freedom to kind of pick their own stack the way that we do. But we have had all
the years that I've been in the department. And it's one of the things that's great about my job,
actually. We don't have technology imposed on us. We kind of get to choose what waters we swim in.
five years into your Django experiment, would you say you're happy?
Yeah. And actually, let me just add that it grew from there because with respect to our CMS sites,
we were a Drupal shop. And when we made the Django decision, that was intended to be a decision for
give.berkeley.edu and any other custom applications that we might end up building. But
We didn't have any inkling at the time that we would move in the same direction
with our CMS-based sites, which we do a lot of.
Then Drupal 8 came out, and I built a site in Drupal 8.
And I don't want to bash Drupal because that's not what I'm here to talk about,
but the developer experience for Drupal 8 seemed to me to be a big backslide.
And I actually kind of felt depressed about the idea of rolling out new sites on that stack.
And so I took a look at what was happening in the Django CMS world.
And, of course, there was Django CMS, and I took a good look at that.
But Wagtail was coming on fast and strong.
This is probably around 2017 now.
And so I asked my boss if I could do my next CMS project in Wagtail.
And I explained that, you know, it's built on Django and this tech stack that we've already kind of blessed and chosen.
And he said yes.
And my first experience building a site with Wagtail was really kind of revelatory because it's just a very, very, very different approach in that with Drupal,
When you first begin building out your site, like defining your content types and their various fields and whatnot, you don't do that with code.
You click around in the Drupal interface for a good long time.
You build out your site structure by pointing and clicking.
And then if you so choose, you can export that into code that you can commit to Git and whatnot.
But for all of time, your site's configuration can diverge from the actual code that defines that configuration.
And so when I sat down with Wagtail for the first time and realized, oh, I define my content types with Django models, and it's all in code, and it all just flows from that, and it all just works, that was just an enormous difference.
and so uh we didn't look back and all of our cms projects are in wagtail now we've converted
more than a half dozen old drupal projects into wagtail and within another year or so
um we will sunset our last drupal project and so we'll be entirely on django and wagtail for
for all of our stuff oh wow so you are happy we're very happy yeah and it's not just us who
are happy as developers um within the marketing and communications group we work with in-house
designers in-house writers and editors and everyone who interacts with the cms they are all so much
happier using wagtail um you know we like to keep our own colleagues happy and it's much easier to
do that nowadays because we've adopted that stack because that's the thing with the cms right is
that like you're building an interface for a content creator or a designer and they have to
use that they have to live in this interface so right and i i think that um the experience that
i had at pc world building a cms from the ground up back in the dark ages i think that um that
taught me a lot about how cms's can create pain points for the people who actually you know are
trying to push content out the door on a day-to-day basis and so early on in my freelance
career all that knowledge was really helpful in trying to choose an open source cms that i could
then you know give to clients and hope that they would be happy with and so at the time drupal 7
was was really the right thing it was the best of the bunch but again by the time 2017 rolled around
and after we had made the decision to kind of become a django shop it it became obvious that
wagtail was where we wanted to be it's it's just a better experience all around for everybody okay
that timing's pretty good i mean coming to django at a much relatively mature point and then wagtail
as well i mean we had tom dyson on to talk about it that's a good timing for wagtail right that's
sort of a trick which i guess you only know in hindsight whether you know what point in the wave
are you riding yeah i remember listening to that show with tom dyson and uh he said he talked about
how torchbox had once been a drupal shop as well and um he had a quote on the show that just
resonated with me very much he said that they found drupal to be a hard technology to love
quote unquote and i thought oh yeah that's kind of the way i felt about it too i've been using it
all these years but i kind of fight with it a lot and whatnot and then the more i used wagtail the
more i realized that there's an entire constellation of troubles that i used to have that just don't
exist in this new world because the architecture is different and and whatnot can we talk muhammad
about the the giving page that you worked on because in part um carlton just is it live
carlton updated the django zone um donations page um so i'm curious i guess it depends on when you
did that but what tools you used and challenges you faced yeah we went live with it in october
2020 and um uh yeah it's been i mean as far as we're concerned running without any kind of
load issues um and i remember you know there were issues during december time frame with
cold fusion because that's when most of the gifts came in um but we also switched hosting we were
hosting um on uh local vms and with django we decided to go with google cloud so
as well as with um postgres in google cloud and uh i mean we have a great uh devops guy
Rob. Hey, Rob. Thanks for everything. He's the one who did the hard gap analysis and cost analysis
with AWS. And I know that Central Campus, I think they use AWS, but yeah, we decided to go with
Google Cloud, another one of those decisions that we're allowed to just make. And we're very happy
with it. Uh, yeah, it has its ups and downs, but I don't think there's any, uh, I don't think
it's really that much of a difference. Um, and so, yeah, in terms of that, it's been a huge
improvement. Um, and, uh, I mean, as far as doing the, the giving part, I mean, it really have to
be like i don't know what did you find the hardest part of developing uh which giving site was this
for django i think will's referring to the just the donations page on the um on the django django
project right and that's just a stripe integration and the hardest bit is always like the integration
with the api because you know you write code normally you can write tests and all the rest
but when it's these kind of integration tests you end up oh you're gonna do mock stripes entire
service it's and then you know yeah and your your volume i assume is a little bit more more than
jango's so yeah well we have also some bottlenecks um you know we we're still a state institution and
and we have to follow the rules sometimes and that's with uh central accounting and they have
yet to approve anything other than cybersource and not just any cybersource but cybersources
um what's it called uh i forget which product it's like their first product so we literally
have to redirect the person to this page a cybersource branded credit card page and then
it gets redirected back and um so we had to do a lot of testing there but it works and especially
with a an ember front end uh that's hosted by a django container that's requesting apis from a
separate django api instance um yeah it all seems to work and uh the only thing we're kind of
unhappy about really is ember right okay because it's quite heavyweight and that's kind of what
led us to html okay so let's let's just talk about ember momentarily because it's quite i mean it's a
full um single page application type framework it's i mean it's powerful right but oh yeah it's
crazy powerful and and i mean easy to use when you're kind of getting started in terms of building
and because it comes with everything but it's kind of like the you know those model sets that
they say intermediate on it and then you start opening everything up and you're just like whoa
this is not intermediate, you know, and that's what Ember feels like.
Uh, but you know, it was, so as a team, we decided on Django and, you know, I would say,
yeah, we're pretty much most of us, you know, back end developers, our decision to use Ember
wasn't inappropriate or incorrect.
We just found out that a year and a half into this, this is not what we want to do.
And so, yeah, we realized we can save a lot of debt or get rid of it, API debt.
And what I call, I mean, wetness when it comes to your entire presence, which is like, okay, got models, views, controllers, and you're back in.
Oh, wait, get back to work, guys.
you got to do it in the front end too. And to me, that's wetness. I'm sorry.
What else are you going to call it? So, um, it's,
and we're seeing a lot of, you know, just how it's,
it's also, um, Ember 3.1, 3.10,
and it's not Octane. And had we started with Octane,
I don't necessarily think we would be here maybe, but, uh, you know,
that's we are here now and htmx is here now and so it's given us the chance to say well maybe
the the solution wasn't to upgrade to octane but the solution was to rethink everything
and tear down some stuff so that we can build some some stuff that really cuts out a lot of
the wetness dries it off a bit i mean my sort of over overriding impression with hcmx is it
enables you to build something that's just an order of magnitude simpler than the spa solution
exactly one of our one feature of our giving page is searching for funds like i believe we have
1600 publicly available funds that you can give to. So anything from the botanical garden,
art museum, football, um, you know, brain science, you know, keep going, keep going.
And so, um, in order to search for, you know, what you're looking for, uh,
And it's kind of hard with Ember using an API and trying to do, like, some meaningful search against Postgres in full text, although we're really excited about the new features, I believe.
well, we just recently upgraded to, um, what did we upgrade to Matthew 3.2?
Yeah. And so, uh, it's my job to start testing out the new, um, uh, web search feature against
Postgres. So I'm looking forward to that. By the way, side note here, I just got back from Egypt
and I was in, I was in Egypt for the last two weeks. So I'm a little spacey on the work stuff
right now but but don't worry it's all good it's fine no you're doing fine it's good it's it's you
know good description of what's going on um so in so hd makes like you build this kind of search api
what you just do with a filter or something like that that kind of thing yeah uh i mean well with
hdmx i can do it like matthew was the one who showed me how he was doing it on the cms side
with intercooler okay and i was like you know what i think that's more appropriate and so i started
so i'm basically prototyping the giving page in django with htmx uh you know kind of on the side
and in hopes to eventually present this to the team to a point where we can finish it off together
and so one of those proof of concepts is okay this is the ember way we were searching
this is the htmx way and it's simpler a lot less code and um you're you know i mean it it really
the user it's transparent i mean they're not going to notice the thing yeah so i was going to ask how
did you discover htmx but matthew you were using intercooler yeah so i think it was in 2018 that
I had to build a couple of sites in Wagtail that are now live on the web at innovators.berkeley.edu
and founderspledge.berkeley.edu. And both of these sites had some very minimal Ajax-y
slicing and dicing of content where a user would check some boxes and get a different listing of
items, you know, that sort of thing. And back in my Drupal days, that sort of thing was very easy
because there's a feature in Drupal called views, very different from Django views. But what those
do, it provides you a way to send content out to the front end and have a user click on a form and
have the content change. And it does all the Ajax for you. So in the Django and Wagtail world,
I didn't have an immediate analog for that when I had to build those two sites.
And so I went looking around for something easy because I didn't want to have to learn React or Vue or something like that in order to just do this little bit of AJAX-y stuff.
Now, I wasn't building a web application.
This was a brochureware type of site, as I like to call it.
But it did need that bit of dynamic interaction.
So I found Intercooler and I did both projects with Intercooler and I absolutely loved it with the only caveat that I didn't too much care for the dependency on jQuery.
And so I kind of kept my eye on Intercooler, figuring that at some point there would be a new version that would drop the jQuery dependency.
And then summer 2020, Carson Gross comes out with what I had been waiting for.
And the only surprise was it had a new name.
And so I started watching, you know, the excitement grow around HTMX.
And then about a year ago, one of our colleagues needed to build a new homecoming site for Berkeley.
And it needed some of that, you know, dynamic Ajax-y type stuff going on.
And so I showed our colleague, James Ferris, what I had done with Intercooler.
And I told him, HTMX is the new Intercooler.
Why don't you give this a shot?
And that worked for him.
And so the Homecoming site went live with HTMX.
And then last summer, one of our editors told me that we needed a way to show all of Berkeley's various Nobel winners on our main campaign fundraising site.
We're in the middle of a $6 billion fundraising campaign at the moment, and our online efforts for that are at light.berkeley.edu.
So there's a page on that site that you can get to by going to nobels.berkeley.edu.
you'll get redirected and it's just an interactive listing of all the uh faculty and alumni who have
won nobels over the years at 80 something people i think and you can um switch up the listing by
choosing you know do you want physics chemistry what decade did they win were they alumni or
faculty did it with htmx and it couldn't have been easier i mean it literally couldn't have
been easier fantastic and it's just a django view behind the scenes that's all it is yeah i i caught
wind of this and i was like we have a weekly kind of developer roundtable and i was like matthew you
gotta demo this you got we need a and so he did a code walkthrough and i was just because you know
i couldn't believe what i was seeing i was like wait a minute that's not json that's just snippets
of html isn't that what was weird is like it's one of those feelings where it's like
this is seems what i feel like i i should have be i should be seeing this at least 10 years ago
you know why didn't this happen 10 years ago and so yeah and and i was like wow okay late to the
party but great let's let's get started but it kind of did it kind of did happen 10 years there
would you know there was pjacks and you know turbo gears yeah that's what carson said i mean he
saw the capabilities for this you know at least that long ago but it was all there and then that
you know i don't know it went jquery and then backbone and then you know off from backbone
like ember came along you know and this he's kind of his virtual dom and it went all that way
through the the richer and bigger frameworks and this kind of idea of oh i'll just send a little
snippet and swap it i mean jquery load right jquery.load where you would get an html snippet
and it would put the html snippet in the dom at the selector that was this a long time ago and
you know yeah so it kind of did but for some reason the fashion went i don't know the other
way well we should mention carson is a alum of berkeley as well i believe is that is that true
all right i think so yeah i believe he also went to stanford after but um one of those
yeah well have do you use um we just interviewed adam johnson um earlier and he he has the django
htmx package as well as some other ones do you use any related packages with your django htmx usage
um you know i i think i built that nobel's feature before he released that package
um but yeah it's recent it's this year i think yeah uh but i would absolutely use it going
forward um and there there had been a django intercooler package that i had used on those
first two intercooler projects that i did basically just to give you um the ability to do
like if request dot intercooler, you know, in your views, make it very easy. Um, and so, you know,
the new Django HTMX gives you if, if request dot HTMX. Um, yeah, I think that, um, another thing
I'd like to point out with respect to all this, uh, the explosion of the HTML over the wire stuff
that's happening in the Django universe. Another, um, another way of cracking that nut that I've
been playing around with on my personal website is unpoly.js. And that's also a really, really
nice package. And it takes a slightly different approach in that with HTMX, HTMX kind of assumes
that you're going to be pushing little HTML fragments, always fragments, which is why in
your Django views, you need to do things like if request.htmx, because you need to know whether
you're supposed to be sending a fragment or the full page whereas with unpoly the uh the assumption
is that you're getting a full page every time and uh so um on first page load you get the full page
and then unpoly captures you know like any click on a link and it goes and gets the full page but
then only swaps out the stuff that has changed and so you don't end up with um logic in your view
that uh is you know determining whether you're sending just a snippet or the full thing you're
kind of always sending the full thing and that may not be great from the respect of how much
you're pushing down the wire but if you're taking a site that is just nothing but you know full page
loads and you just want to make it a little ajax-y it's super simple you just basically
layer unpoly on top of it and you let unpoly take care of the rest it's really really cool
yeah it's very similar in that respect to i think the way turbo links works which is what's embedded
into rails is because it turns out that if you keep the head static you can swap out the body
very quickly without the rendering errors.
Can I ask, we have in the notes,
there's some other areas at Berkeley
where Django is being used.
And actually, I was interested to see,
so the extension school,
d lab or any of these you want to give shout outs to i mean yeah anyone who's obviously
taking a class or a python class at uc extension has definitely been told go check out django or
even take the class and uh the student run i mean i what i found was so interesting when i came to
berkeley was like um the students run the computing facility okay um that happens a lot
at Berkeley, by the way. It does not happen at University of Texas, or at least it didn't 20
years ago when I left. And I think it's amazing, and they do a great job. And yeah, they host
Django. And so, there are definitely student groups out there who are hosting Django sites
at the OCF. And D-Lab is a great resource because it allows, it offers Python classes
for humanities students. You know, I mean, everything's about data science now and
everyone's doing it. And there's a big effort internally to really kind of bridge the gap
between you know the humanities student and the engineering student and the natural sciences
student and and um uh and data science and so uh D-Lab is a is a great place for that and of course
you know when it comes to publishing your work well they tell you now that you know Python
head on over to Django so um those are the ones that like are open you know and they're actively
um promoting Django um yeah and so I hope I I want to see more of it uh you know at Berkeley
and I know there is more I just you know um you know if you're using Django at Berkeley say it
tweet it you know well that's that's a lot i mean i know um ut uh is using django because they're
switching from cobalt to django and for many years they would train people they like we've
interviewed people a six-month program especially women um with that transition um so they're at an
in-between place with that but okay actually over the holidays i met someone who goes to
haas the business school at berkeley and i asked her how's that going because i went to business
school. And she said, oh yeah, I'm learning a lot of data science. And I was like, the business
school teaches you that? And she's like, no, she's taking as many as she can through the school of
information. So I know this is not unusual for Berkeley, but this is so, yeah, not the norm.
My business school and another place I taught in the East Coast, I'm just like, why aren't we doing
this? And just nobody thinks of it, but I guess Berkeley has that history and tech is in the
water so it's it's like why aren't we doing it whereas telling someone in rural new england hey
you should teach python they're like what's python i know so no and and and you know of course we
we uh we were always checking out the language stats and you know after our adoption of python
and django and then to see like python overtake javascript now i know that's probably debatable
but but still it was a great feeling and uh yeah we we feel like we finally in our careers chose
correctly and and and it's great yeah are there any features or things you'd like improved now
that we're talking about you know wagtail django htmx right i mean because there's always things
that can be improved just specific to your usage at berkeley the single biggest improvement that
And my internal users needed in Wagtail came in the latest release, which was a way to do bulk operations within the CMS, like delete a bunch of pages or recategorize a bunch of pages or whatever.
That had been a lack for a very long time.
And they finally filled it in and did it in a way that's just gorgeous.
So, that was literally the big flashing item on my, boy, we need this list.
And now it's checked off.
Well, it does seem just in the ecosystem of Django, you know, with Django and then REST
Framework and Wagtail, that covers so much of what Django needs.
Because sometimes people say, if they come to Django, they say, oh, I thought APIs was
built in, or I thought a CMS was built in, because that is in some other frameworks.
But, you know, thanks to those two projects still going on, it's still going pretty strong.
It's there for you if you need it.
Yeah.
And I have other Django apps that I work on.
One of them is our integration with Salesforce.
And so, you know, with it's imagine managing Salesforce data across departments in the entire campus and everybody's individual needs.
It's it's so you really just have to tell everyone, yeah, you're your own island and it's a bunch of concentric circles and that's it.
But, you know, one of the apps that I maintain allows you to upload your own data, and then it gets merged with the central data, and it uses Django Celery and Redis.
And it's an older version of Django, and so I'm really excited about the new features in Django to see what I get to enjoy and get rid of, hopefully.
So, yeah, that's what I'm looking for.
Well, Carlton, that came a little bit out of the survey,
but you obviously worked a lot on the built-in Redis integration in 4.0.
Yeah, that was, I mean, directly out of the survey.
So, you know, our survey just came out for this year, by the way.
Yes.
Blogged that yesterday.
What cache backends do you use?
And everyone was using Redis.
And it's like, well, we've got three Memcache backends and no Redis backends.
And so, you know, Google Summer of Code project
to bring that into core.
And, you know, the Django Redis package
will continue to exist and be able to go further
and beyond, you know, just the sort of core
cache backend API.
But, you know, to have that option in Django itself
rather than, you know, it was always like,
oh, I need to use Redis.
What package do I use?
And you spend a day searching it.
And then two years later, you're like,
which one did I choose last time?
i can't remember yeah right okay exactly so at least there's a first choice now for you know
if you want to use redis okay start here and then when you when you grow out of that then you you
know yeah you can go searching for the more advanced options and hats off to pandas for that
as well man i can't believe how amazing that tool is so when i'm you know merging all this data
I'm not doing it myself no way I'm handing it off to pandas and they're doing an amazing I just I
think it's magic sometimes can I maybe just ask you the final question so at Berkeley the data
science web thing it feels like within the Python world data science is trumping the web the web is
like a nice add-on does that feel correct to you or do you see room for the web to grow like what's
what's the view from ground zero of technology yeah it's it's definitely an afterthought after
they've done their model and you know write it written up their report and presented their paper
and and so uh and it's not always python it's r or um something else and uh so but i think
you know i it's really just a matter of i think the fact that it it you know by virtue of being
i mean just so many you know i think it's the humanity students that are really gonna
we're really gonna see a lot of change from uh they're learning python like like they're they're
just more of myself and matthew you know uh where where we didn't come from programming and and so
So, you know, we're not doing, you know, Heroku apps in high school.
And so, you know, I think they're going to look for, oh, well, look, I've already gotten, you know, 50% of the way here with my current work.
Let me just, you know, do the rest in Django, which is, and so I think it really has a lot to do with Python's popularity.
So, I think the more that happens, the chances are really good with Django and the simplicity of Django.
Because, I mean, you know, I have a friend who's starting a company and he told me he was doing it in Flask.
And I was like, why?
And that was just my first question, why?
And he was telling me all these things.
I was like, but Django does that.
But Django does that.
And that was my response each time.
And I'm not saying that, you know, it wasn't appropriate for him to choose flask or anything like that.
But I think afterwards he was like, oh, well, maybe I need to rethink this.
And I think it's that, you know, that do I need to what does get up and running really mean?
You know, and so sometimes get up and running can be get up and running like we did with Ember.
and now we're rethinking it with htmx and that could be your back-end stack as well if you and
or it could mean do the necessary prep work and find that with just a little bit of effort
and you're you've you're up and running and you're staying there and that's really what jango
does for you it allows you to stay there and feel good about it i i i mean i i don't think i don't
have those moments where i'm like oh what is the this other side of the web developer world doing
these days i just don't now of course yeah i'm a i'm you know i don't know had 20 years of doing
this so far but but i think 20 years says a lot it says yeah i've been there done that so
uh and i like jango and so i think um yeah well i think we all agree cool yeah um i i think we're
we're pretty much out of time now is there any last things any shout outs or things you want
to call mention to i know you've mentioned a number of things at berkeley but um anything
else while people are listening um i mean thanks for having us i mean i i was just trying to thank
my team on twitter for the i was literally after that moment and where like i pretty much you know
knew what matthew was doing and i was just and so you know i just i got a tweet about it was just
one of those things and then when you you guys caught wind of it i was like seriously and and
um even Matthew was surprised and and so I was like you know yeah let's let's get on it and and
let's talk about it you know it's also driving off we took when we started off we had two two
kind of types of episode in mind one you know talking about contribute which contributors to
Django but also Django in the wild yeah like how are people really using it and so for you for you
come on and tell us all about how it's just like yeah awesome so good and you know that
muhammad what you were just saying about you know everything you know everything django and how you
how happy you are with it and matthew what you were saying earlier about you know switching over
to wagtail and you know how that that kind of that punt you took on on the framework has really paid
off it's just like yeah this is this is why we do it and you know yeah it's what django is all about
I mean, I hope there are other developers who are in our shoes listening and, you know, feel good about your decision if you're listening to this podcast.
Indeed. Indeed.
Okay, so go and crack open the Kool-Aid now.
Yeah.
I know.
Thank you both so much for taking the time.
Thanks again, guys. This is great.
We really appreciate it, and it's really interesting to hear how it's being used at Berkeley.
Thank you, everyone, for listening.
We are available at DjangoChat.com, ChatDjango on Twitter, and we'll see you all next time.
Bye-bye.
Join us next time.
Bye-bye.