← Back to Show Notes

Transcript: Django at UC Berkeley - Mohammed Shamma and Matthew Newton

Will Vincent

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.

Will Vincent

And today we're very pleased to have Mohammed Shama and Matthew Newton from Berkeley join us.

Welcome both.

Matthew Newton

Glad to be here.

Hey guys.

Carlton Gibson

Thank you for coming.

Will Vincent

Yeah, we're very happy to have you on.

I 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.

Matthew Newton

Mohammed, why don't you begin?

All right.

Mohammed Shamma

You know, I'm product of the 80s Apple IIe generation, having it in uh 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, I was around 1995, uh, when I started picking up web programming and Perl CGI and uh doing side gigs for professors and um student clubs.

And I I was just the guy who was like, Yeah, we want to get on the Yahoo Web Directory.

Can you do that?

Mohammed Shamma

And I was like, sure.

It's called email David or whoever at at Yahoo.

Mohammed Shamma

There was a guy, you you emailed him and and he put you on the directory, and they loved it because Yahoo was always like the home page when when um the browser kicked in mosaic, and uh and they loved it when they would click through to see like you know their student work.

So uh 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 this 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 I've programmed in several different languages since then, you know, and uh I love it.

I wouldn't wouldn't trade it for the world.

Carlton Gibson

And what's what is your current role, Soyez?

Mohammed Shamma

Uh so I'm uh technically uh senior web developer for uh marketing and communications in UDAR, which is university development.

Uh Matthew helped me out here.

I love it.

Matthew Newton

And alumni relations.

Will Vincent

Alumni, yeah.

Alumni is the

Mohammed Shamma

you know, it's the people who ask you for money, hit you up for money.

And uh yeah, I'm gonna get it for that one.

But uh

Will Vincent

so you're a profit center, not a cost center at the university though.

Mohammed Shamma

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.

Carlton Gibson

Okay, interesting.

Will Vincent

More to discuss on that.

But Matthew, we'd love to hear your backstory.

Matthew Newton

Mohammed'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 uh in elementary school.

Um my school was lucky enough to get an entire lab of Apple IIEs uh networked together, very, very fancy, uh, when I was in the third grade.

And um 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.

Um that was when I just fell in love with computers.

Um, fast forward years later, uh 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 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 um while I was on that team, we ended up building a CMS from the ground up in active server pages, um, 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 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 uh the times we were in that regard.

Um 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 uh so when I moved on from that role, um I became first a freelance coder and then worked for a couple of startups in the city, and then uh I guess it's around 10 years ago that uh I became uh the in-house web developer for the Alumni Association at Cal.

And then a few years later joined uh UDAR, and I've been on the team with Mohammed and and the rest ever since.

Carlton Gibson

Okay, that's that's awesome.

Mohammed Shamma

Yeah, we're lucky to have Matthew.

Carlton Gibson

This is Django.

Chat.

So how how's Django fit into the story?

Like it how how did that become the the is that the tech of choice is that or how did it become the tech of choice or how did you get to use it?

Matthew Newton

Definitely the tech of choice in our department these days.

Um I joined the department a little bit before Mohammed 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

Will Vincent

Okay, not a dozen CMSs and a dozen sites.

Matthew Newton

Uh and then we had um a PHP legacy app at Cal, which is kind of a homegrown mini social network 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.

Um, and we knew that that had to be replaced with something someday.

Uh, and then the person who was kind of the godfather of that app left the department, and we hired Mohammed 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.

Um, Mohammed, you want to take it from there?

Mohammed Shamma

I mean, I like sharing this story, it's a it's a funny story.

So when I it's around 2001, um, and uh the alumni relate I was working at the school of business at the time, and I was programming in ASP.net, Cold Fusion, and Perl, and PHP, and alumni relations asked um the School of Business, can you have one of your programmers uh consult with us on uh 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 I basically walked them through the you know how to do it in in pretty much those four different you know languages, and I told them, you know what?

I think Cold Fusion's gonna be your best bet.

Um, because you already know HTML and what's a little bit extra on top of it.

At least that was the the marketing back then.

And so lo and behold that I'm hired by UDAR which was alumni relations and what do they have?

The cold fusion web application that 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.

So I did not know that it lasted for so long.

Carlton Gibson

But how did you go from well we're gonna get rid of it when there's these different options well how out of those why Python and why Java

Matthew Newton

I I think um the first question that we really um tackled was you know do we want to be I 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 maybe considered Java for half a second but not very long at all.

And I had you know been in the Drupal world for several years at that point had written a lot of PHP but was also very familiar with Python and I I definitely knew where my preferences were because I tend to like code that looks as close to pseudocode as possible and Python definitely gets you a lot closer to that ideal than PHP does.

And so that was why I leaned in that direction.

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 that's light and more bring your own batteries and maybe Mohammed you want to talk about how we how we weighed that.

Mohammed Shamma

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 it was new to us just by chance um and uh 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 um seeing them in all the different languages Ruby Java PHP Python and Go even and we were just like it's I mean it's pretty obvious this this seems like you know the

right way to go.

Will Vincent

Can I ask what the timing was for this?

Matthew Newton

This is uh roughly five years ago five and a half years ago twice that we were making these decisions yeah

Will Vincent

so Django was what like one eight one one six one eight then it was

Matthew Newton

pre-2.0 yeah

Carlton Gibson

so already had the migrations and things like that so I mean so you're talking about um l language examples there but like it's the web the web examples right it's like so you're you're very much building these dynamic web pages like you're you

're you're needing to fill a template get data from a database that kind of thing is that

Mohammed Shamma

yeah I was coming fresh from.NET MVC and so I was like whoa I think Microsoft borrowed a lot here and I think I've got 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'd it come from?

And then I discovered you know so

Matthew Newton

I I have to say that another thing that um weighed heavily as we were making these decisions was how excellent the Django documentation was compared to everything else we were looking at.

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

Will Vincent

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 um 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.

Carlton Gibson

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 a more discursive document that explains how you go about something how you know how the the URL routing works or you know how 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

Matthew Newton

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 it's one of the things

that's great about my job actually we don't we don't have uh technology imposed on us.

We kind of get to choose what waters we swim in.

Carlton Gibson

You're five years into your Django experiment would you say you're happy?

Matthew Newton

Yeah and and actually let me just add that it's it's it 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 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 uh inkling at the time that we would move in the same direction with our CMS based sites which we

do a lot of um then Drupal 8 came out and I built a site in Drupal 8 and I I 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 I actually kind of felt depressed about the idea of 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 by this probably around 2017 now.

And so I asked my boss if I could do my next uh CMS project in Wagtail and I explained that you know it's built on Django and you know this tech stack that we've already kind of blessed and chosen and he said yes and um my first experience building a site with Wagtail was really kind of revelatory because uh it's just a very very very different approach in that with Drupal when you first begin build

ing 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 defin

es 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 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, we will sunset our last Drupal project.

And so we'll be entirely on Django and Wagtail for for all of our stuff.

We're very happy.

Matthew Newton

And it's not just us who are happy as developers.

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.

We like to keep our own colleagues happy, and it's much easier to do that nowadays because we've adopted that stack.

Carlton Gibson

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.

Matthew Newton

Right.

And I I think that the experience that I had at PC World building a CMS from the ground up back in the dark ages, I think that that taught me a lot about how CMSs 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 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, uh, and after we had made the decision to kind of become a Django shop, it it became uh obvious that Wagtail was where we wanted to be.

It's it's just a better experience all around for everybody.

Okay.

Will Vincent

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?

Matthew Newton

Yeah.

I remember listening to that show with Tom Dyson, and uh he said uh 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've 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.

Will Vincent

Can we talk, uh Mohammed, 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 I'm curious.

I guess it depends on when you did that, but what tools you used and challenges you faced.

Mohammed Shamma

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 timeframe 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 uh Google Cloud, so uh 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.

Um he's the one who did the hard, you know, like gap analysis and cost analysis with AWS.

And um, I know that Central Campus, uh, I think they use AWS, but um yeah, we decided to go with Google Cloud, another one of those like decisions that we're allowed to just make.

And um 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 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?

Carlton Gibson

I think we'll referring to the just the donations page on the um on the Django Django project code company.

And that's just a stripe integration.

And the hardest bit is always like the integration with the API because you know you you write code normally.

You can write uh tests and all the rest, but when it's these kind of integration tests, you end up how are you gonna do mock Stripe's entire service?

It's and then you know

Will Vincent

Yeah, and your your volume I assume is uh a little bit more than Django's.

Mohammed Shamma

So yeah, well, we have also some bottlenecks.

Um you know, we 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

Mohammed Shamma

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.

Carlton Gibson

Right, okay.

Because it's quite heavy, right?

Mohammed Shamma

And that's kind of what led us to HTML.

Carlton Gibson

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?

Mohammed Shamma

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 um so yeah, we're we realized we can save a lot of debt or get rid of it.

Uh API debt um and uh what I call, I mean wetness when it comes to your entire presence, which is like, okay, got models, views, controllers in your back end.

Oh wait, get back to work, guys.

We gotta do it in the front end too.

Mohammed Shamma

And to me, that's wetness.

I'm sorry.

What what else are you gonna 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 this 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.

Carlton Gibson

I mean, f my sort of overla overriding impression with HTMX is it enables you to build something that's just an order of magnitude simpler than the SPA solution.

Mohammed Shamma

I mean exactly.

Uh one of our uh one feature of our uh giving pages 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 it's kind of hard with Amber using uh an API as and trying to do like some meaningful search against Postgres and full text, although we're really excited about the the new features.

Um 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.

I 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.

That's fine.

Carlton Gibson

No, you're doing fine.

It's good.

Carlton Gibson

It's you it's you know, good description of what's going on.

Um so you in so HTMX lets you build this kind of search API, what you just you do with a filter or something like that, that kind of thing.

Mohammed Shamma

Yeah, uh I mean, well, with HTMX, 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 gonna notice the thing.

Carlton Gibson

Yeah.

So I was gonna ask, how did you discover HTMX?

But Matthew, you were using Intercooler.

Matthew Newton

Yeah, so I think it was in 2018 that I had to build um a couple of sites in Wagtail uh that are now live on the web at innovators.berkeley.edu and founderspled.berkeley.edu.

And both of these sites had um some very minimal ajaxy um you know, slicing and dicing of content where like a user would check some boxes and get a different listing of items, you know, that sort of thing.

And um, back in my Drupal days, that sort of thing was very easy because there's a feature in Drupal called views, um, very different from Django views, but what what those do, it 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.

Um 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 uh I went looking around for something easy because I didn't want to have to learn React or View 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, you know, as I like to call it, um, but it did need that that bit of dynamic interaction.

Um so I found Intercooler and I did both projects with Intercooler, and I absolutely loved it with the the only caveat that I didn't too much care for the dependency on jQuery.

Uh 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 uh summer 2020, Carson Gross comes out with what I had been waiting for, and the only surprise was it had a new name.

Uh and so um started watching, you know, the the excitement grow around HTMX.

And then uh about a year ago, one of our colleagues uh needed to build a new homecoming site for Berkeley, and it needed some of that, you know, uh dynamic Ajaxy type uh stuff going on, and so I showed our colleague uh 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?

Uh and that worked for him, and so uh the homecoming site went live with HTMX.

And then uh last summer one of our editors told me that we needed a way to show all of Berkeley's various Nobel winners uh on our main campaign fundraising site.

Uh we're in the middle of a six billion dollar fundraising campaign at the moment, uh, and our our online efforts for that are at light.berkeley.edu.

So um there's a page on that site uh 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.

Carlton Gibson

And it's just a Django view behind the scenes.

Matthew Newton

That's all it is, yeah.

Mohammed Shamma

I I caught wind of this, and I was like, we have a weekly kind of developer round table, 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 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 uh what was weird is like it's one of those feelings where it's like this is seems w I w 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.

Carlton Gibson

But it kind of did it kind of did happen ten years.

There were, you know, there was Pjax and you know Turbo Gears and the other.

Will Vincent

Well, yeah, that's what Carson said.

I mean, he saw the capabilities for this, you know, at least that long ago.

Carlton Gibson

It was all there, and then like 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 these kind of

Will Vincent

DOM and

Carlton Gibson

it went all that way through the the the richer and bigger frameworks, and this kind of idea of oh I'll just send a little snippet and swap in.

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.

Will Vincent

Well, we should mention Carson is a alum of Berkeley as well, I believe.

Matthew Newton

Is that is that true?

Will Vincent

All right, I think so.

Yeah, I believe he also went to Stanford after, but um

one of those.

Will Vincent

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.

Uh do you use any related packages with your Django HTMX usage?

Matthew Newton

Um, you know, I I think I built that Nobel's feature before he released that package.

Um but I wouldn't have to do that.

Will Vincent

Yeah, it's recent.

It's this this year, I think.

Matthew Newton

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.

Uh basically just to give you um uh uh the ability to do like if request.intercooler, you know, in your views and make it very easy.

Um and so you know the the new Django HTMX gives you if if request.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 way of cracking that nut that I've been playing around with on my personal website is unpolyc.

Um that's also a really, really nice package.

And it takes a slightly different approach in that with HTMX, um, HTMX kind of assumes that you're gonna be pushing little HTML fragments, always fragments, um, 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.

Okay.

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.

Now 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.

Carlton Gibson

Yeah, it's very similar in that respect to I think the way TurboLeaks, 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.

Will Vincent

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, the D Lab, or any of these you want to give shout-outs to?

Mohammed Shamma

I mean, yeah, anyone who's obviously taken a class uh or a Python class uh 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.

Mohammed Shamma

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.

So um, and I think it's amazing, and they do a great job.

And yeah, they they host Django, and so uh there are definitely student groups out there who are hosting uh Django sites at the OCF.

And D Lab is uh is a great resource because it allows it offers uh Python classes uh 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 uh 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 DLab 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.

Will Vincent

Well that's that's a lot.

I mean, I know um UT uh is using Django because they're switching from COBOL to Django, and for many years they would train people.

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.

Will Vincent

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 um, I know this is not un unusual for Berkeley, but this is so yeah, not the norm.

You know, my business school, uh, and where I 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 you know, 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?

Mohammed Shamma

I know.

So no, and it 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 uh it's great.

Yeah.

Will Vincent

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.

Matthew Newton

The single biggest improvement that um 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.

Um, that had been a lack for a very long time.

And um they finally filled it in and did it in a way that's just gorgeous.

Um so uh that that was literally the the big flashing item on my boy, we we need this list, and and now it's checked off.

Will Vincent

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 C CMS was built in.

Um, 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 it's there for you if you need it.

Indeed.

Mohammed Shamma

Yeah, and um I have uh other Django apps uh that I work on.

One of them is our our integration with Salesforce.

And uh so you know, with it's imagine managing Salesforce data across departments and the entire campus and everybody's individual needs.

Uh 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, is and that's it.

And uh, but uh you know, one of the apps that I I maintain allows you to upload your own data, and then it gets merged with the central data, and it uses uh Django's salary 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 um get to uh enjoy or and get rid of, hopefully.

So yeah, um that's what I'm looking for.

Will Vincent

Well, Carlton, that was um came a little bit out of the survey, but you obviously worked a lot on the built-in Redis integration in 4.0.

Carlton Gibson

Yeah, well that was uh uh I mean directly out of the survey.

So you know we asked.

Will Vincent

Survey just came out for this year,

Matthew Newton

by the way.

Yes, yeah.

Carlton Gibson

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.

So we you know, Google Summer of Code project to bring that into into core, and you know, the Django Redis package will continue to exist and be able to go further and beyond you know, just um the sort of core um cache backend API, but you know, to have that option in Django itself rather than you know it was always like, oh, I need I need to use Redis.

What package do I use?

Carlton Gibson

And you spend a day searching it, and then two years later you're like, which one did I choose last week?

Yeah, right.

Okay.

Exactly.

Carlton Gibson

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 you can go searching for the more advanced options.

Mohammed Shamma

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 um an amazing.

I just I think it's magic sometimes.

Will Vincent

Can I maybe just ask as a final question?

Um, 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?

Mohammed Shamma

Yeah, it's it's definitely an afterthought after they've done their model and you know, uh write it written up their report and 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 I, you know, I it it's really just a matter of I think the fact that it it you know by virtue of being I mean, just so you know, I think it's the humanities students that are really gonna we're we're really gonna see a lot of change from uh their learning Python like like there they're there's just more of myself and Matthew you

know uh where where we didn't come from programming and and so it it you know we're not doing you know Heroku apps in our in high school and so you know I think they're gonna 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 are really good with Django and the simplicity of Django because I mean you know I have a 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 my just my first question why and and he was telling me all these things I was like but Django does that but Django does that and that was my my response each time and I'm not to say

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 uh I think it's that you know the do I need to what does get up and running really mean you know and so um 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 uh 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 Django does for you you it allows you to stay there and feel good about it.

I 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 uh it says yeah I've I've been there done that so uh and I like Django and so I

think um yeah

Will Vincent

well I think we all agree um uh 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

Mohammed Shamma

um I mean thanks for having us I mean I I was just trying to thank my team on Twitter for the I 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 gotta 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

Carlton Gibson

know it's also drive you off we took when we started off we we had two two kind of types of episode in mind one with you know talking

about contribu which contributors to Django but also Django in the wild yeah like how are people really using it and so for you for you to come on and tell us all about how it's just like yeah awesome so good and you know that the uh Mohammed 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 ex that kind of ex that punt you took on the on the framework has really pa

id off it's just like yeah this is this is why we do it.

And you know it's what Django is all about.

Mohammed Shamma

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

Carlton Gibson

so going crack open the Kool Aid now

Will Vincent

yeah I know oh man thank you both so much for taking the time yeah

thanks again guys this is

Will Vincent

really appreciate 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 chat Django on Twitter and we'll see you all next time bye bye

Carlton Gibson

join us next time bye bye