← Back to Show Notes

Transcript: Django 20 Years Later - Adrian Holovaty

Will Vincent

This episode is brought to you by Six Feet Up, the Python, Django, and AI experts who solve hard software problems.

Whether it's scaling an application, deriving insights from data, or getting results from AI, Six Feet Up helps you move forward faster.

See what's possible at sixfeetup.com.

Hello, welcome to another episode of Django Chat, a podcast on the Django web framework.

I'm Will Vincent with Carlton Gibson. Hey, Carlton.

Hello, Will.

And we're very pleased to have Adrian Halavati, who is the creator of Django, up here. Welcome, Adrian.

Hi, thanks for having me.

Carlton Gibson

No, thanks for having me. We've been trying to get you for years. I'm really excited that you could join.

Adrian Holovaty

I finally made the room in my agenda.

Will Vincent

That's right. Well, maybe I'll just quickly jump to, so it's been over 20 years since you first created it.

What have you been up to since then, right? I think mainly this SoundSlice project, or what would you like to see?

What would you like to say about, you know, you, what you've been up to these days?

Adrian Holovaty

Yeah, these days.

Well, SoundSlice is my day job. I've been working on it full-time since 2012.

It's no longer safe to call it a startup. It's just a business, and it's a way for people to practice music.

It's used by all sorts of musicians to practice, to teach, to transcribe stuff.

It's basically a web-based interactive sheet music platform with all sorts of stuff.

So that's how I make a living, and yeah, there's no end in sight.

It's the project that keeps sprouting new features and new challenges, and it's super interesting.

It's a great combination of my two parts of my life, music and computer programming.

Will Vincent

Right. I mean, you did call it Django after Django Reinhardt, so it's not a new thing.

I guess that would be a question. Which came first, jazz guitar or programming?

Adrian Holovaty

Oh, interesting. Well, it depends on your definition of programming coming into my life, because I did some as a kid, just copying code from a magazine and putting it into my Commodore 64.

I don't know if that really counts.

My first big thing was a calculator program for the TI-85 in high school math class. It was called AMAP, and it did...

Basically, all the formulas, and basically, by the time I graduated, everyone in the advanced math classes had that, and I became obsessed with making it more optimized, adding features, removing bytes.

At some point, I found out that the size of the variables influenced the size of the ultimate compiled code, so I renamed every variable to just a single character, and this is, I don't know, 15 or something.

Oh, yeah.

So that was probably my first programming thing, and I was a guitar player, but not a jazz guitar player, so I guess programming came first.

Carlton Gibson

15 years old, you've got the memory to recall what variable A and variable B and variable C, what they sort of refer to, right?

Adrian Holovaty

Yeah, I mean, I couldn't do that anymore. I forget if I had it written down or something, but I still have it, actually. It's right here in my desk.

Good. Nothing goes to waste, right?

85 calculator. So for those of you watching, boom.

Wow.

It's the best AMAP on it. I don't know why it's so at the ready. I just have it on my desk. It's on my accoutrement.

Carlton Gibson

I guess the Python on the latest version of that is right there.

Adrian Holovaty

Yeah, I heard that a few years ago. That's awesome. Because this thing was some bastardized version of... It was some proprietary Texas Instruments language, and they still have the...

Actually, the manual on my bookshelf over there. Speaking of weird things that I've kept around for decades.

Will Vincent

Wow. And yet, I think you didn't formally study computer science in college. Is that right?

I did almost...

Or did you turn it off?

Adrian Holovaty

Okay.

So I studied...

What did I study? C and assembly language, and then there was a web development class that I took that focused on Perl.

And so my original web development programming was with CGI and Perl.

Yep.

That must have been 2000, maybe 1999.

Will Vincent

Wow. And then, was it 2003 or 2004 when you started on Django internally?

Oh.

Because it came out... I know it came out, or it was released in 2005, so it must have been at least 2004, but maybe 2003 when you started working on it.

I would have...

Adrian Holovaty

I have to look that up. I don't want to just say one of the dates, because I don't know for sure.

But yeah, that's the right ballpark. One of those two years.

Will Vincent

That is kind of wild, though. Three years after your first web class, you switched to Python, which at the time wasn't what it is today.

And you're like, let's just do a web framework.

Because I guess PHP was the frustration, right? Like, that was kind of the default, and you had experience with PHP.

Adrian Holovaty

Yeah, I was using PHP.

I switched from Perl to PHP at some point, because that was kind of the trendy thing at the time.

It was the new hotness, right?

It was the new hotness.

And yeah, then Simon Wilson and I were big fans of this blogger called Mark Pilgrim, and he wrote a lot about Python around that time, and actually released a free online book called Dive into Python.

So that influenced us to just try playing around with Python.

And we really loved it, and just started building stuff in it to the credit of our boss, who really didn't mind as long as stuff got done.

So that's something I'm eternally grateful for, is that sort of hands-off approach by management.

His name was Rob Curley, and his famous quote was, I don't care how the sausage gets made, as long as the sausage gets made.

Will Vincent

I mean, that's the dream for any programmer, I think.

Well, Carlton, I have a long list of questions.

You jump in here.

Carlton Gibson

Yeah, well, no, I want to ask a little bit more about SoundSlice and about the underlying.

So it's all built in Rust, right?

No, I mean, you built with Django in the backend?

Not Rust.

Adrian Holovaty

So all the backend is in Python, and the web stuff is in Django.

The most interesting, well, I take that back.

The front, I was going to say the most interesting, but I actually don't take that anymore.

The front end is all in JavaScript, of course, because that's the only game in town.

And it's, the interesting thing about the front end is that it's an entire sheet music rendering engine in JavaScript.

So what that means is we take the semantic data, like the pitch C followed by the pitch B-flat,

and we actually turn that into graphics, like, you know, the dots and the lines and all that stuff.

So that's, and it's responsive, so it'll fit, it's dynamically generated for whatever your screen size is,

because a lot of musicians are using smartphones and tablets these days.

So that's, that's one, that was the original interesting bit of the project.

Unfortunately, not Python, because you can't do Python, or at least I guess not these days.

You technically can with some really weird hacks, but yeah, it's all JavaScript.

And then on the backend, we do have a new interesting thing, which is sheet music scanning.

It's, it's the basically OCR, but for sheet music, it's called OMR, optical music recognition.

Where you can upload a photo or PDF sheet music, and we'll figure out the semantics of it and reconstruct it.

So you can hear it, you can edit it.

And yeah, you get the, you know, the fungible data.

And that's all using our custom machine learning stuff in Python.

No Django stuff, really.

Oh, I guess there's Django stuff, because it's, there's like a web interface to it.

Carlton Gibson

But Django would be just the web layer, right?

The sort of interface layer, the view layer.

Adrian Holovaty

Yeah, yeah, exactly.

Well, I mean, we store data in Postgre and access that with Django models.

So, I mean, it's not just the web stuff that's Django, but yeah, it's, it's all Python behind the scenes.

Carlton Gibson

Okay, so I've got two questions.

The first one would be like, because now 2012, you said you started it.

So that's like 13, coming up 14 year old project.

And I guess I wanted to ask you about stability and maintenance, because one of, you know, one of big Django's big selling points.

You know, at least in the last, say, five to 10 years of its life has been about, you know, the stability and the ease of upgrade.

And, you know, as a, as a, as someone running a business using it, I mean, I wonder what your thoughts there are in one.

Adrian Holovaty

Yeah, obviously it's been, I'm happy that it's, the Django is stable.

I mean, at some point it started doing everything I needed and that's sort of around the time where I decided, you know,

I, I don't really want to spend hours of every day on this anymore because for me, Django was always about a tool that helps you build cool stuff as opposed to, oh, I'm going to work on this quote unquote, academic project of making the best possible framework of always, it was always just a means to an end for me and it continues to be so, uh, so yeah, I'm glad it's stable.

I, uh, it's, but yeah, again, at some point it.

Started doing everything that I need and we, you know, we upgrade to new Django versions and occasionally there's something that, that will find interesting.

We being my colleagues, Joseph and Edward, that something that we'll find interesting.

But, uh, yeah, I mean, I was cool with it a long time ago, back in 2012.

Will Vincent

That's a good selling point, right?

Cause I, you could understand maybe you're like tired of it.

In a way.

Right.

When having worked on it from the beginning, but no, it's, it's great because it just gets out of the way.

Adrian Holovaty

You don't have to worry about it.

You don't have to learn something new every six months.

Like it is if you're on the JavaScript, JavaScript front end framework train, which is another sort of, uh, passion of mine is not deliberately not using all JavaScript frameworks, no react, no angular or whatever the heck the new thing is.

Just vanilla JavaScript does the job and it's fantastic.

Frankly, there, there, I have a whole theory on that, which you may have to save for another podcast.

Carlton Gibson

Oh, I don't know about that.

We'll, we'll have it out of you yet.

But can I ask you then?

Cause in the last couple of years, there's been this big, um, HTMX has jumped onto the scene and there's been this big sort of swing back to the server render terms and multiple pages instead of single page applications.

I was wondering if you, you know, you've, you've obviously seen that going through and if you've had thoughts.

Yeah.

Adrian Holovaty

Does that fit your way of thinking or I have totally sidestepped all I sidestepped that entire pendulum swing from client side rendered to server side rendered.

I've just always done server side rendered.

It's always been really good, really fast.

It's what browsers are optimized to work with.

I don't, I do not understand why you need a virtual DOM.

That is ridiculous.

So, uh, yeah.

So I haven't used that, that the new thing, uh, but I, I feel like I don't need to, because the way that we write JavaScript at sound size is just so dumb and simple.

And I mean, dumb and as a good thing, there's, there's no abstract.

See the, the, a big difference between front end and backend frameworks is that on the front end, you get penalized for abstractions.

Because you get penalized because the user has to download more and you get penalized because the user has to run more logic on the backend.

You don't have to worry about that as much.

So in, in terms of Django stuff, it's totally fine for there to be abstractions and various layers and stuff.

But on the front end, that to me, that does not make sense.

And it's just so much better if you are as close to the metal as possible, to the extent that we can call JavaScript metal, which really shouldn't.

But, you know, remove as much abstraction as possible, basically is the idea for, for JavaScript.

Carlton Gibson

So the last couple of years, you've just been like, oh, welcome back in, you know, as you, as the folks come back into the room, you've been, you've been a firewall.

Honestly, I, I go back and forth about whether I even care.

Adrian Holovaty

Yeah.

The nice, a huge luxury of having our own business with just three developers is we don't have to worry.

We don't have to worry about the stupid trends because I mean, one, one, there's one legitimate reason you would need to worry, which is hiring, because often it's easier to hire if, if you can target a specific framework and you can, you know, make sure that it's sort of a way of pre-qualifying potential coworkers.

But for us, we just don't care.

And, and I wish more people would do that.

And, and the philosophical question I have.

That I've been battling with for years is to what extent should I care about that publicly for a while?

I just sort of was in my own little cocoon and was happy to watch the world burn in terms of easing such, such stupid JavaScript stuff.

But at some point I realized it's actually detrimental to me indirectly because the more these frameworks get used, the crappier the web gets, things get bogged down.

Pages take forever to load.

It's just a crappy experience.

And it's because to, to some extent of these JavaScript frameworks, at some point I decided maybe it is worthwhile to be a little bit more public about why using these JavaScript frameworks is not good.

Even if you don't use them yourself, you're affected by them negatively because they sort of impact the reputation of the web at large.

And if you're building.

A website, you're indirectly impacted by that.

Will Vincent

So you never felt the need to have iOS or Android apps then I think goes without saying because Carlton, I mean, I'll say Carl Carlton has, I think, made his career doing the back end of that.

And then you've dabbled a little bit in the front end, right.

With various projects recently too.

Carlton Gibson

Well, me, I've been using, um, HTML.

X.

And Alpine and it was when I discovered them because I, I, you know, I used to do some jQuery and a teen, you know, teeny bit of backbone when that first came around, I was like, yeah, this is nice.

This is okay.

And then for me, the whole world just went mad and I was like, ah, I was busy doing iOS stuff.

So I couldn't keep up with, you know, all the, all the JavaScript frameworks.

And then, um, I've been using Elm, which I really enjoyed for the sort of functional nature.

And that was, that was quite good fun.

Um, but then when I found HTML, I was like, oh yes, because it goes back.

To doing it in the web.

And yeah, you haven't used HTML per se, but you've been doing the same, you know, the same kind of thing when you yourself by the sounds of it.

And it, it really went back to me to like kind of how the web wants to work.

And it was, it fitted Django's past.

And so very well, cause it was, you know, just make a post request, let's make a get request, just make a delete request, whatever it was.

It was with the grain of the web, which is something that I've always said about Django, like Django has got a grain.

If you just go with it, it makes life very simple.

It's when you try and fight the grain, that it's becomes more difficult.

Apparently.

Yeah.

Yeah, totally agree.

Will Vincent

Well, so you, you wanted to talk about native apps versus the web.

I was just teasing Carlton cause he, he spent some time, um, even on some individual projects.

I mean, button, we can say it's name, right?

You were doing some stuff with, with apps, but now that you have full, full choice with what you're doing, it's like, you don't need to mess around with that.

Carlton Gibson

I liked what you were saying, Adrian, about, um, you know, just being a small shop with the three of you, you can not care.

You can, you know, you almost, I, I make the joke about being high.

up the mountain hurting my goats you know i'm just i mean but there's this tension between

um wanting to try the new things wanting to keep up wanting to you know just go with the state of

the art and develop versus the stability of known and known tools that really do do the job and so

rarely for me does a new tool actually improve it yeah i would i would maybe push back on the

Adrian Holovaty

premise of that statement which is that new equals state of the art that's not necessarily true

Carlton Gibson

no exactly exactly it wasn't i wasn't it's that tendency though oh we must check out this we must

check out that to otherwise we're getting behind somehow well with that said i did have a question

Will Vincent

for you adrian so if you had to do a new web web framework in python today is there any bit of

django that you go i might change that there must be something yeah the fact that the settings are

Adrian Holovaty

global

it's i think it was a bad design decision i would find a better solution for that i probably

would have like a settings object instead of just having it in a module

a bunch of global variables within the module and the whole setting the django settings module

environment variable is it makes things awkward in certain situations i would try to find a better

way of doing the things that that was supposed to be doing and i would try to find a better way of

doing things to solve in terms of the nitty-gritty of views url patterns models templates

views i think are really good if anything i would not have created generic views because i think

that set a weird messed up expectation with people that that was a good thing to do and in fact i

think they're they're not worth the

mental complexity whenever you work with them because you have to hold so much in your head so

much more than if you're just doing a writing it out from scratch i often think about the you know

the the physical work of being a programmer is so easy compared to anything in the real world

compared to being a plumber electrician you get to sit at your desk and the the extent of your

movement is your fingers so for program for programmers to be you know be able to do that

up in arms about not wanting to type a lot that argument does not resonate with me it's i would

all i would nearly always rather just pay copy and paste some stuff than have abstraction for

the sake of abstraction and i think that's what we had with jango's generic views you just have

to hold too much in your head but if you just have all the code written out it's so much clearer and

easier to understand and more maintainable

Carlton Gibson

so that last one regret is sorry go ahead that last one it's more maintainable it's like when

you come back to read it and if you if you have written the whole method out by hand it's really

easy to make the one time edit whereas if you just use the generic views and you've perhaps

overridden one class which is a one-line hook and it is all where does that go and you have

Adrian Holovaty

to go and look it up that's that can be taxing yeah yeah yeah so yeah that one um what else the

i think the template language there's some fundamental limitations to the template language

uh i remember emailing with armin who made jinja i was emailing with him years ago and asking well

what would it take for us to benefit from the jinja optimizations and you know all the stuff

that's better about it and integrate that in the django and he did a bunch of research and

just decided you know there's some fundamental problems thus it can't be done so i would want

to fix those fundamental problems so that we can you know benefit from uh the jinja approach to

things and but otherwise i think we got a lot of things right

and i don't mean that in a tooting our own horn way i just think like it it's fine uh

Carlton Gibson

yeah um well it's not a bad not a bad not a bad scorecard 20 years on i'd say

yeah exactly what i like about your answer there is all the things you picked to kind of

fine detail thing like you know the settings yeah okay it's not yeah i get it it's not

architecturally fine but it's not architecturally as good as it can be but it works it's not that

much of a trouble you know you need to put it somewhere um you know complaints about the generic

views that kind of you know standard conversation a django meetup that's okay you know we can live

with it um there's nothing fundamental right and as will says 20 years later that's that's perhaps

Adrian Holovaty

why yeah but i mean the huge caveat is that uh i and simon and jacob and all the original

contributors wrote this to fit our way of thinking so i'm one of the worst people in the world to ask

about this because it's you know

it's inherently my way of thinking so uh yeah so it's it does it works the way i think it should

Will Vincent

if i could extend that so what was what didn't fit your way of thinking about maybe php

in particular right like what caused you to say you know what i'll do my own

version there must have been some frustration separate from just

the language and the approach that the frameworks at the time took

Adrian Holovaty

oh interesting well the

the approach with php was that the code was littered in the template

and i know you can have some discipline and not do that but i'm pretty sure that's how we did it

is just having dot php files that are basically a mixture of html and php code

and that is really hard to maintain that's probably one of the biggest things

yeah honestly i don't remember you'd have to interview two thousand two

adrian for that one

Will Vincent

this portion of django chat is brought to you by six feet up what's stopping you

maybe it's an application that won't scale or an ai initiative that just isn't delivering

that's where six feet up comes in with deep expertise in python django and ai

they solve hard software problems modernize platforms and get teams to market faster

their impact speaks for itself automating healthcare pipelines for hospitals

helping nasa explore pluto building severe weather prediction tools and applying ai to

connect farmers with vital crop data when the stakes are high and the problems are hard

six feet up is the partner that delivers see what's possible at six feet up.com

Carlton Gibson

back in the day that was glorious to a sort of certain period you know the first the first

few days of a project that was just wonderful and then

Adrian Holovaty

yeah and you know there's something i like about it which is it's so accessible to people

you don't have to have a phd in computer science to just edit a php file

it's so easy to deploy just throw it on a server that has my php boom you're done

Carlton Gibson

there's some advantages for sure yeah i mean to go back to the way you you think and like

you know i will talk about the django book that wills resurrected this last week that you wrote

it's how i learned django but one of the things i really liked about the template language

was coming from php was the discipline it forced you know it had loops it had conditionals but it

didn't let you just dump your business logic in the template and you know often people will come

on the forum and they'll they'll be want to you know add some much more complicated behavior to

the template language it's always the same old hands going no no no we like it how it is we like

it do a template tag you know keep it out yeah well i mean you can use whatever temple language

you want obviously but it is it was about that um way of thinking about it i think you know

reading the django book that you and jacob did was to learn django that was like okay yeah this is

Will Vincent

the way to think about it well hey you pulled it okay pull it up yeah so and this ties in i think

to a question about just community but you and jacob wrote the original django book which is

now up at django book.com um that obviously helps i think to have a free good book on the community

right this is still an issue for any any framework is like what's a good free resource to help people

out

Adrian Holovaty

. Well back in the day i remember there was a lot of hesitation from book publishers to write a book

about django because they considered our docs so good and they thought it wouldn't be a commercially

viable idea to have a book because the docs pretty much said it all.

Carlton Gibson

Hmm i've got a question right there about the because everyone the django docs are

you know objectively very high high standard but there's often um

can

there's often like a desire for them to say a lot lot more about how to use django and strategies and

the more kind of discursive um content which it's interesting whether we have the capacity a to write

b to maintain whether the docs are the right place for it or where the books are you know books and

courses are you know the sort of extra resource resource that you need alongside kind of more

solid reference docs and what you've done.

what you feel about that yeah i don't have a strategy another way of phrasing it is why

isn't the django book just in the django docs why is it a separate thing well i if i remember

Adrian Holovaty

correctly a couple of the chapters were taken from the docs and and edited for sure and expanded

but i think we even put some back into the docs yeah i i could see an argument even if i didn't

yeah i i could see an argument either way i could see an argument for

uh giving a commercial incentive to authors because writing a technical book is so much

work for so little money that maybe they deserve the the money they actually can earn from it

uh but at the same time if it's an open source project the docs you know

maybe should include as much information as possible and maybe the biggest limitation is

just making sure that they don't go out of they don't go out of date this is something i face with

soundslice because we have a very extensive help section hundreds of pages and it's there comes a

point where anytime you make a feature change you start to groan a little bit because you're like

remembering all the documentation pages you need to update you know the hardest thing is the

screenshots yeah right this is easy to edit but the screen shots are the hardest things to edit

the screenshots oh and sometimes we have animated gifs with you know showing parts of the ui and you

have to redo those that's why we basically stopped making youtube videos because like that goes all

out the window once you change anything just as an aside i think videos it's it's so much

better to make instructional content in text than in video for yeah with the caveat that there's

certain things like when if you actually need to see something like some

sort of home improvement obviously it's better to have a video but in general i think that's

something that's changed and changed in the world over the last few decades not necessarily for the

better is this expectation that you search youtube first like my son who's 14 he uh had a task and

i asked him to look something up and he just immediately went to youtube to look it up even

though it's like something that a single web page would have very easily answered so anyway long

story short

Will Vincent

how why am i even talking about this no i mean this i mean i i agree like i've written books too

you know but it's i have a soon-to-be 13 year old you know she doesn't she doesn't use google at all

like she just uses llms actually no because i don't let her use youtube at home so you know

some of this has just been negated by the fact that yeah llms like in the most recent django

survey asking how people found and learned django so the docs i think were seven years old and

seven years old and seven years old and seven and nine percent and then tied at 38 was stack

overflow still though that will probably decline youtube and um ai meaning like chat gpt so i would

strongly suspect that you know everyone just goes to an llm now so that that's sort of the thing

like obviously i'm i'm biased towards text because you sort of lean in you can take your time you're

not stuck on someone else's schedule but everyone's just like what's what's the economic incentive for

text

when you don't even get attribution anymore you know so for me and any other technical book author

we've all seen since around 2022 when something happened just traffic sales fall off a cliff so

you know i mean and more generally too if you think about even just the underlying economic

basis for the web you know what's the point of you know affiliate affiliate links like you know

why review 10 great hiking backpacks you know it used to be if you ranked you could get

traffic and then you could make some affiliate money but now if the llm just gobbles it up

there's really no incentive to do that though actually one thing i heard interestingly is that

um what do they call is that google is actually missing out on this because it sort of has

it's sort of um versioning creating a version of the web that then the llms are consuming so people

are just take using google's work semantically labeling the web and then google's missing out

on that but i can't say i feel so bad for google but

but like what do they call it aeo it's um yeah it's the llm led search thing i don't it's a brave

new world but you know some some products you know for example button down which is a newsletter

built with django justin duke we've had in the show who's at django con us it's now i think his

number two referral is um llms like if you go into an llm and say what you know other than

substack what should i use like his service pops up right so it's well

Adrian Holovaty

well i had an experience with that a couple months ago yes please yeah please if you don't

mind repeating the story yeah well so i mentioned the sounds like sheet music scanner uh every day

or so i look at the error log just to prevent misuse and see the images that didn't get any

good results and i started to see screenshots of chat gpt where they were saying in copy and paste

this text into soundslice into their app and i started to see screenshots of chat gpt where they

ascii tab feature and you'll hear the music played back problem is we don't have an ascii tab feature

so chat gpt was telling people about something that does not actually exist so we were faced

with the question what do we actually do we're not going to be able to convince chat gpt to fix

their database i don't think that's how the nature of these models works and yeah that's just not

going to happen we could

put slather our website with notices like hey if you're coming to us and chat gpt and you're

expecting this ascii tab thing that does not exist but that's just really lame so we ended up just

making the feature to yeah meet that demand which is kind of dumb because ascii tab is

a very old-fashioned way of notating guitar tablature that yeah it's super cool i'm

Will Vincent

remember that from 30 or 20 30 years ago find a site print it out like i had binders of yeah

tabs and there'd be like four or five versions you're like oh is the third one's a good one the

fourth one's a good one you know because the books they had tab books but they were they're

pretty expensive right it'd be like 15 20 bucks back in the day for 14 songs and it's like well

maybe it's in the wrong key but it's close enough you know because the key would always be off too

Adrian Holovaty

like uh yeah and yeah there's all sorts of problems

with the published tabs the people who the fans who make their own transcriptions are often

much more accurate because they care more than right maybe there's a parallel there between

open source documentation and the book authors um i don't know anyway um so you do you have a

Will Vincent

phrase for this though was it was an lm driven development or something i think you i just because

Adrian Holovaty

you did you did a blog post on it i did a blog post that got some attention and nothing's really

happened from it although funny funnily enough the other day i saw another chat gpt screenshot

in our error logs or someone said a chat gpt incorrectly said that we support yet another

thing called the cord pro format which nope that is not a thing i i just think there's some there's

like a fundamental problem that our society really is going to have a huge reckoning with

if we're training a whole generation of people to trust this information that is not necessarily

Will Vincent

true that is not a good thing well we're post truth right that was the whole idea is with the

web now all the answers you want it turns out we're back to kind of misinformation

central um oh i wanted to add it's yeah answer engine optimization aeo i was just looking at

that that's the phrase for like gemini or you know how do you do that you how do you insert

yourself into their training data i mean it's sort of like the early days of the web with like

hidden text there's all sorts of hacks that kind of work or i mean i remember you can and you know

if you got in before the training deadline cut off you have like a nine month window where like

you're ahead because you put in some keywords and someone else didn't uh i mean it's all

all going to filter out but um one one thing i wonder about you mentioned just to circle back to

typing in function-based views um i don't want to make this all about ai but one thing i found

i just came from a company on-site visit with engineers at pycharm talking about how we're

doing stuff and using using agents you don't actually type anything yourself so even if it

gets the right answer on a query which we'll just put that aside and assume it does

if you haven't actually typed it yourself it like sort of that connection to your brain

isn't there so you don't really feel feel the code or the logic or you struggle with it at all

i don't know if you i guess that's a roundabout way of asking and i can probably guess but are

you using lms at all to help with your code with the code no personally no and your team too

Adrian Holovaty

is again isn't my colleague edward who's a designer and and can do some

you know he sort of knows enough to be dangerous sort of thing uh in front of code he's been using

it to make prototypes and i think it's a really good use case for that it really has empowered

him to make some prototypes uh you know totally on his own as a single person uh but would i use

ai generated code in our production code base no definitely not but i have of course tried it and

there's nearly all of them and i think it's a really good use case for that and i think it's a

always subtle bugs yeah and they run the gamut from outright bugs that any anyone familiar with

our code base could tell right away to very subtle things like yeah it technically works but it's not

but it's going to cause a problem in the future if we add this one feature like it's these kind

of things that we all hold in our heads as the developers of products that that the ai doesn't

have access to and i think it's a really good use case for that and i think it's a really good

us too and and another reason is it's fun writing code i like holding all that stuff in in my head

and reasoning about it why would i not want to do that why would i intentionally have less fun

for capitalism reasons like to to churn out more features and make more money

what like what's what's the legitimate reason

Carlton Gibson

carlton you have a thought here come on yeah no i mean that that rings true to

me i why don't you know i'm going to be 48 years old in a month or so and um like why why am i still

at the keyboard rather than why have i not moved somewhere else after 20 years it's because i

love writing software it's like you know crafting stuff out of nothing and you know i can type it i

can i can write i write you know specs i've been one one thing i'm interested in is that people are

now suddenly keen to write specs when for years and years they you know i couldn't possibly write

requirements not but now i'm interested in writing specs and i'm interested in writing specs and i'm

now they'll do it so they'll do it for the machine but they'll never have done it for any other reason

in the past but i've always written specs up of what i was trying to do and so i can paste that

into a into whatever and i can get some stuff out and i can look at it and i can not really

understand it and eventually i can see why it's not as nice as what i might have written none of

that's as enjoyable as just writing stuff myself and i don't know let's say it makes writing code

faster i'm not convinced it makes writing code faster but let's say it makes writing code faster

the writing code bit is the least of my job like it's it's a fraction of my job that's not what

i'm paid for that's not what i've made a good living in my my professional life doing it's

not the writing code bit it's all the rest of it and yeah why take the fun away it's like if you

know i enjoy cooking am i going to go down the supermarket and buy a microwave meal absolutely

Will Vincent

not or like that soylent stuff does anything still exist you know a couple years i think that i think

i think so i'm not living in silicon valley still but like i i don't i think i there's probably still

a dedicated culture but they've moved on to yeah something else yeah so let's swing let's swing

Carlton Gibson

let's swing topic momentarily i was at uh jango in the med last week with jacob

um well amongst other people jacob wars who's the new um jango fellow and he's he's um he's a

composer and you know it's been into the music world and he was telling me that your

quite involved in the you know the technical specs for encoding music yes it was beyond what

i knew about but it sounded interesting and i wanted to ask you about it yeah uh well there's

Adrian Holovaty

a format for encoding music notation well there are many of course right because you know you can

argue music notation is the world's most used language if you consider it a language but there

are many ways of encoding it and one of the probably the most popular ways of encoding it

most used the most popular these days is called music xml so it's as you can guess it's an xml

format where you encode all the notes all the rests all the chord diagrams all the stuff from

your score and that is now a w3c community group uh it's maintained by this w3c community group

of which i'm one of the three co-chairs

uh it's maintained by this w3c community group of which i'm one of the three co-chairs

Adrian Holovaty

uh it's maintained by this w3c community group of which i'm one of the three co-chairs

and several years ago we decide actually my predecessor this guy joe berkvitz

uh started a project to create a new format to address some of the fundamental limitations of

music xml obviously insert xkcd number whatever another format well more than that exactly

uh but it sounds so stupid to say this but this one will be better

it's json it it has a more pythonic approach to things to be very is it going to be called music

json no it's called mnx which is not my name uh it doesn't stand for anything it's just a random

acronym music notation x mnx so i'm in charge of that i've been working on it for years now

and it's uh it's really great for i mean on the off chance that anybody listening here is

working on any sort of sheet music thing definitely check it out and get involved in the

development fun fact that documentation system is a django app uh i made this app that is very

he has a very specific task of um creating documentation for uh

json format where you can have examples and it automatically color codes things and links

every attribute of the json to the appropriate docs page blah blah blah and that's all open

source anyway so yeah this is uh what i do in my free time instead of it's sort of like what

replaced django for me and my open source contributions time but this is the sort of

Carlton Gibson

thing that i think you know it takes an individual group of individuals to craft on over a while it's

kind of has really long lasting value because that standard will be finished and then it will

be around for you know a long time and a lot of people yeah definitely that's really cool

Will Vincent

i have i had just one more question um and this goes back to django architecture which is around

local versus deployment so there's still this kind you know when you start a new project it

defaults to local and then that leap to production

um i'm wondering if you have any thoughts on maybe making that easier because it is still

quite a bit of a leap and everyone does it you know when i think about how to put this in a book

or to teach it it just varies so so much there isn't even just a simple path and then we go from

there it's like even that simple path you still have to tweak i don't know 8 15 things just

curious if you have any thoughts on you know so there's talk of maybe we have when you start a new

project toggle something like local versus production that's one idea like jeff triplett

has explored but curious what you think i think it may be inherently complicated

Adrian Holovaty

yeah so there might not be an easy solution i think we as programmers don't like to consider

that option uh i'm probably one of the worst people to ask because i just once i set something

up for production i'm like okay i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do

this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna

do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this

and it's set and forget it and well right this is this i mean i cut it up in sound slice like

more than a decade ago the other production site i have running on my blog which i did

probably around the same time yeah i so i personally haven't even faced that in years

yeah i'm definitely a bad person to ask about it okay it does seem like there could be sort of

more framework level

switch between production and development

Will Vincent

but yeah i don't have much to say sorry it could be explaining that because that is

you said it and then you kind of go on um eric mathis who's wrote python crash course he's been

working for a while now on this django simple deploy third-party package that links into some

common providers and um just trying to address that so you know mainly from started from his

uh pain point and then he's been working on this django simple deploy third-party package

as an author of you know he would have a different provider each edition every three four years and

you know the free tier would go away or they'd change how they do something and i can certainly

relate to that just with having i've switched between heroku and other and i can't remember

fly.io like you know you write this book and people kind of are like hey this part's broken

Carlton Gibson

you're like that's not even the django part um so i think what's good about django simple deploy

is that each provider has a plugin and so it's a way that that plugin is going to be able to

plug in that becomes the kind of focus point for people in the community who are you know if you're

using that you can contribute to this one plugin so that it there's kind of like a shared knowledge

bank if that makes sense um no it sounds like a great project well yeah it's yeah kind of cool

deployment's one of the perennials right the you know long gone are the days where you could just

run you know mod python and it was it was all taken care of you would have thought that it

Adrian Holovaty

but just like sort of for the whole world of web development maybe it's inherently complicated

Will Vincent

well but or if you look at if you look at other web frameworks that you know that raise vc money

they just have a hosting platform so like laravel has a hosting option um fast api right they raise

money they're going to do fast cloud you know kind of to address this so yeah i did have sorry

i have actually one more last last question which is you mentioned how you with soundslice you're

putting um django and data pipelines together i feel like this is the the issue i want to try to

get a better story around and at django con us we're talking about how how do we say how django

fits into this ai world because people will misunderstand how things fit together like

there are a lot of people the new generation are python machine learning engineers but they're not

web engineers and so they think okay i just have a fast api endpoint my work is done but

you know so i will get a question and others as well like hey i want the django orm plus fast api

which i feel like the question sort of misunderstands what's going on so i'm

curious if you have a sense of how django can market itself better is like you know okay maybe

on the inference path you don't want django but all this other stuff that you need django's there

for you but this new generation doesn't even know to ask really that's my day

yeah

i so

i have never used django rest framework but i'm going to bring it up

Adrian Holovaty

at the risk of being totally ignorant about it because like i said i never used it

i don't understand the point of it what is so difficult about just making a normal django view

that returns some json and that like throws the right http status code if you use the wrong

like http method i don't understand that and i i think there's maybe it's a generational thing

that uh people expect their hands to be held to such an extent where if something doesn't

explicitly have like oh this is the thing for writing json apis that if they if the product

doesn't have that then they're like totally at a loss on how to do it

i think people maybe are scared of going too low level even though low level is laughably still

high level we're talking python here and typing two lines instead of one so i i i guess i i

question the premise of the question if that makes sense uh i maybe it's just a matter of

educating these people like yeah so you're preparing some training data for to train a model

here's how to use the django orm to spit out some database records and create a csv or whatever the

format your training data needs there there's no there there it's just it'll be different for

whatever machine learning system you use like so we have we use like a image classification

model resnet it needs the data in a certain format it's basically like a directory structure

there there's no there there you just have to know yeah put the data in a certain format

the files in this right in this directory name them this way you can use django to do that it's

just writing code so i i'm kind of confused you know like what's the issue

Carlton Gibson

it's gonna help me out well no i mean okay so from your answer i think the the point there

is people that the phrase you said to some people won't need that hands hold maybe it is a kind of

skill level problem like people are expecting just to have out-of-the-box solutions for absolutely

everything and it's like well i don't know i mean i i guess people want out of the on you know the

rest api example people want out-of-the-box solutions for a lot more than just returning

json responses i guess what does rest framework give you it's got permissions it's got um you

use that help help you out it's got you know authentication it's got um rate limiting as part

of it um

i guess people want those kind of things which are perhaps more difficult andrew godwin's once

said to me about the batteries that um jango provides he said the batch jango has to provide

the hard batteries the things you couldn't just write yourself and yeah

Will Vincent

okay um but i think you're qualified adrian to say you know back in my day we had to write

our own web frameworks so that's part of the yeah well the thing is that nobody remembers this back

Adrian Holovaty

in the day it was a joke in the python community that there were too many python web frameworks

this was before django was open source i remember at a pycon years ago in washington dc there was a

keynote speaker who put a yeah we talked about this on the last podcast well it's okay not

Will Vincent

everyone yeah on the the uh the talk python 20th anniversary yeah you mentioned this yeah

Carlton Gibson

there was a slide sorry say it again i was just gonna say if you go to the asgi um asgi ref

website the asgi.readthedocs.com which is the the docs for the asgi spec there's and you go

to implementations there's about you know 15 20

python web frameworks that implement asgi now it's like

it's almost back to the old days where the you know thousand thousand

Adrian Holovaty

why why did i bring this up oh because you were saying back in the day you had to write your own

web framework yeah you didn't have to there were so many and we were kind of embarrassed that we

Will Vincent

added another one to the list yeah well but you know you need that combination of

self-desire and

maybe i don't know if i'd call you say you're naive but you're just like yeah why not right

Adrian Holovaty

like definitely definitely i mean i was 22 23 or something simon simon and i fun fact were born

five days apart um but oh wow we're both like 20 22 or something definitely not yeah still made a

Carlton Gibson

rub

Will Vincent

well it is i mean this is a

so a perpetual thing i have and maybe it's inherent to the ecosystem is why isn't there

a javascript batteries included web framework right there's always a new thing and i like

there kind of is but there really isn't there seems to be for each language there's like

you know kind of a jango right like php you have laravel symphony

ruby you have rails i guess java you have spring like it feels like everyone wants to just write

everything in javascript or they used to but there have been efforts but nothing is nothing that i see

has any sticking power as like the yeah we're just going to do it this way in javascript

just to be clear you're talking about server side yeah well maybe that's part of the problem yeah

Adrian Holovaty

yeah well this uh gets to the the idea i alluded to earlier where i said i have a whole theory on

javascript that javascript ecosystem that could be a whole separate podcast episode i think at

some point this is already being erased from history

which is kind of sad uh some point it was like 15 years ago before javascript frameworks really

came out before react before all the all those things it was the era of jquery and

the reputation of javascript front-end developers was these were a bunch of clowns they started out

as html people they are not real programmers they don't know how to do any back-end stuff

they were they horrible things are being said about these people uh and i my little pet theory

is that that community got a huge chip on its shoulder and it needed to demonstrate hey we're

real programmers capital r capital p we're real programmers too therefore we're going to abstract

the crap out of everything and make these huge architectures just to show how clever and smart

we are and i think that's what created this generation of frameworks

um why did i bring that up no i was asking yeah i was asked i figured i asked you something

so if you grew up in that environment you don't have the context for you if you're 20 or even 30

now all your professional life you've known javascript web development is using these crazy

over-engineered frameworks and you don't have a sense of the history and like

why why did that come to be not necessarily for good reasons in my perspective i'm just one person

but i've been around i mean i've been a web developer since the late 90s so that that that's

a whole thing that i wish more people were aware of is that the the the world of javascript client

side frameworks is not they they didn't necessarily get created to scratch an itch or they the itch that

was meant to be scratched was not a great itch it was also a big company itch right it was like

Will Vincent

facebook size problems google size problems it wasn't another hey let's let's make it you know

for a small group to do i think that's a big part of it you can't say that about all the javascript

frameworks but like i mean carlton i mentioned this you know like their problems are not your

problems so same thing now like with uh chat gpt right they're using what remix now or next js and

so a lot of people are doing it writing blog

posts gets on hacker news and people becoming programmers think that's the way it's done

right like if you go on hacker news every six months there's like oh yeah django's still around

and it works but it's not like out there in the same way as cutting edge stuff which again

is not the problem most people are going to have in their professional life but they

Adrian Holovaty

think it is that i mean we're getting into deeper philosophical takes um the world but yeah if

you're loud and

of attract a lot of attention unfortunately you get attention if you're just cool and just doing

your own thing and you don't care to toot your own horn chances you may be you may have the better

solution but just because you don't care to think about marketing you kind of get screwed i mean

Will Vincent

it's all what's the tale as old as time right i was just seeing something it was it was like this

i think it was a reddit post about like what's the biggest flex and my favorite comment was the

biggest flex is not caring what other people think exactly which is like great but you know yeah

Carlton Gibson

there's a general there's a generational thing here i think because we talked about like preferring

text to video we've talked preferred to we talked about learning from typing in magazines and then

what was it learning from cop stack overflow and then these yeah 85s i guess okay but that was

before but then you learn from stack overflow and then you now you learn from an llm and

okay this i often think about this long arc of history i mean

using django for a long long long time now and when i see a new framework come up and everyone's

like oh django's in trouble because we're not like you know new hotness i'm like hey take the

long view because in a couple years time you hotness will have faded away and we'll still

have the same fundamental problems and what i haven't quite mastered is how to communicate

that without sounding just like get off my lawn old man you know right we carlton i feel like

Will Vincent

we're the two old gut muppets you know up in the balcony a little bit for a number of reasons

you're like you're like but you know there's something to that like were they wrong were

Adrian Holovaty

their takes wrong there's some great youtube super cuts of those guys maybe maybe that should

Will Vincent

be the opening i've been meaning to add like an opening uh snippet to the video thing i'm like

maybe we should just enough so it doesn't violate copyright well what do we have to do to stay open

Carlton Gibson

to the youngsters like to you know the newcomers into it don't just sound like old thoughts

Adrian Holovaty

yeah that's a question for wiser people than me i don't know

the thing is i don't care right because it's good enough for me you know um

Carlton Gibson

yeah no it's fair so i wanted to swing to just ask you about your music because you've got some

albums and you tell us a little bit about you put one out for me just so you can check

Adrian Holovaty

yeah definitely i i've uh i've got a full album and i've got an ep the ep was released this year

a year and a half ago it's all my own guitar instrumental guitar music so if you like lyrics

this is not for you it's uh yeah uh the music that i wanted to see exist you know like

a certain combination of melodies and harmonies and instrumentation and aesthetic that i like

that i haven't found as much as i would like to find so it's a matter of being the change you wish

um yeah my own name on all the streaming services and so i think i think we should

Carlton Gibson

plays it while the ci is running on your pr so you can listen to adrian yeah i'm always

Adrian Holovaty

it's weird because i don't want to promote the music it's like well i do and i don't is right i

i don't want people to listen to it just because like i'm the django guy like you might not like it

big deal like if it's if it's not for you it's not for you but i i like it you know new stuff

basically every every other evening i'm always recording songwriting arranging so that's kind

of like your other part your third space your other yeah yeah it's so fun just to make something

make try to make something beautiful

Will Vincent

well as we go out we've been doing favorite books and stuff but maybe in your honor we should do

favorite jazz guitarists i'd like to go first i'll tell you who i like um i'm a big fan of

howard alden i think because i saw sweet and lowdown i there's that i'm always blowing bubbles

song yeah forever blown so beautiful and i was like who the heck is this and then i think 10

years ago that sent me down the rabbit hole of um

all his stuff and i mean he's one of many but he's just this beast of a guitarist and kind of the

problem is listening to stuff like that i don't have to tell you and then you listen to like a

Adrian Holovaty

rock solo and it's like it's kind of different different things becomes less impressive that's

the curse of getting knowledge about anything you know yeah you just realize that your standards

Will Vincent

become a lot higher right but at the same time

not every most people don't have that level so they're fine with whatever like you know so my

kids now are always in the car they're like play some music and on the one hand it's a little bit

like i don't want to but now i'm like oh i can like slide in you know a little more mature stuff

that i like and see how they do so um but i'm curious for you uh you must have a if you had

to pick one a modern jazz guitarist must be someone you listen to and go wow modern well

Adrian Holovaty

my all-time favorite is django reinhardt sure yeah he's he is nobody no guitarist

could play as beautifully as he did every he could just play one note and it just sounds

beautiful and modern jazz guitar the concept of beauty and and just having a lot of that beauty

is not that prevalent for some reason it's more about the note choice sorry we're getting into

kind of

uh musician talk it's more at some point this is a whole other thing that i have a rant about

at some point jazz became a university subject i think it happened in the 60s or 70s

and then books started to come out and there's certain things that a book can communicate and

there's certain things that a book cannot communicate talking about music a book

when it comes to music a book is really good at communicating the exact notes so the note choice

the pitches how long they're played but it can't communicate things like a bend in a note or

vibrato you cannot communicate that in any way other than listening to a recording so there was

several generations now of musicians who came up learning in that environment where

there's this invisible hand influencing the music and the music and the music and the music and the

music that was created that was influencing them to think about it like a what they will learn from

a book and no one plays like django anymore but anyway so rant over just sorry just another aside

that's why i really love the saxophone is johnny hodges he's like my second favorite musician after

django but there's like a schism jazz saxophone there's like johnny hodges school and then there's

charlie parker school charlie parker it's all about the note choice the the uh

the phrasing but for johnny hodges it's more about like the beauty it just sounds so beautiful

the tone charlie park did not care about that it's totally different dichotomy anyway

Will Vincent

modern yeah i can yeah like my my kids are all my wife they're all super musical and they're

old enough now where the lessons it's not about the notes it's all about you know taste or it's

about the things that aren't on the page because everything's on the page but how do you

get to next levels you know they violate at that point because yeah yeah if you're starting out

Adrian Holovaty

you want to do that but you don't have the technical capabilities so you're kind of like

Will Vincent

it's frustrating yeah but it's hard to yeah get that across right it's not it's like the first

stage is just playing the notes more or less in the time signature and then it's all about

you know the feeling and and all these things and then that's infinite but it's just like

programming yeah i was

Adrian Holovaty

yeah a lot a lot of uh commonalities for sure all right so back to this

and uh i would recommend an album by adrian lanyard and rocky grisette's called

well it's in french so i'm going to butcher it

in a horrible american accent is it between octaves or what is it i think it means between us

Will Vincent

um entree new

i'll edit we can look it up and sound learned oh between acts what is what is that carlton

Adrian Holovaty

i don't know i haven't got the album i haven't got the album um well it's a really beautiful

modern jazz guitar album it's just a duet

oh we see in the chat yeah all right well we could keep talking but i'm worried about carlton's

Carlton Gibson

my big love was um uh miles davis and kind of blue and then the um you know that there was a kind of

series of albums he did uh birth of the call and then through to kind of blue and the the interplay

with him and john coltrane with giant steps and love supreme and that that kind of period there

and it gets later on it all got a bit much for me i was a bit like i haven't you know i have to

have to have a had a specific mix of narcotics before i listen to the latest stuff yeah right

that particular period was just beautiful for me

Will Vincent

all right we'll put we'll put links to all that um adrian thank you for taking the time this is

truly when we started this podcast six years ago we were like oh it'd be great to have

the creators you amongst them on and now we've now we've had all three so i feel like we can

quit carlton right yeah we can quit now we can quit we can go and put our feet up on the beach

side quest side quest over yeah

thank you for taking the time and thank you for yeah sharing your perspective i'm i'm personally

glad that you're popping your head up a little bit more and um yeah i understand the desire to

sort of hide out carlton i talk about this all the time but i'm glad you're sharing your thoughts

Adrian Holovaty

yeah thanks for giving me a platform to do that yeah it was fun to chat thank you

Will Vincent

all right and we're jango chat.com we'll see everyone next time bye-bye bye-bye

thanks again to six feet up the python jango and ai experts you call for the hardest software

problems from scaling applications to simplifying data complexity and unlocking ai outcomes