Django Chat

Django at UC Berkeley - Mohammed Shamma and Matthew Newton

Episode Summary

Mohammed and Matthew are software developers at UC Berkeley who use Django and Wagtail extensively. We discuss their programming careers, porting existing projects over to Django, and their excitement around htmx.

Episode Notes

Support the Show

This podcast does not have any ads or sponsors. To support the show, please consider purchasing a book, signing up for Button, or reading the Django News newsletter.

Episode Transcription

Will Vincent 0:05
Hi, welcome to another episode of Django chat podcast on the Django web framework. I'm Will Vincent joined by Carlton Gibson. Hi, Carlton. Hello. And today we're very pleased to have Mohammed Shamma and Matthew Newton from Berkeley. Join us. Welcome both.

Matthew Newton 0:20
Glad to be here.

Mohammed Shamma 0:21
Hey, guys. Thank you.

Will Vincent 0:22
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 HTML at Berkeley, and then found out you're using Django in a number of ways there. So we'd love to talk about that your background, 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 0:44
Mohammed, why don't you begin?

Mohammed Shamma 0:45
Alright. You know, I'm a product of the 80s, Apple to E generation, having it in grade school having like one computer in the classroom, suppose. And I was always familiar with basic, and obviously, all the number of video games. That's really why I had the computer. 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? I was like, called email, David, or whoever at 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, when the browser kicked in, I was mosaic and, 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 decided to head out west from there, I was at University of Texas, and then got accepted into grad school at Cal, UC Berkeley, and was the inaugural class of this basically, what's today the School of Information. And that was 99, when I graduated, and yeah, decided not to take a chance on the Bust. And so I played it safe with, you know, working at a bank as a programmer for a while, and then working as an IT auditor for Big Five, the big six firm at the time, and then decided to come back to cow where I just felt nice, happy and warm, fuzzy feeling there. And 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 I've programmed in several different languages since then, you know, and I love it. When when trade it for the world.

Carlton Gibson 3:21
What what is your current role? So,

Unknown Speaker 3:23
so I'm a technically a senior web developer for marketing and communications in UDR, which is University Development. Matthew helped me out here

Matthew Newton 3:37
and Alumni Relations, alumni,

Unknown Speaker 3:40
you know, it's the people who ask you for money hit you up for money. And yeah, I'm gonna get it for that one. But

Will Vincent 3:49
so your profit center, not a cost center at the University, though.

Unknown Speaker 3:53
Exactly. We're a support organization of the university, but it is our job to ensure that essentially, the, the representation of the university to donors and, and interested potential donors and alumni, as opposed to, like Public Affairs, which would target potential students.

Carlton Gibson 4:20
Okay. Interesting.

Will Vincent 4:22
More to discuss on that. But Matthew, we'd love to hear your so

Matthew Newton 4:26
our story, Mohammed's path and mine are similar in a lot of ways. 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 two E'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 when I graduated, 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 basically in a content factory at CNET. In San Francisco, which is still around, of course. And then after a bit, I landed a job at PC World Magazine, which at the time, was the most widely read computer magazine on the planet. Or at least, that's what we told people. And I wrote and edited there for a bit. But then when, bust happened, 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. 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 back end in VB script, or in J script, which was Microsoft's own version of JavaScript. So we went with J script. 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 from that role, I became first a freelance coder, and then worked for a couple of startups in the city. And then 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 utar. And I've been on the team with Mohammed and, and the rest ever since.

Carlton Gibson 7:36
Okay, that's, that's awesome. So we're lucky to have Matthew Jango chat. So how does Django fit into the story? Like, how did that become the? Is that the tech of choice? Is that all How did it become the tech of juice? Or how did you get to us?

Matthew Newton 7:50
Definitely the tech of choice in our department these days, I joined the department a little bit before Mohammed did. And at that time, we had probably about on the order of a dozen CMS spaced sites that were all in Drupal, and then

Will Vincent 8:10
not a dozen CMS and a dozen sites. And then

Unknown Speaker 8:13
we had a PHP legacy app at Cal, which is kind of a homegrown, mini social network that is still in existence. And then our department's biggest deal is, which is kind of the canonical way to give money to Berkeley. And when I joined the department that was a legacy ColdFusion 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 Mohammed to replace him. And then immediately we 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. Mohammed, you want to take it from there.

Unknown Speaker 9:05
I mean, I like sharing this story. It's a it's a funny story. So when I've, it's around 2001. And the alumni relate, I was working at the School of Business at the time, and I was programming in ASP, dotnet, ColdFusion, and Perl 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 that 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 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 the marketing back then. And So lo and behold, that I'm hired by Eudora, 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? I did not know that it lasted for so long.

Carlton Gibson 10:38
But the How did you go from? Well, we're going to get rid of it, then there's these different options out out of those why Python? And why J,

Unknown Speaker 10:45
I think the first question that we really tackled was, you know, do we want to be a cold fusion was obviously not not a solution going forward. And so that, 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. 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 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?

Unknown Speaker 12:03
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. 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 FizzBuzz examples side by side, and 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 seems like, you know, the right way to go.

Will Vincent 13:00
Can I ask what the timing was for this? Alright,

Unknown Speaker 13:02
this is roughly five years ago, five and a half years ago. 22 making these decisions? Yeah.

Will Vincent 13:12
So Django was what, like, 1811618, then that was my free 2.0.

Matthew Newton 13:17

Carlton Gibson 13:18
so already had the migrations and things like that. So I mean, yeah, he's talking about 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 Yeah,

Unknown Speaker 13:39
I was coming fresh from dotnet 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 dotnet MVC, I think, this is pretty cool. But where did it come from? And then I discovered, you know, so

Unknown Speaker 14:01
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. I'm really big on documentation. 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? The answer was there in the docs. And, and that was just an easy to find. Yeah, right. Yeah.

Will Vincent 14:37
I wonder if that I mean, Carlton, maybe you know, if that's in part because of the three founders, 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 in wanting to do Python, but also, you know, docks are important from the from the get go.

Carlton Gibson 15:05
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 got like the method signature, and you know what it does. But you've also got a more discursive document explains how you go about something, how you know, how the, the URL routing works, or, you know, how they form layer works, or how the template layer works, or whatever. So yeah, I think it's interesting. I think this is interesting, because it's not often that you get a team that are in a position that have experienced 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.

Unknown Speaker 15:55
We are deeply lucky in that regard. 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, we don't have technology imposed on us. We kind of get to choose what waters we swim in

Carlton Gibson 16:27
you five years into Django experiment. Would you say you're happy?

Unknown Speaker 16:31
Yeah. And and actually, let me just add that it's, it's, 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 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 space sites, which we do a lot of, then Drupal eight came out. And I built a site in Drupal eight. And 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 eight seemed to me to be a big backslide. And 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, 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 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 in 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's 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 defined 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 will be entirely on Django and wagtail. For for all of our stuff. And we'll see you all happy, very happy. 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 sack

Carlton Gibson 19:59
because that's the thing with CMS right is that, like you're building an interface for a content creator or designer, and they have to use that they have to live in this interface.

Unknown Speaker 20:07
So, right. And 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 CMS 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 seven 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 became obvious that wagtail was where we wanted it to be. It's just a better experience all around for everybody. Okay.

Will Vincent 21:03
That timing is pretty good. I mean, coming to Django, Adam, it's relatively mature point, and then wagtail as well, and we had time 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 a wave Are you writing?

Unknown Speaker 21:21
Yeah, I remember listening to that show with Tom Dyson. And he said, he talked about how torch box had once been a Drupal shop as well. And he had a quote on the show that just resonated with me very much sure. 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.

Will Vincent 22:00
Can we talk Muhammad about the Giving page that you worked on? Because in part, Carlton just isn't live? Carlton updated the Jango zone? donations page? So I'm curious, I guess that depends on when you did that. But what tools you used and challenges you faced?

Unknown Speaker 22:17
Yeah, we went live with it in October 2020. And, yeah, it's been, I mean, as far as we're concerned, running without any kind of load issues. And I remember, you know, there were issues during December timeframe with ColdFusion. Because that's when most of the gifts came in. But we also switched hosting, we were hosting on local VMs. And with Django, we decided to go with Google Cloud. So as well as with Postgres in Google Cloud. And, I mean, we have a great DevOps guy, Rob. Hey, Rob, thanks for everything. He's the one who did the hard, you know, like 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, like, decisions that we're allowed to just make. And we're very happy with it. Yeah, it has its ups and downs. But I don't think there's any, I don't think it's really that much of a difference. And so, yeah, in terms of that, it's been a huge improvement. And, I mean, as far as doing the giving part, I mean, it really have to be like, I don't know, what did you find the hardest part of developing? Which given site was this for Django

Carlton Gibson 24:06
do I think was referring to the just the donations page on the on the Django Django project comp, 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 cold normally, you can write her tests and all the rest, but when it's these kind of integration tests, you end up going to do mock stripes entire service, it's, and then, you know,

Will Vincent 24:31
yeah, and your your volume, I assume is a little bit more more than gencos. So,

Unknown Speaker 24:36
yeah, well, we have also some bottlenecks. You know, we were still a state institution, and we have to follow the rules sometimes, and that's with central accounting, and they have yet to approve anything other than CyberSource. And not just any CyberSource but CyberSource is, what's it called? I forget which product, it's like their first product. So we literally have to redirect the person to this CyberSource branded credit card page, and then it gets redirected back. And so we had to do a lot of testing there. But it works. And especially with a, an ember front end. That's hosted by a Django container that's requesting API's from a separate Django API instance. Yeah, it all seems to work. And the only thing we're kind of unhappy about really is Ember fry. Okay, because it's quite heavyweight. And that's kind of what led us to HTML. Okay.

Carlton Gibson 25:45
So that's this is talk about Ember momentarily, because it's quite, I mean, it's a full, single page application type framework. It's, I mean, it's powerful, right? But

Unknown Speaker 25:56
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. 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're, 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 got to do it in the front end to slow tube. And to me, that's wetness. I'm sorry, what are you gonna call it? So? It's, and we're seeing a lot of, you know, just how it's also Ember 3.13 dot 10. And it's not octane. And had we started with octane? I don't necessarily think we would be here maybe. But, you know, that's, we are here now. And HTML is here now. And so it's given us the chance to save well, maybe this the solution wasn't 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 up a bit. I mean,

Carlton Gibson 28:05
my sort of overlooked overriding impression with HCM X is it enables you to build something that's just an order of magnitude simpler than SBA solution.

Unknown Speaker 28:15
Exactly. One of our one feature of our 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, you know, brain science, you know, keep going, keep going. And so in order to search for, you know, what you're looking for. It's kind of hard with Ember using an API s and trying to do like some meaningful search against Postgres and full text, although we're really excited about the the new features. I believe what we just recently upgraded to what we upgrade to Matthew 3.2. Yeah. And so it's my job to start testing out the new 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 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. You

Carlton Gibson 29:41
know, keep doing fine. It's good. It's it's, you know, good description of what's going on. So in so he makes lets you build this kind of search API, what you just use with a filter or something like that, that kind of thing. Yeah.

Unknown Speaker 29:55
I mean, well, with HTML. 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 HTML, you know, kind of on the side, 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 HTM X way. And it's simpler, a lot less code. And your your I mean, it really the user, it's transparent. I mean, they're not going to notice a thing. Yeah.

Carlton Gibson 30:48
So I was gonna ask, how did you discover he makes me Matthew, you were using intercooler?

Unknown Speaker 30:53
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 innovator stop And founders And both of these sites had some very minimal, a Jaaxy. 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 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 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 half the content change. And it does all the Ajax for you. So in the Django and wagtail world, I didn't have an immediate analogue 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 view or something like that in order to just do this little bit of Ajax see stuff. Now I wasn't building a web application. This was a brochure where type of site as I like to call it, but it did need that that bit of dynamic interaction. 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. 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 started watching, you know, the the excitement grow around htm x. 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 II type stuff going on. And so I showed our colleague, James Faris, what I had done with intercooler. And I told him htm Maxis, the new intercooler, why don't you give this a shot, and that worked for him. And so the homecoming site went live with htm x. And then last summer, one of our editors told me that we needed a way to show all of Berkeley's various snowbell winners on our main campaign fundraising site. We're in the middle of a $6 billion fundraising campaign at the moment. And our our online efforts for that are at light So there's a page on that site that you can get to by going to, you'll get redirected. And it's just an interactive listing of all the faculty and alumni who have won Nobel's over the years at something people I think, and you can switch up the listing by choosing you know, do you want physics, chemistry? What decade did they When were they alumni or faculty did it with htm X? And it couldn't have been easier? I mean, it literally couldn't have been easier,

Carlton Gibson 34:26
faster. And it's just a Django view behind the scenes.

Matthew Newton 34:30
That's all it is. Yeah,

Unknown Speaker 34:32
I caught wind of this. And I was like, we have a weekly kind of developer roundtable. And I was like, Matthew, You got to demo this. You get we need to. 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 seems? Well, I feel like I should 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 I was like, wow, okay, late to the party. But great, let's, let's get started. But he

Carlton Gibson 35:18
kind of did it kind of did happen. 10 years there were, you know, there was pee jacks, and, you know, TurboGears

Will Vincent 35:26
Yeah, that's what Carson said. I mean, he saw the capabilities first. You know, at least that long ago, but it was all there.

Carlton Gibson 35:33
And then that, you know, I don't know, it went jQuery, and then backbone, and then, you know, often backbone, like Ember came along, you know, and these these kind of virtual DOM and went all that way through the richer and bigger frameworks. And this kind of idea of, you're allowed to send a little snippet and copy I mean, jQuery load, right jQuery dot load, where you would get an HTML snippet, and it would put the HTML Snippet in the DOM, where the selector that was this a long time ago, you know, yeah, so it kind of did, but for some reason, the fashion went, I don't know, the other way,

Will Vincent 36:10
when we should mention, Carson is a alum of Berkeley as well, I believe.

Matthew Newton 36:15
Is that so? Is that true? All right.

Will Vincent 36:17
I think so. Yeah, I believe he also went to Stanford after but,

Matthew Newton 36:21
uh, one of those.

Will Vincent 36:26
Yeah, what do you use? We just interviewed Adam Johnson earlier, and he has the Django HTML package, as well as some other ones. Do you use any related packages with your Django HT Max usage?

Unknown Speaker 36:40
Um, you know, I think I built that Nobel's feature before he released that package.

Will Vincent 36:47
But yeah, it's recent. This year I think.

Unknown Speaker 36:50
But I would absolutely going forward. And 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 the ability to do like, if requests dot intercooler, you know, in your views make it very easy. And so you know, the new Django HTML gives you if if requests dot htm X. Yeah, I think that. Another thing I'd like to point out with respect to all this, the explosion of the HTML over the wire stuff that's happening in the Django universe another another way of cracking that nut that I've been playing around with on my personal website is unpolished J S. And that's also a really, really nice package. And it takes a slightly different approach in that with HTML X. HTML is 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 requests dot htm x, because you need to know whether you're supposed to be sending a fragment or the full page. Whereas with unpop, Ollie, the, the assumption is that you're getting a full page every time. And so on first page load, you get the full page. And then unpolished 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 logic in your view, that 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 say, it's super simple, you just basically layer on Poly on top of it. And you let on Polly take care of the rest. It's really, really cool.

Carlton Gibson 39:05
Yeah, it's very similar in that respect to think do I turbo? That's correct, 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. Indeed, Eris.

Will Vincent 39:22
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?

Unknown Speaker 39:35
I mean, yeah, anyone who's obviously taken a class or Python class at UC extension has definitely been told go check out Django or even take the class and the student run. I mean, I what I found was so interesting when I came to Berkeley was like, the students run the computing facility. Okay. That happens a lot at first By the way, it does not happen at University of Texas, at least it didn't 20 years ago when I left. So. 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 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 in the natural sciences student and, and, and data science. And so, D Lab 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 those are the ones that like are open, you know, and they're actively promoting Django. Yeah. And so I hope I want to see more of it, you know, at Berkeley, and I know, there is more, I just, you know, you know, if you're using Django at Berkeley, say it tweet it. Yeah.

Will Vincent 41:33
Well, that's, that's a lot. I mean, I know, UT, is using Django because they switching from COBOL to Django, and for many years, they would train people, they like, we interviewed people a six month program, especially women with that transition. So they're at an in between place with that. But 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 you can through the School of Information. So I know, this is not an unusual for Berkeley. But this is so yeah, not the norm, you know, my business school. And were at 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 or like, what's Python?

Unknown Speaker 42:35
I know. So. Now. And, you know, of course, we, 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 yeah, we we feel like we finally in our careers chose correctly. And, and, and it's great. Yeah.

Will Vincent 43:04
Are there any features or things you like, improved? Now that we're talking about, you know, wagtail, Django, HTML, right? I mean, because there's always things that can be improved. just specific to your usage at Berkeley,

Unknown Speaker 43:15
the single biggest improvement that 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 the big flashing item on my boy, we need this list. And now it's checked off.

Will Vincent 43:52
It does seem just in the ecosystem of Django, you know, with Django, and then rest framework in wagtail. That covers so much of what Django needs because sometimes people say when they come to Django, they say, Oh, I thought API's was built in or I thought a C, CMS was built in. Because that is and some other frameworks, but you know, thanks to those two projects, still going on is going still going pretty strong. It's there for you if you need to,

Unknown Speaker 44:17
indeed. 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 is and that's it, and, but, 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 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 where and get rid of hopefully. So yeah, that's what I'm looking for.

Will Vincent 45:23
Oh, Carlton, that was came a little bit out of the survey, but you've obviously worked a lot on the built in Redis. Integration in four Oh,

Carlton Gibson 45:32
yeah, that's a, I mean, directly out of the survey. So, you know, our story

Will Vincent 45:37
just came out. Yes. Yesterday,

Carlton Gibson 45:42
what cash backends do you use, and everyone was using Redis. And so we've got three Memcached, backends, and no Redis back end. So, 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 the sort of core cash back end API, but you know, to have that option in Django itself, rather than, you know. It was always like, oh, I need to, I need to use Redis, what package do I use? And you spend a day searching it? And then two years later, like, which one did I choose?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 know, yeah, you can go searching for the more advanced options,

Unknown Speaker 46:34
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.

Will Vincent 46:56
Can I maybe just ask you the final question. So at Berkeley, the data science web thing, it's feels like within the Python world data sciences, 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?

Unknown Speaker 47:14
Yeah, it's, it's definitely an afterthought, after they've done their model and, you know, write written up their report and presented their paper and, and so and it's not always Python, it's our or something else. And so, but I think, you know, I, it's really just a matter of, I think the fact that it is, you know, by virtue of being, I mean, just so, you know, I think it's the humanity students that are really gonna, we're really gonna see a lot of change from their learning, Python, like, like, there's more of myself in math, you know, where, where we didn't come from programming and, and so, it, you know, we're not doing, you know, Heroku apps in our 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 pythons 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 in flask. And I was like, why? And that was 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 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 HTML exe. 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 Django does for you. It allows you to stay there and feel good about it. I I mean, 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, I'm, you know, I 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. And I like Django. And so I think, yeah,

Will Vincent 50:30
well, I think we all agree. Cool. Yeah. I think we're, we're pretty much out of time. Now. Is there any last things any shoutouts or things you want to call attention to? I know, You've mentioned a number of things at Berkeley, but anything else while people are listening?

Unknown Speaker 50:47
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 were 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. It was just one of those things. And then when you guys caught wind of it, I was like, seriously, and and even Matthew was surprised. And and so I was like, you know, yeah, let's, let's get on it. And let's talk about it.

Carlton Gibson 51:21
Yeah. It's also revealed we took when we started off, we had two kind of types of episodes in mind. One was, you know, talking about contrib, which are contributors to Django, but also Django in the wild. Yeah. Like, how are people really using it? And so few few to 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? 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 punt, you took on the on the framework has really paid off. It's just like, Yeah, this is, this is why we do it. And yeah, it's what Django is all about.

Unknown Speaker 52:04
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 fuck, indeed.

Carlton Gibson 52:17
Okay, get crack open the Kool Aid. Yeah.

Will Vincent 52:23
And thank you both so much for taking. Thanks again, guys. This is 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 Django, chat Django on Twitter. And we'll see you all next time. Bye bye.

Carlton Gibson 52:37
Join us next time. Bye bye.