Transcript: Django in Space - Loes Crama
Hi, welcome to another episode of Django Chat, a podcast on the Django web framework.
I'm Carlton Gibson joined as everybody Will Vincent.
Hello, Will.
Hey Carlton.
Hello, Will.
And today we've got Luz Clamo with us who builds
uses Django to build telescopes or something like this.
Welcome aboard, Luz.
How are you?
Hi, thank you.
Yeah, I'm really good.
Thanks.
That's good.
Go on.
So we've we were good, I've sp you know, I was talking about the telescopes, but you've got more to say.
How how how how do you um let's go with your backstory?
Let's do the old the old Django chat backstory.
Uh how do you find um yourself in the in the Django and Python world?
So I was not familiar with Python uh and Django before I studied computer science.
I had no idea about both concepts basically.
Um so when I did my computer science studies in university, I got introduced to Python and uh I find it a a great language to work with initially.
Just looking already at the syntax was for me, it was so easy for me to pick it up, and it felt very natural for me to use in that sense.
And um uh Django was something that uh I got introduced to a little bit later, uh actually in my career only at work.
Um so throughout university, I did not do any Python projects there.
There was just one course that was focused on uh on scripting.
So we just wrote these short scripts basically uh to do some small calculations, for example, or read out a CSV file, stuff like this.
Um but Django came a little bit later.
Um So I guess I'd love to ask it, as you know, so computer science, they often don't teach sort of what we think of as the practical end of programming, things like web development.
Was there a web course even?
So yes, there were uh a lot of them actually, and we did a lot of practical uh projects, uh a lot with actual companies as well.
So we work together with certain companies or or institutions where we would uh have a data set, for example, and build a web app around this.
Okay, yeah.
And this would mostly be done with web frameworks, uh, things like Angular or something like this.
And but the back end would usually be something in Java like Spring Boot Boot, for example.
Right, and then a
JavaScript front end.
Exactly, yeah, yeah.
So not a lot of Python involved, actually.
I'm still surprised by this that it just hasn't picked up.
It's uh
my my son's just gone to university, he's just learning, and the f the first language they're teaching him is Python.
Uh really, that's great.
For me, the first one was uh Java, and I feel like they they should have done it the different way.
First Python and then the rest, you know.
So that that might be uh um a time thing, right?
Yeah, maybe an actual conversible.
Also, Python is now more popular than like 10 to 12 years ago.
So maybe because of this, there's also a little bit of a shift in universities as well where professors start to realize we should use Python instead to get people prepared for the workforce.
Okay, okay.
I think it's a a generational thing.
I mean, because a lot of professors, if they're older, they've used Java, they don't know Python as well.
Yeah.
They I've had this debate with professors and like, why don't you use Python?
They're like, well, because I don't because I know Java and we and and then they say we want our students to know multiple languages, so you know, the younger professor can teach Python.
Um they certainly don't know JavaScript, most of them, right?
Because if they're
spending their career on algorithms, like they don't so yeah, I remember here in the United States, MIT was one of the first universities to use Python for the intro class and was a really big deal five, ten years ago.
I still think Carlton Java is, you know, as popular, if not more, still for the intro classes, largely because you get a senior professor who's just like, I just do it in Java and I'll get Python later.
It's re it's real software engineering as well, right?
Or it's you know,
the object-oriented part, of course, like it's a great introduction for object-oriented programming and how these concepts work, of course.
So in that sense, it's still a great language to start with, but nowadays Python is fully capable of also handling these types of concepts.
So I think you can easily use Python as an introduction tool uh course as well.
Okay.
And you you interested, you like you work you build um telescope type, which we'll talk about in a minute.
But did that was there a connection there that drew you to computer science or
um well I I was always uh when I was a kid, I was already really into space and just anything related to space fascinated me.
But I never realized it was actually like a viable career option.
I just thought it's either an astronaut or nothing.
And it was like, well, the chances of me becoming an astronaut was very, very small.
So that's not going to be it.
And um when I eventually had to choose uh and and pick a uh um um a direction in which I wanted to go for like university, I found out about computer science and I was like, well, I've always really liked working with computers, and uh it was also a big interest of mine, so I figured I might as well just do this.
And then later on I realized that, well, the space industry is actually an industry in which you can work not only up in space, but also there's a lot of people here that that are there to build the actual satellites or uh use the use the data that comes back from a certain satellite or telescope.
Like there's a lot of different jobs in this industry.
And then I realized maybe there's also something for me in there.
Um and it actually uh it actually opened my eyes a bit because I realized that there's quite a few software jobs in this industry as well.
So that was perfect for me to kind of go into there through like a little backdoor or something.
So it was not directly the initial um the initial plan to go into this field, but yeah, eventually I could still do it via software.
Okay.
And so you picked up Django at work, but then we know you from Django cons.
Yes, Django News.
Yes, that's true.
I um so I was introduced to Django, I think a few years ago.
I think it was like four or five years ago.
Uh a colleague of mine had used it uh in the past,
and he
pointed me towards it because I was uh looking for this new tool that uh could help us with this exact uh existing uh MySQL database that we had.
And I was uh looking into how we can make this easier to use because it was a very old app and it hadn't been touched in a long time, and I realized, well, if we still want to continue doing this, and I'm now working here as a software engineer, I need to be able to maintain it and understand what is going on.
And then I looked into a few tools.
I was just uh doing this little research on what is out there, what can we use um as an interface to talk to this database.
And then my colleague told me about Django, and um I Googled it, I followed the tutorial, and within like one afternoon I had a running app.
So for me that was perfect.
I was just like, wow, it works, so that's it.
I I'm done.
Right, there's the
short for the episode.
You know, an hour later I had it working and
job done.
Yeah, I I mean I think the key is you you already knew Python a bit, you had a formal education and you had a background in web frameworks, right?
Because I think, you know, as an educator, what I see is people have never used Python or they've never done a web framework.
And so the polls tutorial I think is perfect if you have a little bit of experience as you did, but if you're a a total beginner, it's overwhelming.
Um so maybe this is a Django on the med sprint.
If I can come to Malta, Carlton, I want to finally push to get a you know a second tutorial that's a little bit friendlier to beginners.
Um a tutorial
for beginners.
It's like when I was learning, I wanted to learn.
I went um to I wanted to learn Python.
I went to the Python tutorial.
And the Python tutorial is really hard.
It's for experienced
programmers coming
from another language.
And I was like, no, this isn't for me.
This isn't for me.
I found, you know, I found dive into Python stuff, which was much more like, you know, much more appropriate for.
Wait, so um, so the so the interface you built, were you then interacting through the admin?
Did you build up like a website?
Like what what was the next step uh
on that project?
When I just installed it, it was just the the simple app that came out of the box, so just the admin and uh basically a direct connection to the database, no fancy APIs or anything in between.
Um, and that just worked for us.
And also because we don't have uh a really big user base, we decided to just stick with this and actually use the admin.
Uh this is still our primary interface, even after all those years.
Um, I think there's a lot of people who disagree with me and they say don't use the admin for your end users.
Uh, I also highlighted this in my talk earlier in DjangoCon.
And um there's just a lot of people who are against this whole idea of using the admin directly for the end users because you give them a lot of power.
Um, thankfully, we only have about 40 to 50 users because it mainly consists of the team that uh is using the app.
So uh the people that use it actually work here.
So if uh they have a question, they can come up directly to me or other software engineers.
And also, and also if if they uh do something that is not correct in the database, they they mess up some data, then it's just a quick conversation just saying, hey, you shouldn't do this in the future, and then we just move on.
So because we have direct contact with our end users, it's really easy to maintain all of it and also keep the data clean.
Yeah, there's there's some line somewhere in the docs.
I can't remember exactly what it says, but something like the admin is for trusted internal users.
And it's like that kind of fits your your description.
Mm-hmm.
Exactly.
Yeah.
Yeah.
And I can imagine like if you have a Django app or you have external users that or maybe like 40,000 users that you don't know personally, you cannot contact directly, then of course you're not going to give them the Django admin interface because that's very scary and they can do anything at all times.
So I
can imagine for those use cases you would want to have some sort of interface in between.
But for us it works really well.
Okay.
And do you use the the permissions to just sort of restrict what people can see to guide them into Ubuntu?
Yeah.
Yeah.
The groups and the permissions, we use them a lot.
Yeah.
Have have you had to do custom things to speed up performance?
Because the admin can be slow if you have a big database.
Um so the the database I would say it's not that big.
Um I think we um we helped uh or we helped make it faster by using the uh the uh debug tool, the the tool that helped us give us more insight into which SQL kube queries are actually running uh in the back.
And there we had already done a lot of optimization to make sure that the actual admin pages load pretty quickly.
And uh this was already quite sufficient for us.
Wow.
And did you um are you using a theme or is it just the default theme?
It's the default.
Okay, because there's a lot of fun themes out there.
I'm always
Yeah, I know.
I've been looking into it, but I'm scared that the that the users
will be
angry at me because they're like, no, we've done it for so many years like this, and now it's suddenly pink or green.
What's happening?
They they sound like they they make good uh veterans on the Django development mining list as well.
Yeah.
Yeah.
So so you mentioned in your your university studies you worked with some industries.
How did you, you're at a company Cosign now, did you do a project with them as a student, or how did you find your way uh to where you are now with work?
So, well, I always had well the the idea of of doing something with the space industry in the back of my head.
And um at some point I um was following this minor for one semester, which was aerospace engineering and maintenance.
And that's where I slowly got introduced in this whole world of aerospace and space as well.
And during this semester, we had some company visits uh to various uh space and aerospace companies, for example, uh Airbus, but also the European Space Agency.
And yeah, this basically slowly introduced me into this world, and uh, I got to talk to a few people, I got to understand how software is also being used in these industries, and then I more and more started to realize that this was the way I want the direction that I wanted to go in.
And um and eventually I needed to do a graduation internship, and I heard from a friend of mine about cosign, uh, and it was also very uh close to my hometown, and I figured, well, that's super easy, it's super convenient, and it's exactly the type of work that I wanted to do.
So I just sent my ACV asking if they had a uh internship for me, and they said yes.
And then I did my internship here, and after it I just basically stuck around, and six years later I'm still here.
So now you're running everything, right?
Yes.
Slowly way towards the corner office.
Exactly.
And is it is the main project this new Athena telescope?
Is that the main project, or are there other ones as well that you're working on there?
Uh so we have um two big teams here at Cosign.
The one is uh remote sensing, and this is the business unit that focuses mostly on well, remote sensing applications.
So think of things like Earth observation where you send a satellite up to space and then you take pictures of the Earth, for example, um, to understand the climate or uh what is happening in certain areas.
And um the other team is Silicon Pore Optics, that is the team that I'm in.
And uh this team is mostly focusing on um technologies that work with high energies, so in this case it's mostly X-ray energy.
Uh, and the biggest project here indeed is New Athena.
And this is basically a contribution to the European Space Agency, and um we are going to make the the mirrors for this space telescope because it's an X-ray telescope, we cannot just create one mirror, but we need to make um hundred thousand individual mirror plates, and we need to stack them in a certain way so that they're aligned correctly so that the uh X-rays can go through them and be reflected to the detector.
So there's quite some rocket science involved there.
Um and uh the Django app is actually there to uh track all of these different components.
So each of these individual mirror plates, they all have this unique idea, and we track them and we track their processes, we track the quality, also the configuration, like how big is the plate, what type of material is it made of, these types of things.
That's basically what we track in there.
And then is that and that's going live in 2028?
Is that the plan?
Something like that?
Uh 38, I believe.
38.
Oh, 38.
Oh wow.
Yeah, so we um we go into production in like a year or so, then we actually have to deliver the mirrors to Issa.
Now we're still in this sort of like ramp up to uh production.
So we still have some time to do some RD and test a few things and experiments.
Um this is done on a daily basis in the in the labs that the uh the scientists and engineers work in in the clean rooms.
And they basically yeah, try to to find the best configurations for all these mirrors.
And once we actually go into production, then we deliver them to Issa.
Wow.
You you talked about this in um uh where was it, Athens?
You talked about this in Athens um in your JanuaryCon talk.
And you might it was this wonderful um story of like how you've got like this 10-year timeline, but also it's quite tight.
It sounds like because it sounds like the the programmer's worst nightmare is that you've got far too long before you have to deliver, so you won't do anything for nine and a half years and then really rush.
But there's none of that, right?
No, no, and thankfully there's some sort of like um milestones that you work towards.
So we have contracts with ESA don't that don't span like 20 years, but only like a year or maybe three years.
So there's still some reviews in between and some things that we discussed that are deliverables in the meantime.
So yeah, we actually have some things to work on.
It's not that we can just sit back for 19 years and then in one year we just work really hard and hope for the best.
Yeah, so so any take-home man um project management tips for the rest of us who kind of
I'm curious what um what does a day look like, right?
Is is there a typical day?
Is every day different, right?
That's always, you know, I know people who are outside of the industry are always they don't really know what a programmer does.
And partly it
it varies so often.
So if there was a typical day, what would that sort of look like for you in terms of being in the office and and what you're doing?
Um well, I wouldn't even know either because every day is very different for me.
Um so because my my job is not only software engineering, but I do some data engineering here and there, some data science if I'm interested in in it, if I feel like it.
Um thankfully I get a lot of freedom to work on the things that I actually want.
So this is really nice.
Um, so it kind of also depends on um we look at basically the the different open issues that are there in in our internal GitLab instance, and we have a look there, we see are there any issues that have a really high priority?
Are these things urgent?
Should it be done immediately?
Then of course uh they will go first.
But if that's not the case, then it usually depends on whatever is there still left to do on my to-do list, and it could range from setting up uh some data pipeline, for example, um, with some data that we collected from the clean room that needs to be processed and and plotted and visualized in some way.
Um, but it could also indeed be something like uh standard Django maintenance uh on some form on or maybe on the admin side, maybe a new feature that the user wants to have implemented.
Or it's something that is more about uh things like data engineering, like how um how are the data pipelines actually running?
Is everything running correctly, and uh what are the logs saying, stuff like this, more in terms of observability?
So it it ranges very much.
Um but I really like this.
It's sometimes a little bit of a challenge, but it's really fun.
Yeah.
I mean, that sounds like a lot of a yeah, a lot of autonomy, a lot of areas you get to to work in.
I mean, I think in um Django Con Dublin, you came up to me, I think, af I gave a talk on Django for AI, and one of my questions was how many people are doing web uh work versus data science work?
And almost almost nobody's doing both professionally, but you are actually, right?
So you're
you're which is um so you should give an updated version of that talk, right?
But no, that sounds w I mean that sounds like a perfect setup for an engineer to have new things to learn and not just the same old stuff.
That sounds
yeah, exactly.
It it's nice that you can uh learn a few new things and not just doing all the same things day by day, but you get to work with newer technologies and and try them out first, see if they actually work, and if they don't work, then they don't stick around, and that's also fine because we do want to have our tools very stable, very reliable, because it's such a long-term project.
We really want to make sure that this would still work in 10 years, and um and because of this, we do really test our tools first before we actually decide to go on with them.
But I think Django is a perfect example uh of one of these tools because it is it is so stable, and even over the different major releases, it it still proved to be uh so well done and it still works the way we want to.
And uh I remember when I was just getting into Django, I was reading the book Two Scoops of Django, and we had a really old edition here um in the library at work, and I think it was one of um Django 1.something, and at that time we were already in Django 4.something, and I was reading it, but still everything made sense because the core of Django did not change, basically.
Uh I could still use the book for a lot of things, and of course there were some minor things that may have changed, or some name changes maybe here and there, and I had to look it up in the documentation, but the core of Django was still the same, and that's exactly what we're looking for in terms of software tools for these types of projects.
Yeah, I think that the people using Django in the real world, that's a story that we hear again and again and again.
It's that it's it's it's uh stability, it's reliability, it's the fact that it doesn't change that actually why companies choose it and what you know.
Yeah.
As you say, a ten-year, ten-year, twenty-year project.
You know, the framework that's gonna be with you from start to finish is of value, right?
Exactly.
Yeah.
I think that was um I had all the versions of two scoops.
I think it was 111, I think was the last one, and and then there was some stuff around the URLs changed in 2.0 and but it was um encyclopedic, the book, really.
You could dive into sections, so it worked really well to have great advice on it.
Exactly.
Yeah.
I I did want to ask um, so databases.
So you mentioned there was a MySQL database.
Do you is it all MySQL?
Do you sometimes use Postgres?
Do you have needs for non-relational databases?
Um, like because the data is varies, I imagine, right?
Yes.
Um, so for the the components themselves that actually go into the telescope, we can just use MySQL for this.
Uh, it's just because there's also various relationships between these components, like also physically physically, it makes sense to have a relational um database as well.
Uh, and that works really well for us.
But there's indeed a lot of measurement data and actual experiments that are done uh where data sets roll out and we store them in various different ways.
So the the biggest um other data source that we have is MongoDB, and this is basically well non-uhSQL uh data, of course, and it's very flexible for us because if a experiment changes over time, then that's okay, like we can change the key value pairs and nothing will be affected in terms of previous um measurements or records.
So that's really great for us.
And we store all kinds of data sets there, uh short-lived experiments also in case we have something that we just want to test out for let's say like two weeks, and then we decide not to continue with this method, then it's okay.
We still have a record of that data at least, but yeah, we can store it and we don't have to think about any structures or or tables or anything like this.
So they uh the MongoDB database is is used a lot uh in this case.
And then we also have uh Influx DB, which is a um a time series database, which we mostly use for environmental data.
So we monitor, for example, the the the air quality, the temperature, humidity of the clean rooms.
Uh this type of data is all stored in InfluxDB.
So yeah, these are basically the two other big data sources that we use here.
Well that that's great to hear because MongoDB had added official support for Django, I think two years ago.
Um yeah, because they saw in the survey results a lot of people are using it.
And so uh it makes sense that another example of where it's being used.
Yeah, no, I've yet to try out the the the connection between Mongo and Django.
I've not tried that yet, um, because most of the data that we have in Mongo we read out through uh Jupyter notebooks and some custom um uh aggregators that we've written in in Python and then use that in uh in Jupyter.
But yeah, I think there there could be uh potential to uh
to connect to the job.
I know there's Django admin there.
Django, exactly.
Just the admin works fine.
Yeah, just the inspect DB and you're done.
Um exactly
so you work in this very conservative um environment.
But what about the new the new totless, the new the new tools, the the AI agents and assistants and and things like that?
Are you are you giving those a go?
Are they do they find a space?
Uh yes, actually.
Um we see that everyone in the company is interested in AI.
It's just because people are curious about new technologies in general, but we also realize that we need to protect like in intellectual property and we uh focus heavily on privacy and we try to limit the tools that we have uh uh in the cloud, basically.
So we make sure to host uh as many software tools local as possible.
Yeah, you can have
you self-host GitLab.
Exactly, yes, yes.
And we don't use tools like Teams or Slack or something like this.
We have uh elements.
Yeah, so everything is very local, and it's the same for AI because at some point people started to use ChatGPT, Cloud, everything looked super interesting, of course, and it was like the shiny new tool that everyone wanted to use.
So um, yeah, within software we realized that there was still a need to use these kinds of tools, but at the same time, we didn't want to have people upload whole design documents of of telescopes to some random server in America.
So this is uh where we uh looked into a local AI stack, and um we basically set up this local uh AI tool that consists of OLAMA, um, and we use the Lama models in here as well.
And we have OpenWeb UI where we have this uh chat interface, so it feels very similar, very natural for the end user, similar to, for example, in ChatGPT, where you can just type in your question.
And we have also some custom scripts where we um upload the different documents to an internal um document database.
So uh in this in this way we still have our uh we still have the context that is required uh to understand certain problems or understand certain projects.
Um and the local AI is actually really, really good at understanding these different things.
So we have like technical notes or maybe internal minutes from meetings, and with the help of these documents, we yeah, we get quite far with this local tool.
Okay, that's super.
Can I just ask a technical question about the size of the sorry uh
about the size of
how how how big a machine do you need to run, you know?
Um so we actually recently had some hardware uh upgrades for this because yeah, it was indeed required because otherwise we couldn't upload as many documents and we couldn't run heavier models.
Uh I'm not sure about the exact specs, but um yeah, the upgrade has helped significantly.
Because one one of the conversations at DjangoCon US was around, so some people have the new MacBooks, the M5s, where they can run a lot, but then a number of the consultancies are buying, you know, foundation or NVIDIA chips, like literally in a closet for their team.
Um so I guess that was my question.
If you know, is it like in a closet somewhere you have some fancy laptops, or do you have your own private cloud, or do you know how the that's being set up?
So uh yeah, we actually have a lot of servers just here, uh just physically here.
So it's it's all running.
It's crazy.
It's so like you're
you're too young.
But for Carlton and me, right?
Like I was around before the cloud was a thing.
And it was it was literally in a closet.
And there
was like one guy
who was grumpy.
Carlton, you would have been good at this role, right?
It was this like
this grumpy guy
who like nobody wanted, like, was the only one who knew how to do anything, and you and that was how it all worked.
And then everything went to the cloud, and now, yeah, everything's coming back, and yeah, it's right, it's interesting to see to see that, Carlton.
Um well, I I used to you telling that story when I was doing my PhD.
I used to sit in the this downstairs basement room in the philosophy department and read because there was a server covered in there and it was really warm.
It's like the warmest room in the department
in damp Britain.
Yeah.
Yeah, yeah, yeah.
No, it was brilliant.
I'm sure there was a question for Lucy there.
No, well,
I think um No, it's a great story.
I mean, Carl, you you said A AI first, Carlton.
I I held off.
So now I can say PyCharm.
So we are adding, JetBrains is adding a bunch of functionality for local, you know, in addition to cloud support for frontier models, local things that you can run uh on your device.
And I think it's yeah, it's already pretty close.
And the the divide that I see actually is people who have access to frontier models, they talk about how the the tip of the the the you know fable and the newest models think too much.
So you actually, you know, you give them the planning, but the implementation, you use a in quotes dumber model that won't, you know, lie to you and stuff.
So I I think, yeah, local all the way, you know, for cost reasons and security reasons.
Um, I'm surprised more people aren't aware how bad the security is.
Um, I mean, even in the United States, there's court cases.
I have friends who are lawyers who are now using AI and they don't think about the fact once it's in ChatGPT or Claude, like it's there.
Um so I suspect they're just a couple years behind everyone else in realizing like it's the same as typing something into Google.
Like if you type something into these services, not to mention they'll steal it and then you know, then t win a fields medal or whatever, a Nobel Prize and and cut you out, um, which
they also like
they also seem to like to do.
Um do you uh uh well one actual question.
Do you have a a favorite model for for coding that you've seen?
I mean, I think in the notes you mentioned Quin 3 or Gemma.
Is there one
that you've
a daily driver?
The one that I'm uh that I work with a lot right now is the Quin 3 coder, and I have to say that is actually pretty good, uh, especially for Django, I would say.
And uh some uh yeah, just generic setup uh things like configuration files, think of like a GitLab YAML or stuff like this.
I've been using it and in in that area lately uh a bit.
But um, yeah, I'm really that's
what I hear too.
Like I ran a open space at DjangoCon, basically like let's let's compare models and you know people complain, but a lot of people s liked Quin 3 in in particular.
I think
in part I think it's really good.
It would just do it.
Again, these people would talk about in a anthropic context, they would say fable for reasoning, but opus for for doing and um I uh sorry, sorry, one more question on this.
Um do you are is your team using custom harnesses at all, or are you just interacting directly with the the models?
Uh just interacting directly, mostly, yeah.
So and uh most of the users just make use of open web UI directly and then just asking a question or two, um nothing too fancy or anything.
And how do you think it changes the role?
Like you know, does it it because uh do you think it puts us out of work?
You know?
Um no, definitely not in this field because I've tried it with data analysis and it's it's horrible.
It just doesn't work.
It's it's
not able to comprehend what we're doing.
We're we're talking like things like astrophysics or mathematics, it's just not able to to pick up these things and it will spit out something that's just incorrect.
So in this in this field, I think we're fine.
Um, but I have to say with Django, it is really good, it's really accurate.
Um also probably because there's just so much out there on the internet, so it's been trained uh on all these different uh sources.
But I'm not worried uh that it will like do the full-on takeover or anything.
There's there's still so much uh that humans do better than machines.
And uh I think humans are way more critical of the work they deliver and an AI doesn't do that.
It's uh it just spits something out and it it doesn't review it and have like a double check and see if it's actually the good way to do something, a certain task, for example.
And humans actually are very critical, especially on themselves or on other developers.
So yeah.
I I
don't want to be too on the AI side, but I think harnesses, if you look into using custom harnesses with uh AI models, they do do a lot of the review and and checking.
And so you know, for your team, I would strongly suggest looking into some harnesses.
Um it makes a big difference, actually.
I I I still agree, there's still something humans can do better and you know judgment and stuff, but um if you're just d if you're not using a harness, I think you're really missing out, especially with Django on what what they can do.
And there are open source local harnesses you can use.
Yeah, no, it's definitely worth checking out indeed, yeah.
So I want to come back because you said you built your whole wrap around the admin and then you gave it to 40 users, and they built it five years in.
You must have done some pretty gnarly customizations.
Yes.
There's some things that slipped in between the admin classes sometimes, but it's it's still it's not hacky or anything.
Because it is so.
Exactly.
I understand it.
No, I think uh it doesn't it doesn't feel hacky at all.
Um and I think the the admin actually allows for a lot of customization, and because of this, it feels natural to add things to it, and and uh there's a lot of extra packages that also make the admin easier to use.
Um there's for example one package that is called Django QL, and you can do SQL like queries on the data in the search bar, in the top search bar in the admin.
And it works really well for some of the users who want to uh filter on results that are a little bit more complicated than just the generic lookup something and name like uh a part of a name or a description.
Um they can look on multiple conditions, for example, and um so these things are are really nice additions to the uh the default Django uh admin.
And it it doesn't feel like it it shouldn't be there or anything.
So I I I love this about Django.
Like so Django QL, I I hadn't heard of it.
I go look it up as as you're speaking, and you know, there's over a thousand stars.
And so, you know, I just love that I I every day I learn something new about Django, right?
It's big enough that there's and clearly it's you know nine years old and you know, like or yeah, nine years ago it started, so there's just such a depth to uh to things.
But I um I know you there's a number of other tools that you use.
I think Django Simple History is that one as well?
Is are there some are there some third-party packages that you really can't live without with your work?
Well, indeed the the the Django Simple History, that's indeed the one that we use quite a lot because we just really want to monitor and and track all of the history to all of the different components uh over time.
We want to see what has happened to all these different things to uh ensure that all the procedures, of course, run right and then we can actually uh validate, but also show Issa, for example, like see, this is how we made the mirror, and exactly it's exactly step by step how the procedure says we should do it.
Um, and also we make use of Django Leaflet, and this was kind of something that I was just personally interested in.
Um, Django Leaflet is basically uh a package that helps you uh show different maps on uh in the admin and um make use of OpenStreetMaps, for example.
And we also track the the geolocations of each individual component because we sometimes ship the the plates to another facility where we do certain tests.
So it goes to Berlin, for example, or it goes to Barcelona.
And it is just really interesting for us to see some kind of like the the history of where all these different plates, uh these mirror plates went to.
And um, we even mapped it out in such detail that we have this geospatial map of all the different clean rooms, and we track for each different plate in which clean room they are currently at and where they're going.
So together with the simple history, we can look up the Django uh locations, uh the historical locations, and then we can exactly see where a mirror plate has gone over time.
And this is super interesting, and it also helps for clean room operators and coordinators to see are we actually doing things right?
And is everyone tracking everything according to the procedures
and how
it's actually set in the documents?
And and that's all Django Rest framework uh for the APIs?
Sorry, I Is it is a Django Rest framework?
Is that what you're using for the APIs?
Yes.
Um so we basically use this uh this Django app as like a main central point of truth where we uh look up everything from the current state of of what is happening right now in the clean room to well, the history from maybe two years ago or even further back.
So because of this, it's also important that we can retrieve this information through indeed an API, um and not only just through an admin interface.
So uh with Django Res Framework, we've uh we've made this small API that can just retrieve all of this information and we then use this API again in our some of our Python tools to fetch the data and to see, for example, the latest status of some plates uh to understand what's happening to them or get a filtered list of certain components, stuff like this.
You talked about um Django QL and being able to type um slightly more complex uh SQL expressions into the search to kind of filter down.
How do you it sounds as if your data model would be one of those ones where access to raw SQL would be quite important because complex queries and it's not always so easy to construct the right filter of values combinations from the ORM?
How do you find the the the the expressiveness of the ORM?
Is it sufficient from for a lot or do you need to drop down to raw SQL a lot?
No, I think it's actually sufficient for us.
And I think uh that's also thanks to Django QL.
Uh a lot of users are now happy with that package, so there's not a lot more extra to add.
Uh the current setup that we have is sufficient for for me as a developer, but also for the end users who just want to look something up with some extra filtering or sorting options.
Yeah.
Um, before we get to projects and books, I know there's some listeners who are interested in the space industry.
Like, what sort of advice do you have for someone who maybe knows their way around Python and Django, but thinks, like, what do they need to do or or think about to also work in a space industry?
Well, I think um you shouldn't be intimidated by the industry because I was at first definitely intimidated by it because I thought, oh, I need like a physics degree, or I I need to have a master's or a PhD in astrophysics, and I need to be able to name every individual black hole from the top of my head or something, but that's not the case.
Uh, space is a very, very uh big industry, and there's a lot of different roles.
And um, because of this, it's also very accessible for software engineers.
Uh, I think a lot of the people that work in this industry, they come from this sort of like intrinsic passion and uh their their own obsession with it, basically.
So every time you talk to any anyone who is in the space industry, they have some personal relationship with space, basically.
There's one person who who maybe has done a full PhD on on one specific uh black hole and is super obsessed with it while the other person just is really fascinated by space and watches space documentaries or or even things like Star Trek every night.
It's it doesn't have to be like super complex or anything.
As long as you're interested in the field, I think you can get quite far.
And if if you're curious, then that can already help you uh get really far here.
I I think I'll have to point my my six-year-old son in this direction because on the walk to school this morning he was asking me about black holes.
Like he's upset.
He's like, What's inside a black hole?
And then he said, Well, what happened before the Big Bang?
And you know, so maybe maybe he's a philosophy person too, Carlton, right?
He's he's fascinated.
He's like, What
do you mean you don't know?
You're an adult, you have everything.
Or you know, you know everything.
But yeah, that that's great advice.
Not the first, not the first.
Um Carlton, did you have any additional questions before we
No, not real.
I mean, you know, we could I could talk forever about, you know, the work and the I'm gonna go to the phone.
Wait, let's do let's do a plug for Django Cons.
So you've been to three, I think, right?
So Vigo, Dublin, and then spoke in Athens.
Um I I mean, I met you in Dublin.
You're you're not shy about going up to people and talking to them.
Is that natural?
Or did you have to cultivate that, right?
Because sometimes, like for me, my first Django Con, I was a little more reserved, and it was really only Carlton at my talk saying something and then talking after that sort of opened it up.
But like, you know, you just came up to me after my talk, which I was like, oh, that's great.
So so I guess the question is like, did you are you have you always been that way, or is that something you built up over time?
Because if you're an outsider, you can maybe feel like, oh, it's you don't know anyone at the first event.
Well, that's true, because indeed when I first went to Vigo, I didn't know anyone.
So it was just me on my own.
And I didn't know what to expect like from Django Con in general, but I think the Django community is also very welcoming.
And it's one of the few communities where you instantly feel comfortable and things things are not weird in in the sense that if you go up to a stranger and you ask them a question like, hey, what do you do, or how do you implement Django in your in your day-to-day life, people are not shy to give you an answer, and they don't judge you for not understanding uh certain parts.
If there's, for example, a package that you've never used before, then they're like, oh, well, you should have a look and and read into it because it's a really nice one, or uh people are able to explain complex uh topics.
So I feel like it's partly the the community that uh just makes it really easy to yeah, talk to people and just go up to them.
And also I feel like if you go to a conference, I'm I'm just a curious person.
I just want to know what are you doing?
What what what keeps you busy?
I I want to know.
I'm just very nosy.
That uh I remember you from Vigo from the sprints when you came up and you're like, you you do Django filter, and I'm like, yes, and you're like, can we do this to gaze on food a little bit?
I was like, yes,
we can.
Well, I I think I mean the older I get, I think that's well, the the two attributes I would recommend to anyone is obviously kindness is number one, but number two is cre is curiosity, because it just takes you on so many interesting places and things.
And I think when I was younger, I sometimes felt like you see people who are maybe quicker in math or you know, faster in something, but if they don't have curiosity, like that's what you need for the long term.
Um, and so along with kindness, those two really win out over time.
Um yeah, so exactly.
Like I'm I'm the same way.
I'm always like, well, I don't know, how does that work?
Like, tell me more, you know?
Yeah.
Like um,
yeah, exactly.
It's just a matter of wanting to know and wanting to learn, I guess.
Yeah, yeah.
Um projects.
So I'm gonna switch.
So um sometimes we recommend projects.
You've mentioned a couple.
I think there was one we have in the notes that you wanted a non-Django one you wanted to call out.
Is that right?
Marimo?
Uh it was actually one that I was introduced to uh at Django Con in Dublin, I believe, two years ago.
Um it's called Marimo, and it's kind of similar to Jupyter notebooks, but it's more dynamic.
So you can also write your own notebooks and play around with different data sets, but it has a little bit more uh dynamic uh elements to it.
So for example, already in the UI there's some some sliders and some filters, for example, and you have immediate response in in your plots, and I think it just looks very neat, very clean.
Um, we do use Jupyter at work, but I sometimes still play around with MARIMO just because I'm curious to see how I can visualize the same data in this framework instead.
Yeah.
So it's it has a lot of momentum.
Oh yeah, more modern.
Yeah.
PyCharm's multiple supports.
So I've been I've been pulled into discussions around it and it looks very, very cool.
Yeah.
And it's gr it's pop very popular.
Yeah, and it's and it's getting more support with other uh packages as well in more of the the scientific Python community as well.
So that's really good to see as well that it's it's not just this hype project that dies out after a few months, but it's actually it's there to stay.
And so you might eventually be able to smug it into work.
Maybe Carlton do you want to go next?
Do you have it
Yeah I had a project which just um is Django SES which is um a Django email backend for Amazon's simple email service.
So I I use that and I've always just used the um the API for it and whatnot but this package looks like it's got it's a nice email backend.
I've always used the SMTP to to actually send it the messages but um this uses the API directly and then what it's also got though is the simple notification service webhook integration so you can get the the notifications for whether your emails are delivered or whether they bounce and that bit of it you've always had to wire up yourself.
So I'm I this came across my right I'm like oh I might be able to delete some code by adopting this so I'm currently digging into that.
Well we didn't um talk about this in advance but my recommendation is actually also on this it's a Django any mail and I have a story around it.
So partly Django 6.1 updated the mailers in the settings and um I've been busy doing that with my uh new version of Django for beginners which will be out by the time this podcast comes out.
But Django Animail is the tool I like to use and I use I used to use Sengrid for my personal projects and I was updating to 6.1 and I saw oh there's no support for so Django Animail is my package.
And then my story is Sengrid uh didn't have support didn't allow the Django anymail volunteers to do the testing that they wanted to do and so for a year and a half this was sort of stuck.
And then uh I and some other people kicked up a little bit of a hissy fit online about this and were able to connect with the right person.
So I'm happy to say that as of uh yesterday there's now support again and so Django Enemail has official support for SendGrid as well as many other providers uh including Mailtrap who I actually ended up switching to because they sponsor uh Django Enemail.
So a long-winded way of saying like these these tools are important and useful and it's beneficial to companies to both respond to them and also to support them.
But I'm happy that had a nice conclusion.
So thank thank you to the people at Sungrid who who ended up uh fixing that eventually.
So didn't go an email
squeaky wheel gets the grease
right yeah yeah I know I mean I I said something and I complained to Jeff Triplett and then Frank Frank Wiles um said something and then someone else said something.
So it certainly wasn't just me but got connected to the right person at SunGrid.
So yes it all works out.
Um books the fun part uh we do book recommendations Luce do you have a book that you wanted to recommend
uh yes there's one that I recently read uh and it's called Weapons of Math Destruction by Kathy O'Neill I think the title in itself is already genius um and it's basically how some algorithms that are used in big data can actually cause more inequality and eventually even threaten democracy um it's it can have quite a big negative impact
on on certain groups in a population and there's some really nice uh uh examples of this but it's also explained without uh a lot of uh difficult math so it's it's easy for anyone to pick up basically you don't need a math background or anything to understand this book.
Um it's it's a relatively short book as well so you you can finish it quite quickly and yeah I would really recommend this.
I love I love that one.
I think it's a it's a few years old.
It was before AI or LLMs became big um when I think the author was working inside I forget if it was Twitter or one of you know one of these companies and seeing firsthand how it perpetuates stereotypes and all again all these things that are a little more obvious today but were
less so
back then.
Especially reading it in this day of age you you see that there's some things that she had predicted and you're like wait these things actually came through and it's kind of scary but also really intriguing to see and yeah it's a really good book.
Carlton another philosophy
book no I'm still reading Concept of Mind by Gilbert Riley that I was reading last time when we had uh John on um philosophy books that go slowly but it has made me pick up a bit of Aristotle I've picked up a bit of Kant I've got picked up a bit of Nelson Goodman so I'm I'm just having massive fun.
When I finished it I'll have a fresh book recommendation.
But in the meantime Concept of Mind Gilbert by Gilbert Riley classic of 20th century British analytic philosophy.
Yeah.
It was new to me when you mentioned it before so I looked it up and um
yeah it's I mean you know it's it it's it's to my taste.
I think it's above my head but yeah but it's interesting the the idea is interesting.
Um I'm gonna read this a little more pedestrian so I've read this but um this is called Slouching Towards Utopia.
So I I like economics and history.
This is a long book but it's basically the history of uh economics in the 20th century in the United States and Western Europe and seems like it might be dry but it I think it's really interesting and it puts all of the historical events in an economic context context because of course money kind of drives a lot of things um you know like when did the United States get into World War II?
It wasn't just to help out it was also because the you know US banks had lots of loans um but he talks quite a bit about inequality and all these K-shaped recovery things and um so I think a little bit like um Capital the Piketty book but a little more readable I would say um so anyways I if I was going to recommend a single economics book I would say that and then there's a webcomics book economics that Carlton actually has has looked at um I'll put that in the show notes.
Those are my two favorite economic history books for sure um what else?
I've all we've done is ask you questions is there any topics we didn't ask you about or that you wanted to mention while you're while you have a microphone?
No I think um I think you asked me most of what I wanted to to say today.
So yeah
and then so you're you're online you is it on medium where you're still doing your writing or what's the best way for someone to learn more about what you're doing?
I think LinkedIn that's where I'm most active yeah I I do still have a medium account but I don't post as often I I feel like I should again but LinkedIn would be the the main channel.
That's the internal
guilt of the blogger like he is
and your talk I think the videos are are not up yet as when I checked but as soon as they are we'll we'll add them um yeah so yeah I was I was sad I couldn't see it in person but I know Carlton saw it and I heard I read many reviews of it.
It's a super talk.
I'm I am very excited for the videos from the Django Europe this year when they when they appear I know um you know volunteer effort doesn't always stretch to speedy turnarounds so that's fun when they come
um well thank you so much for taking the time um and thanks for you know being part of the Django community both right at conferences giving talks and now you know now you're one of the people when you go to conferences people come up to you and say oh I saw you gave a talk or I I heard you on the podcast so now
you can be
in the the other side of that uh conversation.
Yeah well thanks for having me today I really enjoyed it it was really fun.
Thanks for joining us thanks
Djangochat.com and we'll see everyone next time bye bye