Transcript: Google Summer of Code - Sage Abdullah
Hi, welcome to another episode of the Django Chat weekly podcast on the Django web framework.
I'm Carlton Gibson joined as ever by Will Vincent.
Hello, Will, how are you?
I'm good.
Hi Carlton.
Hello.
And this week we have Sage Abdullah with us from Jakarta in Indonesia.
And Sage was um a Google Summer of Code student in 2019, and he's been responsible for the um cross-dB JSON field that we're hoping to land into 3.1, Django 3.1.
Um Hi Sage, how are you?
Great, how about you?
You're marvelous.
Thank you for joining us.
So we we just wanted to have a chat with you and find out about yourself and um about what um how you got into programming and about the work you did for the Google Summer of Code on Django and your experience there and all the rest.
So one thing we quite often start with is just how about you tell us about your background and how you got into programming and perhaps how you found Django?
I'm from Jakarta, Indonesia.
Uh I'm in my third year as a computer science student at Universitas Indonesia.
And as Carlton said, um, I was a participant in Google Summer of Code 2019 with Django, uh, during which I implemented a CrossDB JSON field.
Um, how I got into programming.
Um I think I first started coding uh sorry, I think I first started coding um in the seventh grade.
Um I believe it was Java, but I didn't get past basic input output.
Um though
that's my experience with Java as well.
Yeah, yeah, yeah.
I was about
to say like that's that's everyone's experience with Java, no?
Yeah, I I remember uh the book jump straight to GUI after the Hello World Console, I think.
I I don't know what book that was.
I I don't remember.
Um, but I didn't continue after that.
And uh in my ninth grade uh I learned HTML and CSS as everyone.
And um I was already familiar with XML in my uh sixth grade.
Uh I used to mod my Sony Ericsson phone back in the day.
Oh wow.
Just hacking some stuff, the layouts and stuff.
Um and then I continued to the JavaScript course, uh, but it hurt my brain at the time.
Uh I think it still does actually with the more with the modern JavaScript stuff.
Um it's not Python, it's not Python for sure.
Yeah, it's not Python for sure.
Um and then in high school in the 10th grade and the 11th grade, I learned Pascal.
Uh to prepare for the National Science Olympiad in Informatics problem sets used Pascal mostly.
Uh I know it's um quite ancient, but yeah, that's what we use.
Yeah, no, that's kind of cool because I know uh you know, I know people who know Pascal, but they're all quite a lot older.
Yeah.
Um the uh yeah, so I learned Pascal for the uh National Olympiad in informatics.
Uh it's basically discret maths and competitive programming, so I learned a bit of C and C too.
I have forgotten a lot about that.
And I only got through the provincial level.
Um while the national the national winners um they will be delegates for IOI, the uh international Olympiad in informatics.
Yeah, but I didn't get past that.
Yeah, I only got through the provincial level.
Um so for Python, um it's quite a long story, but it's quite relevant to my TSOC experience.
So um if you don't mind,
yeah, we've got time, we want to hear.
Yeah, okay.
So um in my 12th grade, um, the final year of high school, um, there was this competition by Wikimedia Indonesia uh called the Sut Kode.
Uh Kode is Indonesian for code.
Um it's an open source software development competition um for high school and university students um to help prepare them uh for Google Code and and Google Summer of Code.
So uh it's basically a mini vibe mini-fight.
It's it's like a mini version of GCI and GSOC for students.
Uh it's divided into uh for high school and university students.
Okay.
Um during the competition, we were mentored by John Vandenberg.
I don't know if you've heard that name.
Um he's from Wikimedia Australia.
He's currently a maintainer at Koala, the uh Code for Matter.
Okay.
Koala.
Haven't heard of it?
No, nobody.
Okay, so there's
a lot we haven't heard of though.
So yeah, there's so many.
Yeah, somebody, somebody, uh, somebody suggested using koala instead of black uh in the mailing list.
I think I remember reading that.
Oh, I missed that.
I missed that.
There were so many suggestions.
Okay, okay, yeah.
Anyway, um so for the competition, um, we used GitHub Classroom.
Um, and so how the competition worked, uh basically we fork uh public repos uh into our private ones, and then we fix some bugs and code style issues there.
And once our mentor approved our fixes, uh we could send PRs to the real repository.
Okay, that's kind of that's fantastic.
That's kind of nice because that's like a sort of sandbox where you can yeah.
Um I I think uh our mentor uh was kind of afraid of you know letting the kids out there.
Uh we were basically under the uh we were miners, so yeah, he didn't want us to uh communicate uh directly unless we actually have some real work.
Yeah, yeah, yeah.
Fair enough.
Um okay.
Um so during the computation I learned how to use linters and CI surfaces to integrate them.
And one of the repos I worked on was the MediaWiki parser from Hell.
It's it's the name.
Um you can look it up on GitHub.
And it's built on Python.
Uh but during that time I didn't know Python at all.
And I mean I could make sense of things, I could read the code, but um fixing the code style um was quite tricky because I didn't know if what I'm fixing does not break anything.
Yeah, right, okay.
So yeah, that that was my first experience with Python.
But uh ever since then I ask, can I ask I didn't learn Python?
Can I ask at that point?
Like so you've you've mentioned Java, you've mentioned Pascal, you've mentioned C, you've mentioned D.
Right.
And then so you come to Python, and one of the things you know, people sometimes use it in textbooks, and they say the reason why using Python in this textbook is not because you have to do this in Python, but because e if you know any other programming language, you can read Python.
You might you know you might not know every details, but it will make sense to you.
And yeah, like from those those kind of much harder languages, like they're much more pernickety, I think.
Like, was it not like how was that first learning experience?
That first like, uh, okay, I see you know.
Okay, so uh reading Python code uh was actually pretty easy, but uh I didn't have time to actually learn Python at that time.
So uh it wasn't until my first semester at university uh in which uh we actually use Python and coming from Pascal and Java, Python is uh it's it's a breeze, really.
It's so much easier to learn.
I could I don't know, it was such a relief.
I mean, um so before I got into university, I was actually uh not really sure if I want to go into the computer science path because uh of my experience with Pascal and Java, and I was like, no, it's it's not very it's not a very good experience.
I mean, uh it's not very easy, you know.
Yeah.
But when I actually learned Python, I was like, oh, I didn't know things could be so much easier.
I mean, like sorting and stuff, you know.
But you got through it.
I mean, because I came at I I learned how to code when I was quite a bit older than you are now, and Python was my first true programming languages, and then later I tr I filled in a bit of Java and C um and C.
And you know, in comparison, I was just like, what am I doing?
Like, why would I ever, you know, as hard as it is to learn Python, you know, there to go the other way.
I'm just like, no, I'm not gonna learn ancient Greek, you know.
That's like what Carlton spends his time on.
So I'm always impressed that people can get through the and in the United States as well, there's still quite a bit that at the high school level, if they have anything, which most don't, it's in Java, I believe, is with the AP exam.
That's like the um advanced placement.
So yeah, it's I'm I'm impressed anyone can get through those other languages.
They're just they don't make any sense to me.
Yeah, and um the thing I love about Python is that uh with the things I learned um in the first semester, uh, I could actually build some pretty cool stuff that uh that's actually useful in real life, you know.
Uh in a in a short time, uh I built a chatbot on uh Line.
It's a I'm an IM app we use.
Um it's by Never, if you've heard about it, but I think it's not uh widely used uh outside Asia.
But uh anyway, uh I basically built something like an IRC chatbot using Python, and it was really cool because um I was only in my first semester and uh seeing that I can actually build some stuff that is actually useful is is really good.
Yeah I think that's what it's all about.
Like you I mean that in in my books and tutorials I generally try to get people to build something and then kind of backfill all the information rather than making them do it the hard way because most people aren't programming for the sake of programming you're programming because you want to build stuff.
Yeah exactly
so did you so what how did you learn how to build like an IRC?
I mean how much mentoring did you have?
Because that's something that it's easy to say but like where did was there a person or a class that taught you how to do that?
Did you Google around what was that process like as a beginner?
Oh okay so um what I built was a chatbot uh I mean you can use like slash something I mean uh I can connect my code with uh APIs like uh a weather API and then I can just slash weather Jakarta and then uh I would get the output.
Um I mean uh if we are I mean in university we are only uh taught about like string processing and using uh conditionals and loops but uh I take it a step further by utilizing packages on Pipe um I've uh with my experience during the competition in high school uh the BZ c
ode competition um I learned how to use pip and stuff so uh from there it's basically just uh pip install something and yeah I can just uh I can connect to some uh web APIs using requests and just uh get some data and then yeah once I've got the string that uh that I want to send to users I just hook it up with uh the line API um the
basically it's uh if you've heard about telegram uh just just imagine a telegram but yeah just like that I mean it's a it's not very hard if you have uh experience I mean it actually it's not about experience it's more about uh the fact that you want to read that you're not lazy to read the docs I think yeah and just go Google around.
Well I'm impressed that you've you know you came into university at that point where you you knew that you didn't have to write everything yourself that there are these packages that it's the superpower of of any language but especially Python because I think that is when people are because I deal with beginners when they're just starting out they think they have to write everything themselves and there's no sense of it's almost like I make the analogy of shopping at a grocery store.
Like you can just pull things off the shelf that way smarter people have built like Django and you can just use it and you don't have to understand all of it yourself.
You just need a teeny bit of understanding um but getting to that point that's what I'm as a teacher always interested in because I I think on some level you just have to build a bunch of stuff to understand that requests exist that you know that you again you don't have to do everything from scratch and then so you know when because beginners will hear oh I prototyped something in a weekend and they think well how is that possible but you know you pull down three packages from PyPI and the actual code you had to write isn't that much but um it's it's a leap for people
to get there.
So that's great that you were at that point.
Yeah that's that's actually what I uh what makes me love Python because um back in high school I was using Pascal and even to implement a sourcing um method uh I didn't know that uh uh there are also libraries I think I believe there should be a library for Pascal as well right but um since I was learning uh programm
ing for um computation uh it was more like uh more about implementing the algorithm that um is actually already built in in most programming languages by now.
Yes so um programming felt hard um in high school for me because uh it wasn't about building stuff but it's more like uh designing the algorithm and that's way harder.
Yeah I think they teach programming completely backwards.
I mean everyone does but they make you do all that hard foundational stuff first with no context and then in practice you rarely use it and the times at which you would need to use it is when you're at Google or something and you're well into your career and you have huge challenges.
And so people think that programming is discrete math and memorizing and and it's it's really more playing and sandboxing, I think.
I don't know Carlton what would
you say?
I do believe that it's important though um I mean to learn yes at some point it's still important but um if you're learning uh if you're starting to learn programming uh it's it can be intimidating I guess
I mean and in your so you're doing computer science and so they they you have to do all that right you have to go through the algorithms course and
implement yeah in my third semester yeah
you implement all these things but in Python now
uh so um in my second and th
ird semester uh we use Java for the object oriented programming stuff and the that data structures and algorithms we use Java but um in the third semester uh we learn web design and programming we use python and that's actually how I got into Django as we use Django
that's fantastic because many I'd say I'm I would say most universities in the United States don't teach web development as part
of the core curriculum so they just don't teach it.
If they do it's an elective um where there's really no resources and um so that's fantastic but I think it's you know the web is pretty important.
I think it should be part of the curriculum but it really isn't in most American programs as that I'm aware of.
So that's great.
So did you did did they do Flask or did they just jump right to Django for your course?
Oh okay they just jump right into Django but um since 2019 I think since last year um Flask is being taught in the first semester uh near the end of the semester um as a final project yeah there the students are asked to write a simple web app using Flask.
So I have so many questions about Google Summer of Code because I I don't know much about it and I suspect most listeners don't either though you just went through it Carlton you've been mentoring it for quite a while.
Well no what is like last year was my first year like so yeah so
oh I thought you've been doing it for a while.
No no no like last uh like February before last Tim Graham put an email on going well are we gonna do Google summary of code and I thought you know and lots of people prospective students said well yeah come on we want to apply we want to do it so okay I put in the application it was my first year going through it um it was a bit it was a bit like this year I've had a bit more warning so I I was sort of mentally ready for it to come up um but yeah it was it was like oh okay let's let's put in the application let's review the review the applications it's you know well
so from the from
the uh mentor side how many like how many applications come in what's that crossing and then sage I want to ask you because you wrote a fantastic proposal but you know what it was like on your end because the the deadline's coming up for this year I think it's March 31st.
Yeah yeah so
it's which end of this week really um but so we we had like about I don't know 50 or 60 people put in applications of which we had mentoring capacity for two um and you know because that's our biggest issue is like is mentors because the code base is quite mature and there aren't that many people that know it super well and those people need to be available and have time and so you know we could we could take on more applicants but it's it we just can't so
you know and who was it was you Marius Adam Johnson and there was a fourth
yeah um oh Rafael Raphael um yeah so and yeah we just um helped out with but yeah so that's our issue and so this year I'm gonna I'm gonna put an email on the the list this week saying come on we've got some good projects we've got some good proposals coming in have we got the mentors to be able to and you know depends
on the Django developers last year I put
that on um and depending on how many um responses we
get for that and how many you know because you know I can help um you know guide a student but you know the the depth of the migration framework for instance you know I need Marcus or I need Simon to to have the time and the capacity to do it and if they can't then we can't take on that project.
It's just that's that's the reality of it.
So where's was there and again I'm I apologize, I'm so ignorant, but was there were there two students last year or is it just a
yeah it's a path path as well?
Path Patel did one on the form um form set stuff on form forms.
Okay, we'll we'll link to that.
Um so stage, what was your what was the process like on your end?
We've linked to your proposal, um, but what was the and I know you I think you you mentioned this in the proposal, but why why cross um database json field?
Why what what what made you think of that for Django?
Oh okay, so it wasn't actually my idea.
I think Carlton, did you write it?
I mean, I believe it was in the mailing list.
Um I read about it, uh, did the discussion with Tim and some other folks.
Um but so um in Google Summer of Code, um the organizations also provide a list of ideas that students can uh they can either pick one of those ideas or they can create their own idea and submit a proposal for that.
But um in Django's list of ideas for GSOC 2019, um the top of that list was uh the CrossDB JSON field, though I'm uh I'm not sure if that was actually sorted uh by priority or something, but
right, right, what the sorting was.
But uh so personally, uh in my experience, um so during my web design and programming course in the third semester, um I came across the need of a JSON field uh to store some small data for the user to be fetched by JavaScript.
Um and it's just it wasn't worth it to uh store it into the model.
And I just want something quick that can be loaded by JavaScript.
And I thought that something like a JSON field would do the job.
And I looked it up.
It turns out that Django Django has it, but it's only for Postgres.
Right, and this is the case for a number of features like search and a whole bunch of other ones.
Postgres has more support than the other databases.
Yeah.
Yeah, exactly.
Um so uh I was actually using Postgres, uh, but okay, so let me just explain a bit.
Um in the course we were required to deploy our apps to Hiroku.
Um I think it didn't have to be Heroku, but uh it was recommended because it was easy just to set up a small app and so that the teachers and the um grading team can you know can assess the web app.
And uh we use GitLab and deploy our web app from there to Heroku.
Um on Heroku we use Postgres because um it's not possible to use SQLite as Heroku has this uh ephemeral storage that basically gets rewritten if you deployed your app.
And so the only uh not the only, but uh the recommended option was to use Heroku Postgres.
So it was technically possible for me to use the JSON field on Heroku, but I used SQLite on my local laptop and I hadn't learned about databases at that point, and I only know that you can store data in it, but I I didn't I haven't installed Postgres on my machine, so I just wanted something that can work on both SQLite and Postgres.
So seeing that the uh there's no such option unless I uh use something from third-party packages, like yeah, there are tons of well not tons, but there are some JSON-filled packages out there.
Um, but I think it didn't worth the effort because I just wanted something quick.
So what I did was I use a text filled and then basically just JSON dumps and JSON loads to it using the uh built-in Python library to serialize uh dictionary, Python dictionaries into JSON strings.
That's what I did, but uh so that was in my third semester.
Um it was until December, and then uh I have been thinking about uh joining Google Summer of Code since the actually I have heard about Google Summer of Code uh since in high school during the competition with Wikimedia.
So uh I was already aiming to participate in Google Summer of Code um because oh okay, so uh I also participated in Google Code in it's basically the high school version of Google Summer of Code.
And uh I was in my final year as a high school student, and it was there was a lot of uh exams and try-outs, so uh I didn't have time to fully commit into Google Code in and I didn't win the grand prize, and so I was like, well, there's still Google Summer of Code, I have to join it when I got into university.
So in my first year, uh I actually uh signed up on the Google Summer of Code website, but I didn't write a proposal because I didn't know uh what organization and what project I could work on because I was only in my second semester.
Uh I only learned about uh I just learned about object-oriented programming during that time.
It was the first time for me, and I don't think I have the knowledge to uh participate in GSOC during my um first year.
So uh I didn't submit a proposal, I just wait for the next year.
And then the next year um after finishing my third semester and entering my fourth, um, I read about the uh JSON field idea on the mailing list of Django.
Um okay, so uh I think I actually uh read about it in the I think Carlton has put up the uh GSOC list of ideas way before that, and uh I read that page when it was still under development.
It was uh I think some of the what does the uh Django wiki use this?
Uh is it markdown?
Yeah, it's no, it's not what markdown.
It's I I don't know, there's probably some technical name for it, but it's this weird wiki high syntax thing, which I'm terrible at.
It always takes me like like like 10 minutes to type it up and then like three hours getting the format exactly correct.
Not because it's particularly hard, just because I don't know it.
Yeah, I I saw that uh there were still uh syntax errors so that the formatting didn't uh show up uh properly, and I was like, uh well.
You must have been the first one there though.
Probably, I guess
uh because I was uh I wanted to participate in Google Summer of Code so bad, but I didn't know what project I should work on.
And after taking the web design and programming and used Django, I loved it, and I feel like maybe I can contribute.
So um I've been reading a lot of the past uh Google Summer of Code uh for Django.
There wasn't much information about that.
I think Django didn't accept students the previous year.
Yeah, there'd been a one or two years without any students.
Like, I mean, but you know, there's been a long history where, you know, a few students each year and then a couple of years off, and then you know, I think more that's more to do with people power than anything else.
Yeah, so I wanted to see if any projects were uh selected during the uh in the previous year, but uh it turned out that there wasn't any in the past two years, I think.
And uh so I was skeptical at first, but uh when I saw that wiki page that you uh wrote, um I read about the JSON field idea, and I was like, this is what I needed last semester.
And yeah, your story is so good as well, because like to to use a text field and just sterilize the JSON into it, like that's what the third-party packages out there have done for years and years.
It's like Django JSON field and one.
It's just a text field and it uses JSON dump and JSON mode.
And that's fine.
And that was discussed years ago when it's a lot of different things.
Yeah, yeah, I think
on the on the issue tracker, and it was closed.
There's no field parallel as that.
That's not that's not good enough.
You know, that can just be in a third-party package, that's not going into court.
But then in between that, Postgres Postgres got JSON field, and then like MySQL got it, and Oracle got it, and SQLite got it.
So all the supported databases had it, and so it was like, right, now this is time, and so it was perfect for Sage to come along.
Yeah, it was it was uh I don't know, probably.
I mean, in my blog, I wrote it, it's probably destiny or something.
Yeah.
I mean it it would just so conveniently happen, and I don't know, it's just it's like a miracle almost.
So in your proposal, you'd I'm sure this is was part of why you were chosen beyond picking a good project is you'd already submitted some patches to Django itself.
I'm curious if you could just talk about because I mean Carlton and I spent a lot of time trying to make that easier for people.
You were able to figure it out what was that process like for you figuring out how to submit um I think it was at least two patches that were merged in how did you what was that process like
okay so I may be a bit biased because I have previously contributed to open source projects uh previously and uh but however uh I think that the most important part that if you want to contribute to open source is basically don't be lazy to re
ad seriously I mean uh there's a lot of things to read but um it's actually uh some of them are actually pretty laid out that if you actually read it that if you actually read it uh you can actually contribute but uh I think um one of the things that may be off putting to some people is that yeah it's pretty long there's a lot of links I mean um
let's say you are reading the uh contributing guide and then uh it says that uh if you want to learn more about this you can go here and then you read along and then there's another link and it's it may be a bit overwhelming because uh some people may have not been uh very familiar with all of the things that's put out in the guide.
But yeah so
it's like five or six thousand words in the contributing guide which is
I I've almost thought Carlton I haven't mentioned this to you that if if there were a if you like froze Django 3.0 and you had like a a dummy version that people could fix a documentation ticket or or something where they could you know feel like they merged something even though they didn't just to get over that hump of this is a longer term project for me but I you know so to get some sort of quick win instead of it's a lot of words and will Django even tak
e it I don't know.
I mean as as you said Sage so if if you know that because that if if someone hasn't contributed to open source before it is intimidating um for sure.
Last month I uh there was this event uh by uh one of the pandas maintainers pandas the data science library um yeah so pandas has this thing called uh documentation sprint uh in which you can contribute to their documentation uh it's even small contributions like um fixing a missing period in their documentation but uh the
thing is I think um it's easier for pandas because um the documentation is actually built into the code itself using the doc strings and then there was uh they use a lot of tools uh that can analyze whether um which parts of the documentation need fixing like what rules are broken uh in the documentation for each function and for p
andas the documentation is mostly just uh descriptions of functions uh that are available but for Django we have the guide type of documentation like tutorial types and we also have the I mean it's more uh it needs more explanation I mean more examples of using I mean it it you can just call a function and expect what it returns like uh
what's in pandas for Django is a bit different so the same approach um for um the document for I mean if you're if you want to do documentation sprints for Django uh it may have to use a slightly different format because of the way the Django documentation is designed.
And also probably not a lot of people is familiar with RST.
Yeah restructured text it can be tricky.
I've recent like you know a couple of years into following I'm just coming round to it because you can do the cross linking between um attributes and things like that whereas Markdown doesn't have that and I kind of like it.
But yeah it's there's a learning curve again it's like another one of these markup formats you have to learn.
Yeah but that's just for documentation though I mean if you're talking about uh more um about code document uh code contributions um I think um okay so before that um for the contributing guide uh I think what can be improved is from uh I saw that there is another page that is specifically for uh new contributors um that's a good start but
I think um if we can have something like a step-by-step guide that is more I don't know more what's the word more simple and just maybe we can have some screenshots like describing the process of um for example forking Django and then cloning it uh installing it into your um virtual environment and then uh creating a comment and then until you have
this screenshot of uh a pull request um probably it's a bit more easy to understand because um you know people can imagine it ease more easily by looking at the screenshots and seeing what is happening uh when you are contributing probably I mean I I I don't know about that.
No I think that's that's fair.
I mean a couple of Django Con sprints I've been at where trying to get people up and running and you know just working through that first tutorial is difficult.
Yeah um also for uh track the uh ticket uh the tickets uh I think um you can improve it by uh adding more labels for the difficulty so it's not just easy pickings or not but maybe easy medium and hard so I mean right now it's basically just either it's easy or it's not and the not easy part is like it can range from
like really hard or not far off from easy picking actually so yeah
yeah no there's lots of tickets which are not rocket science but then there's some which really are exactly
yeah well I was telling uh Sage that's I mean like as we discussed with Mikey Ariel about a Darks fellow or someone who can come in with fresh eyes and have that perspective on all the stuff.
Yeah I mean yeah no I mean I there's a big tar I mean for instance the advice to new contributors I point people to that but it but that's in a way that should be front and center and isn't and that's a kind of information architecture problem.
That's it's not that the content isn't there.
There's a tutorial on creating your first patch where you know it goes through and you do a fake ticket and you kind of you fix a bug and it's like okay that's that would be how it worked but that needs to be brought out so it's easy to find.
There's also another program called Season of Docs.
Did Django participate?
We applied but it was the first season and they said they had like you know 300 applicants in 14 places or something so we didn't get in last year but if it comes up again I will apply again because I think it's a good um it's something that J like so you know if you look at the um track the big the big things on the tickets are like the ORM the admin and then documentation there's lots of documentation tickets that we could fix and there's lots of issues that perhaps we could resolve.
Also some of my friends uh have asked me like how to start because uh they were also uh interested in contributing and some of them actually um are looking to apply for Google Summer of Code with Django this year and um yeah they were having troubles uh with finding tickets that they can work on because yeah it's it's um like
I said um between the easy pickings and not um we cannot really know uh which tickets are actually doable um just by reading the description uh sometimes we have to actually know the context.
Um yeah.
Yeah, yeah.
No, it is tough.
It is tough.
Like I always say to people, look, so I try and at the Django Cons I've tried to run a sprint and a workshop where we um get people contributing.
And it's I say, look, it's okay, so here's how you can filter and show people filtering the track, but then I say, look, find a ticket that kind of grabs your attention and then spend some time with it.
And that's the the difficulty is that you do actually have to spend the time digging into the ticket and finding out what it's all about in order to work out if you can address it.
Well, we're we're we're coming up on time.
Is are there any um projects or other things you want to talk about, Sage?
Uh okay.
Um can I have uh something more to say?
Uh I'm just uh it's it's just an advice for um students looking to participate in Google Summer of Code, um, or basically not just Google Summer of Code, but more into open source in general.
Um if you think that um you cannot do it, well the truth is you probably you I think most likely you actually can because um when I when I wrote my proposal for JSON build, I haven't actually learned about databases and I had never executed an SQL statement into a DBMS terminal before.
And yeah, it was actually I I was just reading the docs and just imagined how it would work, but I didn't actually know what I was doing, but thankfully it in the end it worked.
So um if you feel like um you're not uh you feel like you're you you don't have the capacity or you feel like uh your your experience is not enough or something like that, it's basically just put those though those those thoughts away and just I don't know, believe in yourself, I guess.
I hope this podcast and your experience helps even more people apply, you know, this year and going forward, because um if there are mentors like Carlton and the others who are generous with their time, it you know makes a big impact on Django and it's a good experience for people to get into the Django contributing world who maybe wouldn't have otherwise.
Yeah, no, entirely.
I mean Google I think Google Summer of Code has been a big boom for Django over the years.
Big thanks to Sage for well A coming on, but B your efforts um putting together the um cross B T B JSON field, because that should be going to Django 3.1 and it's gonna be a a great tool for everybody.
Like this exact example is the one that I have in mind of of using uh SQLite locally, just quick development.
Oh, I can just I don't have to spin up Postgres just to prototype something, and then yeah, okay, I'm gonna move on to Postgres at a later date.
So it's just super and yeah, you know, Oracle and MySQL as well.
Yeah, great.
Well, Sage, thank you so much for taking the time to come on and and your work.
Yeah, thanks, Sage.
Yeah, you're welcome.
Thank you so much for having me.
Right, that was Django Chat.
Join us next time.