Ian & Aaron are back(!) to discuss whatever happened with Ian's DB woes, what it's like to parent two sets of twins, the brand new PlanetScale Studios, & more.
Sponsored by LaraJobs & Screencasting.com.
Sent questions or feedback to mostlytechnicalpodcast@gmail.com.
Aaron
00:00:03 – 00:00:07
We are back.
Whoo.
Finally.
It's been a few it's been a few
weeks.
Exciting.
Yeah.
Longer than I thought, actually.
We're back.
Well, what's going on?
We both had a lot going on.
But I think you a lot more than me.
So
Aaron
00:00:18 – 00:00:27
Yeah.
So many so many directions to take this.
So I'm back at work.
PTO Oh.
PTO is over for now.
Aaron
00:00:28 – 00:00:39
So, yeah, we have, we have 12 weeks of PTO and I'm splitting mine 7 5.
So we just have to take it all within 1 year of the baby or in our case, babies
being born.
That's awesome.
Yeah.
Aaron
00:00:41 – 00:00:59
It was.
It was really good.
So, I got us through, you know, the break where the kids had the big kids had no school and the holidays and all of that.
And the big kids went back to school this week, and so I decided, alright.
Let's, you know, go back to work this week.
Aaron
00:01:00 – 00:01:24
And then later on, I'll take I'll take the next 5, and that'll be that'll be good.
So we made it through you know, we made it over the first hump, which is kids are little kids are I think they're sleeping, like, 4 to 5 hours a stretch right now.
So no longer up.
It's it's better.
No longer up every, you know, every 3 hours for an hour, which is just a beating.
How old are they now?
How many weeks here?
Aaron
00:01:28 – 00:01:36
So November 22nd is when they were born.
So Okay.
December 22nd.
So not yet 2 months.
So just maybe, like, 6
Aaron
00:01:37 – 00:01:41
Something like that.
Yeah.
So That's huge, though.
From 0 to
Aaron
00:01:43 – 00:01:44
6 weeks,
they're total they're totally different at 6 weeks than 0.
Like, they're much more real.
Like, they're solidifying.
Aaron
00:01:52 – 00:02:09
Yeah.
So we still have we still have the night nurse coming maybe, like, 3 or 4 nights a week, and so we do get that kind of break every now and then.
But when, you know, the night nurse isn't here, yeah, god.
Just twins are so different than having a singleton, I would imagine.
I've never had a single baby.
Aaron
00:02:09 – 00:02:35
But but twin twins are so different in that both parents are required every every time the babies need to eat.
And so there is no, like, there's no like, I'll feed them at 3 and you feed them at 6 We're both feeding at 12, 3 and 6.
So having those hours get stretched out has been super duper helpful.
Still brutal, you know, still a kick in the face, but getting a lot better.
So that much is good.
Aaron
00:02:35 – 00:02:38
Everybody's healthy, which is, you know, that's the number one thing.
Aaron
00:02:39 – 00:02:47
Yes.
Just a close second after that is is Aaron tired, and it's like, yeah, I'm sleepy.
So what's what's the deal there?
We've been
loving these photos, though.
You, like, sleeping around in places.
Yeah.
Yeah.
Those have been keeping everyone quite entertained.
Aaron
00:02:54 – 00:03:08
Yeah.
That accidentally became a thing, because I guess I've just fallen asleep a lot.
Yeah.
My wife I think my wife finds it funny to take pictures of me, you know, asleep at random places.
And then the funniest one by far was when I fell asleep at the gym.
Aaron
00:03:09 – 00:03:17
And my sister-in-law was there, and she took the picture and texted it to Jennifer and said, I think your husband's having a hard time.
Yeah.
Well, she, like, come and do, like, just check you to see if you're alive.
She's like, oh, man.
Aaron
00:03:24 – 00:03:41
But scared the bejesus out of me because she woke me up.
And I was you know, I had kind of, like I took my computer because I was like, I'm gonna, like, freaking do some stuff, like, free time, baby, and then I fell asleep.
And so it was kinda accidental, and then I got woken up, and it just I did the jump scare thing where I, like, woke up with a start.
Aaron
00:03:43 – 00:03:44
like, first
6 weeks of the I don't know if 1st 6 weeks of the new babies is peak.
Go go back to the gym time, I think.
Aaron
00:03:51 – 00:04:00
Oh, no.
I only went to the gym because they had childcare.
So I wasn't plan I wasn't planning on working out.
I was like, oh, maybe I'll work on my computer finally.
Like, I've got a free moment.
There we go.
No.
Aaron
00:04:03 – 00:04:03
Are you kidding me?
Just activity for the little kids.
Aaron
00:04:05 – 00:04:08
No.
I haven't worked out in years.
Why start now?
Well, we talked about this, I think, like, on one of those last podcasts, so I was wondering about that.
But okay.
It was it was
Aaron
00:04:14 – 00:04:22
just a nice quiet.
It was purely YMCA offers an hour and a half of of childcare.
So I took the big kids to the childcare there.
Aaron
00:04:24 – 00:04:32
Yeah.
And then, you know, I fell asleep off eating and fell asleep next to a crib and just all sorts of good, you know, when you don't sleep anywhere is
Aaron
00:04:32 – 00:04:38
place to sleep.
Yeah.
So, yeah, kids are good.
Family's good.
Life is good.
Aaron
00:04:39 – 00:04:43
Holidays were great.
Yeah.
We're making it.
Alright.
There we go.
4 kids.
No biggie.
Aaron
00:04:47 – 00:04:52
4 kids.
A lot of kids.
Lot of lot of kids under a lot of kids under 3, turns out.
I'm excited.
Hopefully, the podcast is still going when you get to 6.
When you get the next twin twins, it's gonna be very exciting.
No way.
Car you acquire then, the freak everybody.
Aaron
00:05:04 – 00:05:28
One of the things having having like, being a parent of multiples is people will stop you while you're out and about and be like, oh, I know somebody that and so we've heard a couple of stories, and one of them is, somebody stopped us at a restaurant the other day and was like, are they are they all twins?
I'm like, yeah.
They're all twins.
She said, I have friends that had twins and then got pregnant with, quadruplets.
Wow.
Aaron
00:05:28 – 00:05:47
So they they had a set of 2 and a set of 4, and somebody stopped Jennifer, I think, at the hair salon or no because she didn't have the kids there.
Maybe it was the grocery store and, said that they knew a family that had 2 sets of twins and then a singleton and then 2 more sets of twins.
They ended up with 9 kids.
I don't know.
I I get the a lot of kids thing in the old days.
It's like, whatever.
A couple are gonna die right off the bat.
You have them off the farm or whatever.
Yeah.
Like, alright.
Yeah.
Whatever.
The older ones are raising the younger ones.
But in modern society, it's like, oh, man.
Having, like, 6, 7 kids, all the expectations on you as a parent, all the whole stages of the kid, all the lack of expectations on the kids helping each other.
Like, there's just a whole different world that is just not set up for, like, you have 6, 7, 8 kids.
I don't know.
No.
And and just doing the same thing in the world, obviously, impossible.
Aaron
00:06:19 – 00:06:30
I'm already nervous about, like, having enough quality time with 4 children.
And I imagine there are 9 of them.
It's like, I don't know how you get to know them each individually.
So
I don't think yeah.
That's why it's a whole different thing.
Right?
Like, I don't know if you do.
I feel like
Aaron
00:06:34 – 00:06:35
you did.
Yeah.
I don't feel like I get enough time in my 3.
I'm like, how I don't even know them.
How do
Aaron
00:06:39 – 00:06:43
I do?
Like I haven't I haven't gone to the doctor yet, but we're done at 4.
That's for sure.
Yeah.
Lock locking it up.
Aaron
00:06:45 – 00:06:45
Yeah.
For sure.
Yeah.
Yeah.
Well, it oh, when you go out with all the kids, now you have a quad, like, stroller, or is it No.
2 double strollers, or what's the play there?
Aaron
00:06:59 – 00:07:07
I think in technical terms, we would call that sharding.
So each each parent each parent gets 2 2 kids, so we have 2 double strollers.
Aaron
00:07:10 – 00:07:32
importantly, they're all interoperable.
We have, like, a set of adapters that take, that, like so we have a jogger and it was just, like, a more normal walking stroller, and we've bought adapters for the jogger that allow the big kids' seats to go on either stroller and the little kids' car seats, you can take directly out of the car and put on either stroller.
Aaron
00:07:34 – 00:07:41
Because you just can't afford you just can't afford to have individual strollers for every set of twins.
Everything everything has to be multipurpose.
You gotta be able to hot swap.
Right?
Yes.
You don't wanna have to move the special stroller
Aaron
00:07:45 – 00:07:59
around between cars.
So the mini like, and in the same way, car seats all have to be uniform.
So in the minivan, we've got 2 big kids and 2 little kids.
In the au pair's car, we've got the 2 big kids.
And in my 4 runner, we've got the 2 little kids.
Aaron
00:07:59 – 00:08:03
Right.
So no matter who's going who's going where, it's like, alright.
Aaron
00:08:04 – 00:08:10
you taking?
Yeah.
Like, mom can take either set.
Dad can only take the youngest.
Jasmine can only take the oldest.
Aaron
00:08:11 – 00:08:12
Good lord.
Man, when you get to switching out the car seats too, like, when they expire and stuff like that.
Oh, man.
That's a whole scam there.
The expiring car seats.
Some bullshit.
Aaron
00:08:22 – 00:08:35
My I think I I got my hand slapped a little bit when my mother-in-law was like, you know, the car seats expire.
And I was like, car seats don't expire.
She was like, Eren, yes, they do.
And I was like, oh, oh, oh, oops.
Sure.
Aaron
00:08:35 – 00:08:39
Definitely, they do.
But wait.
What do you freaking mean car seats expire?
Aaron
00:08:40 – 00:08:43
I'm not buying them.
It's not a can of beans.
It's gonna it's plastic.
It's not like it's getting thrown from the car and rolling on the ground.
Like, it should still be within the safety cage of the car.
Like, I mean
Aaron
00:08:53 – 00:08:57
I'm fine expiring a car seat once per catastrophic crash.
Sure.
I'm fine with that.
Yeah.
Crash, you should get rid of it.
Yes.
Aaron
00:09:00 – 00:09:02
Get a new one.
I'm fine with that.
When it crosses over the little stamped on date, I don't know.
Yeah.
Aaron
00:09:05 – 00:09:06
I'm
so glad we're out of car seats, man.
Wait till you're out of car seats.
You got a long way to go, but it's nice to
Aaron
00:09:10 – 00:09:22
be forced to the whole, like, who's allowed to buckle the toddlers in?
Not not just, like, based on the toddler's preference alone.
Like Right.
Which parent is she going to say Yeah.
No.
Aaron
00:09:22 – 00:09:31
You have to buckle me in.
And it's like, well, you know, that person's not here right now.
Right.
That person's inside feeding other babies, so you get dad.
That's all you get.
Yeah.
When they're So anyway They get that opinionated age.
It gets
Aaron
00:09:36 – 00:09:38
Joy, don't they?
Yeah.
Yeah.
Alright.
Well, that all sounds good.
Yeah.
Yeah.
So that's, I mean, I don't really have any news other than I was, fixed my database issue, which we can talk about.
Aaron
00:09:48 – 00:09:49
Thank you.
About that for sure.
And then I just had a little round of COVID, so I'm just coming over that, but, just about we're covered.
So yeah.
So it actually kinda worked out our little hiatus here anyway.
Yeah.
But, yeah, nothing too exciting.
So let's jump into some stuff.
We got I will apologize.
I'm gonna apologize right at the top that there was, like, 5 or 6 people who emailed us, which we didn't get back to.
And a lot of it's getting into old stuff.
So we're clean slate in the email, but I did read them all.
No.
I didn't.
Appreciate them.
Aaron
00:10:19 – 00:10:26
Yeah.
Thanks for your emails, Ian.
It's the reason you didn't get one back.
I just I'm just finding out about it.
So this is all I need.
Aaron
00:10:26 – 00:10:27
Yeah.
Thanks for your emails.
Yeah.
Totally my fault.
So, but thank you very much.
So alright.
What should we start with?
What do you wanna do?
Aaron
00:10:35 – 00:10:46
Let's start with, we could either start with the new shed quarters or, model should be strict.
I think, I'm I'm primed on both of those.
Let's go let's go model should be strict, and then we'll be
Aaron
00:10:51 – 00:10:55
short quarters.
Love model should be strict.
So hit us with your tweet.
Technical.
Yeah.
Aaron
00:10:55 – 00:10:55
Yeah.
So model should be strict, for those who don't know, is a Laravel, configuration option that you can put in your app service provider, that basically forces models.
A few different things on the models forces them to not ever lazy load.
And if you try to lazy load, it'll throw an error and it also prevents you from accessing attributes that don't exist and setting attributes that don't exist, on the models.
And it'll throw an error, I believe in those cases.
Mhmm.
And yeah.
So to me, when starting a new project, I throw that in there, because I am not a lazy loading believer.
I am very much anti the a the lazy loading.
And so if you just have it in there from the start, I think that's perfect because you can just never do it.
You're just gonna get errors,
Aaron
00:11:45 – 00:11:45
and
Aaron
00:11:45 – 00:11:46
can
fix those errors.
Obviously, if you're going to existing application, that's a little different, and you might not be able to just throw that in, on full strictness.
But for a new app, I feel like strict is the way to go.
And you've I know you said you had some nuanced thoughts here, so I will be excited about these.
Aaron
00:12:03 – 00:12:09
Have the nuance.
Alright.
Okay.
So you you tweeted a picture of your app service provider, which was interesting.
I do I I liked that.
Aaron
00:12:09 – 00:12:10
I wanna see more people's service
providers.
Not many people put come on, people.
Get out there, find my tweet, and post your app service provider.
There's all kinds of fun stuff at the app service provider.
Aaron
00:12:17 – 00:12:47
There really is.
So you posted model should be strict as enabled.
Model should be strict, does accept an argument, and you can set that to, like, basically, is the app running locally?
And so you can say, when when I'm local, let it be strict or make it strict, and when I'm in production, we'll let it be looser.
So model should be strict, wraps up 3 different static flags, I guess, static pieces of configuration.
Aaron
00:12:47 – 00:13:03
Model prevent lazy loading, and then prevent silently discarding attributes and prevent accessing missing attributes.
And so my nuance is I think some of those should be enabled in production and some of them shouldn't.
So I don't
think You can individually do them too.
Aaron
00:13:05 – 00:13:16
You can individually do it.
Yeah.
And so I don't think model should be strict.
I don't think it should be used, frankly.
So here's here's my, here's here's my opinion.
Aaron
00:13:17 – 00:13:43
Hot take.
So I think the difference is, preventing lazy loading is primarily an application performance issue.
Right?
So if, you know, basically prevent lazy loading is, like, protecting you from an n plus one thing.
And if you have an n plus one in production, it's like, that's not great, but it's not technically wrong.
Aaron
00:13:43 – 00:13:51
You should fix it, but your application still works.
Your users don't get errors.
Everything is still, like, technically correct.
Right?
Aaron
00:13:53 – 00:13:55
No.
Definitely.
Why potentially?
Well, because I mean, it can be so slow that it doesn't work, or it takes Oh, okay.
Sure.
To load or whatever.
Like, you know, they're But, yes, in your most Within Yes.
General use case, that's
Aaron
00:14:04 – 00:14:09
Within the bounds of normal distribution, it's still gonna work.
It's just gonna be slow.
Right?
Aaron
00:14:10 – 00:14:23
So that's primarily an application performance concern.
However, prevent silently discarding attributes and prevent accessing missing attributes are totally application correctness concerns.
Aaron
00:14:23 – 00:14:24
So Those are both
Yes.
Those are missing issues.
Aaron
00:14:26 – 00:14:53
Those are behavior will go wrong potentially in a catastrophic way.
And so I think the one that's easiest to, the one that's easiest to illustrate is to prevent accessing missing attributes.
And this is I I feel like Taylor regrets putting this one in because it's been removed from the docs, and it's kinda hard to find anything about.
Mhmm.
And it caused a lot of problems with, like, first party packages, because they were doing some accessing of this.
Assume it's there.
Right?
Aaron
00:14:55 – 00:15:15
Yeah.
Exactly.
And so what this method does is, like, if you partially hydrate your model so let's say your database table's, like, a 150 columns wide, which can happen.
You know, if you've been running an app for 20 years, it can happen.
And you're like, actually, I only need these 4 columns from my users table.
Aaron
00:15:15 – 00:15:36
And you pull those 4 columns back, and, like, those 4 columns are first name, last name, email, and is admin or whatever.
And then in your application, you try to go access, like, a a column that you didn't pull back from the database.
Laravel is not gonna tell you, hey.
You didn't pull it back.
It's just gonna say, oh, that that value is null.
Aaron
00:15:37 – 00:16:03
And so to turn like, to prevent that behavior, you turn this, you know, you turn this method on.
And if you accidentally don't pull back the column that it says, like, is blocked or something, and then you go check to see is this user blocked.
And it says, well, I don't know.
It it, you know, it's null, so they must not be blocked.
That's a total application correctness problem, and that's, like, that's a big, big deal.
Aaron
00:16:03 – 00:16:18
And I think people are like, ah, you know, I don't wanna throw an error in production if I access a missing attribute.
And I'm like, yeah.
You absolutely do because that's a catastrophic failure if your if statement is checking for something that you didn't even pull out of the database.
Aaron
00:16:19 – 00:16:32
So I think those 2 prevent silently discarding, and that's where you're like, hey.
I'm gonna set is admin, but I'm accidentally gonna typo it, and Laravel's just gonna say, oh, that column doesn't exist.
I'll just silently discard that.
It's like, no.
No.
Aaron
00:16:32 – 00:16:34
No.
You don't wanna do that either.
Aaron
00:16:34 – 00:17:10
think prevent silently discarding and prevent accessing missing attributes are application correctness and can totally hose you.
So those need to be on in production, and then prevent lazy loading is, like, a performance thing, and that should be off in production.
Because if one sneaks through, it's not a bad thing.
And you can also log if you turn it off, you can log missed lazy loads or, like, when a lazy load violation occurs, you can log it.
And so you still get the benefit of, like, it showing up in the logs in production in this weird dark corner that you didn't test locally.
Aaron
00:17:10 – 00:17:18
So you're not you're not missing the information.
You're just not blowing up your application without without need.
So Yeah.
That's my nuance.
What do you think?
It is a it is a weird grouping probably to some degree.
Like, this this flag handling all 3 of those is maybe a little bit weird because
Aaron
00:17:27 – 00:17:27
Yeah.
They're not related, really.
So, yeah, that is true.
I I don't know.
I think I I mean, I don't really have a hard disagree with you there.
Definitely existing projects, you have to you can't do the strict lazy loading thing.
I think that's too.
But that that's for sure.
But I just feel like from a new project, I just feel like it's very un I'd rather just have it on in the beginning.
How am I gonna miss a corner?
It's gonna be very hard for me to miss a corner if I have it on from the beginning.
Aaron
00:17:56 – 00:17:56
also, I
just write some code that's, like, buried in a bunch of ifs and somehow I never get down to it or whatever.
Like run
Aaron
00:18:01 – 00:18:01
it locally.
Yeah.
Somehow I never run it even when I'm building the feature.
Like, it somehow gets gets through.
But, so I don't know.
I feel like you're starting fresh.
Aaron
00:18:10 – 00:18:13
It's like dynamic loading of relations that could happen.
Yeah.
Yeah.
Potentially.
And then
Aaron
00:18:15 – 00:18:16
Yep.
You know, I guess there is some nuances here of, like, is this a worthwhile thing to be worried about?
Right?
Mhmm.
For most people, probably not necessarily if you're just building like a side project thing and like, oh, or even an internal app where the load and such is not significant.
I think in my case where I'm doing this kind of next generation help spot, I know a lot about the load characteristics.
I know a lot about how many customers we have and how much it's gonna have to deal with.
And so I'm being quite, persnickety about performance.
Yeah.
And so I definitely don't want any lazy loading, but, This is out.
So here's a thought a little side quest based on what you've brought up, which I think is quite interesting.
What's your thoughts on?
Defining the select and what you return versus just letting Eloquent star all always, and I don't know.
What what do you think about that?
Aaron
00:19:22 – 00:19:56
I think in 98% of use cases, you should just run user where get and not muck around with the select at all.
Honestly, like and this is this is where I straddle, like actually, this is where I'm an application developer and not a DBA because which is weird because I work at a database company and teach for the database company, but I'm not a DBA.
And I think that gives me a superpower that most people in the world aren't DBAs, and I don't, like, I don't get lost in the weeds.
All DBAs will say, don't ever use select star.
Only select what you need.
Aaron
00:19:56 – 00:20:23
And it's like, yeah.
I mean, yeah.
Like, don't we have more don't we have more important stuff to worry about?
Like, I don't super care about that.
I think the difference is in the case where you do end up with a really wide table that does have a lot of blobby columns, so you've got, like, a bio and a, you know, last whatever that's 50,000 characters and all of this stuff or a JSON column that's a megabyte.
Right.
The JSON columns are big.
Now that everybody use JSON columns, that's a lot of
Aaron
00:20:27 – 00:20:27
really bad.
More data, you know Yes.
Than people accept.
Aaron
00:20:30 – 00:20:42
The problem the problem is not even or rather it's not only pulling the data back over the wire.
It's also the database, at least MySQL, puts those really big blobby columns in a different spot logically.
Aaron
00:20:43 – 00:21:12
And so, like, the row can only be so big in my SQL.
And so if the column gets too big, that column is, like, reduced to a pointer, and the big blobby stuff is stored elsewhere.
And so my my point of view is if you're doing just like a CRUD app with normal stuff, just don't even think about changing the select because you do end up getting host potentially.
But if you have a long running app with huge tables and blobby columns, and you're like, man, I only need the first name and the email here.
What am I doing?
Aaron
00:21:13 – 00:21:23
Definitely definitely change it.
And then you must, turn on prevent silent Accessing.
Yeah.
Accessing missing for
Aaron
00:21:24 – 00:21:28
So, yeah, I'm not a purist on select star at all by any means.
Yeah.
I'm sort of, like, on small things where you know it's a minor difference, like, yeah, you're returning the created at timestamp.
You're not gonna use it.
Whatever.
Whatever.
I'm not gonna worry about it too much.
But like for the main tables that are getting tons of action, I do return it.
And, this is really only for HubSpot.
Like in other smaller things I've built, I don't worry about it.
And I just, whatever, star all who cares.
But, for something where I know there's just gonna be tremendous performance implications, like it actually does add up when you're running 100 of millions of queries, like
Aaron
00:22:06 – 00:22:07
Oh, yeah.
Because you know, the network latency is always the worst part of the database lookup.
Yep.
And like you said, the discs, and then if you're on cloud infrastructure where the disk isn't your nice, fast, super on the server SSD, but it's, you know, a network's hop of its own away from the server.
So now you're going to the disk, and then you gotta go to the special spot to get the blob
Aaron
00:22:27 – 00:22:27
and the
Aaron
00:22:28 – 00:22:35
And if your database is data set up.
You know, if your database is, you know, 10 milliseconds away from your app server and now Right.
So all
of a sudden you're at 30 milliseconds, 40 milliseconds for the one query, and now you've got more queries and like
Aaron
00:22:40 – 00:22:48
thrown this huge amount of data across a longer wire because it's not on the same box.
It's like, yeah.
There's you know, you gotta decide, is it worth it for you?
Yeah.
So there is, I think, some use cases where it's important to think about, and I think people don't ever think of it now.
It doesn't ever come up right.
Aaron
00:22:57 – 00:22:57
No.
It's like nothing ever talks about that anywhere.
Yeah.
And, obviously, for, like, 95% of the time, it's yeah.
You probably don't need to worry about it.
But I think it is important to be aware of and think about at least that key key queries in your application where they're gonna get run a ton where they're already maybe heavier, and things like that.
Like, do you actually need to return those 4 JSON columns every time that you're not even using and things like that?
Aaron
00:23:22 – 00:23:33
Another factor is numb like, how large is the result set?
If you're returning 2 rows every time, it's like, ah, who cares?
If you're returning, you know, 35100 rows Right.
Because you have
Aaron
00:23:33 – 00:23:45
sort of post, you know, result aggregation on the app side or something.
And you're just gonna ditch, you know, 35100.
You're just gonna ditch, like, 30 meg of JSON once you get it back.
It's like, what are you doing?
Right.
Yeah.
So Those things add up.
So, yeah, I think we're mostly on the same page there.
Aaron
00:23:51 – 00:23:58
I think while we're here while we're here talking about your app service provider Yes.
You have a morph map set up.
Aaron
00:23:59 – 00:24:00
Love a morph map.
You have to have a morph map.
See, this is where I can get more of a map.
Without the morph map, it's chaos without the morph map.
Aaron
00:24:08 – 00:24:14
I will say if we're if we're persnicketing, I would love to see you use enforce morph map.
Yeah.
I I wanted I don't know why I didn't do that.
I think I had a reason, but now I don't know what it is.
So I should
Aaron
00:24:20 – 00:24:20
switch it
to enforced morph map, I think.
I do
Aaron
00:24:22 – 00:24:22
want it So we're
I want it enforced.
I think there was a
Aaron
00:24:24 – 00:24:26
I wanted we need it.
We need it enforced.
I wanna say I always feel like there was some kind of bug I hit or something weird like that, but maybe I have to go back and look at it.
But I do want So Yes.
I don't wanna ever want to accidentally shove in a whole class
Aaron
00:24:37 – 00:25:04
pack.
And then have to undo that somehow.
So for the edification of the listener, the the the the morph map is when you have, like, a polymorphic relationship, and by default, Laravel will put the fully qualified namespace in the database.
So you'll look in your database and be like, what does this image belong to?
And it'll say, like, app models comment, app models blog post, and you're like, man, I guess I can't refactor those class names anymore because it's now, you know, it's now hard coded in my database.
Aaron
00:25:05 – 00:25:17
And so the morph map will say, hey.
Instead of putting the fully qualified class name in there, why don't you just put the word image?
Class name in there, why don't you just put the word image or the word comment?
And then you're free.
You've now broken that association.
Aaron
00:25:17 – 00:25:31
You're free to, like, change it.
Enforce more map says, hey.
If I don't have a map for this model, I'm not gonna just fall back to putting the fully qualified class name in.
I'm actually gonna throw an exception, and you're host.
And that's what you want for sure.
Aaron
00:25:31 – 00:25:34
That is a 100% what you want.
Yeah.
And And then there is another element since we're on our performance kick.
If you use the morph map, then you can potentially
Aaron
00:25:44 – 00:25:44
Oh, yeah.
Store that in a character, a defined length character column Mhmm.
Like maybe 8 characters or something as opposed to just a bar car.
And then again, you it'll stay on the on the page in the database.
Yeah.
So it doesn't have to make a separate call out over to the blobby area where it just shoves random strings.
And so that then will increase your performance on those queries too.
And again, if it's, like, in a high performance location Yep.
Where you're gonna have a 1,000,000,000 rows or whatever, like having only 8 characters there instead of undefined long characters that always has to go grab actually adds up.
So
Aaron
00:26:19 – 00:26:28
Okay.
While we're volleying, while we're just batting back and forth, let's volle away.
I enforce morph maps with tiny integers, unsigned tiny ins.
That I I like your style, sir.
I like your style.
Aaron
00:26:31 – 00:26:33
I map I map, you know, app models comments
to the number 1.
App models blog post
Aaron
00:26:36 – 00:27:06
to the number 2.
Then what that also so everything you said is correct.
Also, additionally, you get smaller indexes.
Because the whole point is the whole point is Laravel is gonna put an index over the type and the ID, and you want your indexes to be as small as possible so you get more and more and more into memory as possible.
And so if you have a tiny integer that ranges from 0 to 255, which means you can have 255 models, which you will never have, You can fit all of that in a in an even more compact index.
Aaron
00:27:06 – 00:27:15
So enforced morph map with an integer instead, and you may see potentially microseconds of improvement, and you're gonna Well,
but I so think about this, though.
People don't realize that, a tiny integer is a single byte.
Yeah, okay, and even a 8 character long Car column is 8 times 4.
It's a 32 bites and then usually an extra for this, for something overhead or something.
So like 34, 35 bytes verse 1.
Aaron
00:27:37 – 00:27:38
Versus 1.
Yes.
35 times bigger to have that
Aaron
00:27:40 – 00:27:41
strength.
Yes.
And that's 35 times more data in your indexes and everywhere else.
Aaron
00:27:44 – 00:27:46
So should be in memory where where
With which you want them in buffer pool, if you're in my Excel lane.
Aaron
00:27:50 – 00:27:54
Does matter.
Yes.
So I'm not talking about saving disk.
Yeah.
I'm talking about memory.
Very, very important type of everything.
All the indexes at least fit in the buffer pool.
Yes.
Yeah.
And then so this is a I've go back and forth on this.
Let's I'm gonna I'm gonna throw one back over the Yeah.
That's
Aaron
00:28:08 – 00:28:10
Volleyed.
Ping pong.
Let's go.
So right along these lines.
So I'm a huge fan of the Nooms.
I love the new Pete Nooms stuff.
Like, it's so good.
I have Nooms everywhere.
And it's like, do I want though they're all back because they all have to go to the base.
Aaron
00:28:23 – 00:28:24
Gotta be backed.
Yep.
But are they back to a number or are they back to a string?
The numbers say, I mean, just tons of bytes saved, especially in like our main, the main table has like a whole bunch of things that are in nooms.
Aaron
00:28:35 – 00:28:35
Yep.
And, it could be a tiny in and it would be one little bite.
Aaron
00:28:39 – 00:28:40
Yep.
Or it's gonna be, you know, but obviously it hurts the readability in some places, sometimes to have it that way.
I don't know.
What do you think of that?
Right now, I have them as string backed, but I'm I'm teetering.
I'm probably gonna move it to into JERBAQ because it's so much more efficient.
Aaron
00:28:54 – 00:29:03
I think my my first my first thought is I've never in my life heard it called an Inoom.
Oh, really?
I don't know that I've I've ever said that
out loud.
I don't know if I've ever said that.
Aaron
00:29:04 – 00:29:07
In my head, I'm just now realizing
Aaron
00:29:08 – 00:29:09
Know that I've Enum.
Aaron
00:29:11 – 00:29:12
Enum.
Aaron
00:29:12 – 00:29:12
So I
Aaron
00:29:13 – 00:29:16
the e, and you put it on the num.
Mhmm.
So I'm enum, and you're enum.
Alright.
People will have to tell us.
Comment down below.
Subscribe and comment.
Aaron
00:29:22 – 00:29:22
And when you
Aaron
00:29:23 – 00:29:29
Boost boost that engagement.
Tell me what it is.
Okay.
So I just I
know you're distracted now.
You have no idea what I even said.
Yeah.
Aaron
00:29:32 – 00:29:34
I don't know.
It's great.
Enums are awesome.
Next topic.
Okay.
Aaron
00:29:34 – 00:29:47
So, I think, yeah, it's a trade off.
So for the, for the user who is listening, we're only talking about PHP enums.
I don't use database enums because I find them annoying.
Aaron
00:29:48 – 00:30:03
Not a believer.
They actually the database enums solve this problem in that you get the readability of the string, but the underlying storage is actually an integer, but the huge drawback is you have to alter the table, to add
Aaron
00:30:04 – 00:30:26
is, like, one free waste.
Yeah.
So I I think I personally prefer, shoving it all in there as an integer and dealing with the readability thing.
But that's just so personal because I'm not like, if I'm, you know, I don't code at PlanetScale, so I don't have to I I'm not on a team.
Anytime I'm doing stuff like this, I'm just doing it myself.
Aaron
00:30:26 – 00:30:47
And I don't have a huge habit of, like, doing, a lot of reporting or an anal analytics analysis.
That's the word.
Analysis, just like from table plus.
Right?
And so if I were, you know, if I were doing a ton of raw SQL analysis, and I'm always like, well, f.
Aaron
00:30:47 – 00:30:57
Like, what does one mean here, and what does 2 mean there?
I would get probably frustrated, but most of the time, it's the application that's talking to it, and so I don't super care.
Yeah.
I mean, we're not in the database that much.
You know?
Sometimes you're in there to help a customer with something or whatever.
But most of the time and even that, oftentimes, there's, like, some admin panel or whatever you're interacting with.
Right.
So it doesn't, it still doesn't
Aaron
00:31:10 – 00:31:10
matter.
And it's just so huge.
Because it's like, if you have 5 of those columns, and each one's taking 40 bites when they could take 5 bites or 200 bites instead of 5, that's a lot of memory and must be expensive.
That's what you're paying for.
That's the big dollars just to get the memory.
Aaron
00:31:26 – 00:31:46
Yep.
I mean, there are I don't know.
I I don't know if at this point it's worth it, but you could do a strict 4 character column with 8 care set or char set or car set that is Right.
That is, less expensive than u t f 8 multibyte because those are 4 bytes per character.
But there are some that are 3.
Aaron
00:31:46 – 00:31:46
I
think I think with single store, it's all UTF 8.
Uh-huh.
Maybe in my sequel, it's not.
I don't recall.
Correct.
Yeah.
I guess I guess you change the car set, but can you change the car set on just a column?
I guess you can.
Aaron
00:31:56 – 00:32:02
You can.
Mhmm.
Okay.
Because you can have a binary you can have a binary car set on a column, and that's just raw raw bias.
You could also get into, like, yeah, flip flipping flags on bit
Aaron
00:32:07 – 00:32:07
Hell yeah.
Columns or whatever.
I don't know how that stuff works.
I don't know stuff that's all.
It's just I got a
Aaron
00:32:11 – 00:32:25
bit I got a video on that.
So to a plain scale channel, I got a video on storing storing flags in a single integer column using bit masks.
Totally unhinged, completely unreadable.
You wanna talk about unreadable?
Yeah.
I mean, that's what I mean.
Aaron
00:32:26 – 00:32:36
Column and you look at it and it says 17, and the row below it says 16, and the row below that says, like, what's another one?
9.
And you're like, what do any of these numbers mean?
Aaron
00:32:37 – 00:32:45
That's really interesting.
So, yeah, the plan and skill channel has a a video on that that I find very interesting and probably a a bad idea was
my decision on it.
I might be a step too far in the maximum efficiency I think it is.
Direction.
Aaron
00:32:51 – 00:32:54
If you're doing that, you better have a good reason.
Aaron
00:32:55 – 00:33:01
And at that point, I'm just trusting that, like, you know exactly what you're doing because you're reaching for a really esoteric solution.
Yeah.
You're at some very crazy scale where you you're you're trying to eat out every little minutia ounce of performance.
So I'm not all the way to that.
Alright.
Shedquarters.
If we don't have another database column back and forth here.
Shedquarters.
Alright.
Shedquarters.
Let's do it.
Aaron
00:33:20 – 00:33:22
Ian.
Mhmm.
Four kids.
Aaron
00:33:23 – 00:33:24
of kids.
Aaron
00:33:25 – 00:33:25
Too many.
It's a
Aaron
00:33:26 – 00:33:29
Too many.
It's just enough.
It's just enough, but it's too many.
Aaron
00:33:30 – 00:33:48
So, you know, when we found out we were having another set of twins, we moved out of the house, sold the house, to which the shed quarters had become fundamentally attached.
Right?
There's a world in which I move it, but I think we got more value from selling it than we did.
Right.
I would ever get from moving it.
Aaron
00:33:49 – 00:34:00
So we moved into the rental where we currently live right now, and, I am in a 9 by 9 room that directly through these glass doors
is I made that mistake too.
Glass doors.
Terrible idea.
Aaron
00:34:04 – 00:34:14
So it's, like, our our single we don't have, like, a formal dining and a normal dining.
It's what what are we not the the Vanderpiel.
Modern.
Dining.
Right.
Aaron
00:34:15 – 00:34:20
So the kids sit right there, you know, when they're eating and they're, you know, screaming at the toys and stuff like that.
Aaron
00:34:21 – 00:34:21
like
Aaron
00:34:22 – 00:34:33
Not optimal.
And now there's 2 more of them that, you know, she's out here in the living room feeding, and I don't wanna be like, hey.
You gotta go in the backwards, you know, darks because I'm I'm working out here.
It's like, no.
That's fucking horrible life.
Let me interject here for one second.
So when we Okay.
Started HelpSpa and the company, we had a condo.
And we had no kids.
And it was 2 level, nice little condo.
And my office was, like, in what the dining room.
So it was like a desk in the dining room and then the little four like dining room table thing.
And we had our first kid and Jamie be in the living room, which is right next to all this, like playing with the kid, doing whatever.
And then if I had a phone call, because I was just doing support too, and I was answering the phone and we'd have this thing where we I don't know how we got calling it this, but we started calling it illegitimate family.
And so I'd be like, illegitimate family.
And she'd be like, okay.
She'd scoop up the kid and, like, run upstairs to, like, the farthest away bedroom so that, like, he's crying and yelling or whatever.
And I'm like, I'm on the phone.
And this is all, like, a 1000000 years before COVID and everybody works from home, and you just expect people having people in the background.
Like, you know, it's like a business.
I'm being formal and business y.
Right?
And it's like, no.
We gotta, like, run away with the child because there's, like, not enough room in this place to have separate Yeah.
Aaron
00:35:33 – 00:35:35
Illegitimate family history.
Aaron
00:35:37 – 00:35:37
very funny.
Anyway, continue on.
So you got, glass doors?
Aaron
00:35:41 – 00:35:58
Yeah.
Glass doors.
I've done the best I can with the treatment, people yelling, people screaming.
Also, like, it's very, very nice to be able to walk out and, like, say hi to the kids and play and laugh.
But they're also getting the big ones are getting to the age where it's like, oh, dad's out.
Aaron
00:35:58 – 00:36:02
Come jump on the bed with us.
And I'm like, I really I can't do that right now.
Yeah.
And that's its own issue.
Yeah.
Aaron
00:36:04 – 00:36:29
Yeah.
And that, like yeah.
So, we Jennifer and I started talking, and I was like, I don't think I can work in the in the house anymore.
And she was like, I think it would probably be better for you to not because part of the problem is if I'm gonna record videos, my windows are so small, like, while they're napping, if they nap and then at night.
And a lot of it, frankly, has become record at night.
Aaron
00:36:29 – 00:36:50
And that's just I don't have the same energy to do that now that I have these other 2 that I'm feeding at night.
Right?
So I gotta get my work done during the day, like a normal person.
And so I started thinking, like, why what what could I do here?
Like, what what are the what are what are the common solutions?
Aaron
00:36:50 – 00:36:57
Like, what is common to man?
I would go get an office.
Right?
That is very normal.
I I would be so boring if I did that.
Aaron
00:36:57 – 00:37:05
Right?
So I went and looked at, a few offices and emailed some people.
Office space is expensive.
Yeah.
It's very We
have, like, coworking nearby or, like, some office space?
Coworking.
Aaron
00:37:09 – 00:37:28
Yeah.
There's coworking, and there are offices and coworking.
The problem is, the problem is I need a lot of space.
Right?
Because I've got I've gotta set up cameras, and I've gotta set up lights, and I've got, a bunch of very expensive equipment that I need to keep in this place, and so that's an issue on its own.
Aaron
00:37:29 – 00:37:46
And so I'm, you know, I'm emailing, like, like, Regis is the big, like, rent your own office kinda conglomerate, And they're like, you need an office for 1 person?
Great.
We have a, you know, an 8 by 10 office.
I'm like, no.
That's what what I'm in now, and I'm barely, like, I'm barely making it.
Aaron
00:37:46 – 00:37:57
Tell me, like, tell me what a 10 by 20 is.
And they're like, oh, so you want 6 desks in there.
I'm like, what?
No.
And, of course, you know, they price it out for a company that's trying to house 6 people.
Aaron
00:37:57 – 00:38:06
It's like, this is stupid.
I don't need to do this.
I'm a I'm a very I'm a very creative person.
So I started looking at apartments.
Oh, wow.
I would have thought that.
Look at that.
Aaron
00:38:10 – 00:38:24
At apartments near Okay.
Nearby our house.
So the closest office was, like, 15 to 20, 25 minutes away.
Very expensive.
The closest apartments, Ian, are 3 minutes from our house.
Aaron
00:38:24 – 00:38:31
Literally.
3 minutes.
Dallas is blessed or cursed with an abundance of apartments.
We got apartments everywhere.
Aaron
00:38:32 – 00:38:33
what do they call this?
It's like Pierre de Tet or whatever.
It's like when you have your house in the city and your house I
Aaron
00:38:37 – 00:38:52
don't know what that means, but I think that is actually exactly what it's called.
And so I started I went and toured a bunch of apartments, and I was like, hey, apartment guy.
Here's the deal.
I want a studio apartment because I'm not gonna I'm not gonna live here, man.
And he was like, what do you mean you're not gonna live here?
Aaron
00:38:52 – 00:38:53
I'm like, I
I make a lot of neighbor ever.
Aaron
00:38:56 – 00:39:03
Yeah.
Exactly.
I'm gonna be here from 9 to 5 when everyone is gone, and then when everyone's home, I'm gone.
Gone.
So I told him, like, hey.
Aaron
00:39:03 – 00:39:18
I make a lot of I'll make a lot of YouTube videos.
I have, you know, a full time job.
It's not like I'm gonna be bringing you know, I'm not gonna be holding meetings here.
It's literally just me, but I need a big space, a safe space.
I need, like, a place where I can set everything up and leave it.
Aaron
00:39:18 – 00:39:22
And so I toured I toured maybe 6 different apartment complexes
Aaron
00:39:24 – 00:39:29
And I signed a lease for an apartment.
I've got an apartment now.
You know, I love that you the a huge upside, though, is, like, you've got your own kitchen.
You got your own bathroom.
Like Dude.
It's very nice.
Aaron
00:39:37 – 00:39:47
Yes.
Yes.
Versus the coworker.
Apartment, and I, I'm I'm gonna tweet this today.
And so by the time people are hearing this, hopefully, they've seen it on Twitter.
Aaron
00:39:47 – 00:39:51
The apartment is going to be called the PlanetScale Studios.
So
Aaron
00:39:52 – 00:40:15
It's gonna be a it's gonna be a permanent video setup in so it's this is actually a 1 bedroom, because at this complex, it was cheaper to do a 1 bedroom than the studio at the other complex, and I was like, what do I care?
I just want the cheaper one.
Yeah.
So it is a one bedroom, and so I'm gonna set up every all the lights, and I got a new camera.
I got some different lights.
Aaron
00:40:15 – 00:40:21
Oh, what camera?
Upping upping the production quality.
I got I got a, I got a Canon r 6.
No.
Sony?
You didn't go Sony.
Aaron
00:40:23 – 00:40:30
I'm staying Canon family.
So new camera, bigger lights, better lights, better lights, better desk, better backdrop.
So I'm upping
up the whole bed?
You gotta set up the bed.
Aaron
00:40:32 – 00:40:33
There's no bed.
I'm not gonna have a bed.
Aaron
00:40:35 – 00:40:36
No.
There's no bed.
You've got a bedroom.
The bedroom is for the bed.
Aaron
00:40:38 – 00:40:39
No.
You guys are
gonna need it.
Studio.
This way, either one of you could go bail and crash at at
Aaron
00:40:43 – 00:40:44
this place and get
Aaron
00:40:45 – 00:40:51
That's actually one of the rules is, she was like, I think this is a great idea.
You can't leave me alone and go nap.
And I was like, yeah.
That's She can know.
She can be the one who who goes with bees alone.
Aaron
00:40:54 – 00:41:01
Okay.
We'll we'll talk about yeah.
We'll talk about potentially a bed couch.
There's there's a roofer bed.
The whole What's in the
Aaron
00:41:02 – 00:41:05
I don't know.
2nd set or something.
I don't know.
We'll see.
We'll see.
We'll Set?
Oh, man.
Alright.
Aaron
00:41:07 – 00:41:09
Yeah.
Yeah.
Yeah.
We're we're doing the whole thing.
So Alright.
Aaron
00:41:10 – 00:41:11
At the PlanetScale Studios, I'm gonna Is
this corporate sponsored here?
Is this is this, like, official, or is this semi
Aaron
00:41:15 – 00:41:18
official?
This is this is official.
This is the official PlanetScale
Studios.
I like it.
Yeah.
I like it.
Aaron
00:41:20 – 00:41:37
And so I'm building out a new set, and I'm gonna set, you know, set I'm going to, like, try to hang the lights from the ceiling.
It's going to be kind of fun because, like, you can't really do a lot in an apartment.
Like, you're not allowed to, like, totally screw stuff to the wall.
Right.
So it's gonna be a fun a fun project.
Aaron
00:41:38 – 00:41:51
But so benefits are it's gonna be so quiet.
It's gonna be so quiet.
You know, everybody everybody's at work during the day.
I'm gonna be at the apartment during the day.
The good news is I was completely forthright with the leasing agent, and he was like, yeah.
Aaron
00:41:51 – 00:42:05
I don't that's fine.
I don't care.
Like, you're gonna be you're gonna be a good tenant.
That's fine.
In the lease, it says you can, like, perform business out of there provided it is like a work from home business, and you're not having people come.
Aaron
00:42:05 – 00:42:12
And I imagine they added that once, you know, COVID hit that was like Right.
Yeah.
You all work from home.
Right.
So I'm I'm well within my lease rights.
Aaron
00:42:12 – 00:42:33
It's gonna be very quiet.
And then, yeah, I've got my own bathroom.
I've got my own kitchen.
And so this is gonna unlock this is gonna unlock, a new, like, a new vector for healthy living for me because, you know, I've tweeted about it, but I've been in a lot of physical pain recently, which we can talk about later.
But this is gonna be like, okay.
Aaron
00:42:34 – 00:42:57
Instead of leaving the house every day because you want to get out of the freaking house and going to pick up, you know, Chipotle, Chick Fil A, McDonald's just because you need an excuse to get out.
Alright.
You can, like, you can, like, make lunches in in the quiet kitchen where you're not feeling like I've got to get out of this house.
Yeah.
And so, for for a future show, I'm I'm gonna be a smoothie guy.
Aaron
00:42:57 – 00:42:58
I'm becoming a smoothie guy.
I've done some rounds on the smoothie.
Aaron
00:43:01 – 00:43:13
Yeah.
I I I eat kinda like, you know, if you have a 12 year old nephew, that's basically how I eat.
Like, I I kinda just wanna hamburger some chicken.
Yes.
Chicken nuggets, like, maybe some pizza.
Aaron
00:43:13 – 00:43:15
That's basically what I wanna eat all the time.
Probably not all the time.
Aaron
00:43:16 – 00:43:30
Like, you you give me an avocado, and I'm like, I'm not touching that.
Can you send it back?
I think I got some avocado on my on my quesadilla.
Can you send it back?
And so, you know, I've started doing these smoothies over the break as a way to, like, hopefully change my diet a little bit to decrease Mhmm.
Aaron
00:43:30 – 00:43:34
Maybe pain and inflammation a little bit.
Yeah.
And you can put anything in the stomach.
Aaron
00:43:35 – 00:43:36
You can put anything in there.
Spinach.
Always put spinach is just baseline.
Aaron
00:43:38 – 00:43:39
Spinach.
Spinach.
Avocado.
Aaron
00:43:40 – 00:43:48
All kinds of random crap.
You can just, like, put it in there, and you put a glob of peanut butter, and you're like, peanut butter smoothie.
You can.
I will say it goes
away.
You do have to be a little bit careful if if you have a weight loss goal.
I don't know if you have weight loss goal, but if you have weight loss goal, you can make a smoothie that's, like, 15 or
Aaron
00:43:56 – 00:43:57
count count and you're
still hungry at the end.
You're like, oh, I'm gonna have the smoothie.
Because, yeah, like, once you put a bunch of peanut butter and avocado and this and that, like
Aaron
00:44:03 – 00:44:04
Yeah.
Totally.
It's, like,
super calorie filled.
But yeah, yeah, I love smoothies.
They're awesome.
Get some good protein powder.
I like the naked protein powder.
Aaron
00:44:11 – 00:44:17
Yeah, I think we actually got that.
Yeah, I got some flavor protein powder for it.
Yeah.
Yeah.
My wife has been running the show on that.
Aaron
00:44:17 – 00:44:25
She's the boss, and she just, like, hands me a smoothie, and I'm like, what's in here?
And just drink it.
And it's great.
I love it.
Yeah.
I love smoothies a lot.
Aaron
00:44:26 – 00:44:36
That's gonna that's gonna open up because I'm gonna have a refrigerator there.
What what am I gonna what am I gonna put in?
I'm just gonna put, you know, bags of frozen fruits and veggies in the in the freezer.
That's perfect.
So it can just sit there.
It doesn't go bad and all that stuff.
You just need, like, some milk or almond milk or whatever you're gonna put as a liquid, and that's it.
Or water even.
Aaron
00:44:45 – 00:44:51
then this is this is just I I'm I'm blowing my own mind here.
Apartments have gyms.
Oh, free gym membership.
Apartments have gyms.
Genius.
Aaron
00:44:56 – 00:45:10
I'm gonna I'm just gonna be able to walk downstairs, So I'm gonna take, you know, 10 minutes to make a smoothie at lunch.
What if I take another 20 to walk downstairs, do a little bit of workout, come back, crush some videos?
I think you should.
That sound?
You should you should absolutely try to take lunch.
I think taking lunch is underrated.
Take lunch because you're gonna work, you know, I know at least that you have been doing this and I assume you're gonna continued somewhat like you're working at night.
Aaron
00:45:23 – 00:45:24
Yeah.
Working after the kids go to bed.
Right.
So like when you work straight through and you don't even take lunch and then like, yeah, you get your couple hours at home and the kids, and then you go back to work after they're really sleeping.
Yeah.
Like that lunch break is kind of huge.
Aaron
00:45:35 – 00:45:36
been pretty bad about
it.
Yeah.
Like even just a walk, like the, the apartment complex will still be it'd be a good place just to even walk.
Like, just literally take your smoothie and, like, go walk around the complex, like Yeah.
For 30 minutes, listen to an audiobook or whatever podcast.
Aaron
00:45:50 – 00:45:50
Point.
Yeah.
Yeah.
So I would try to put some of that stuff in.
But, Yeah.
That's I mean, it sounds I love this plan.
Aaron
00:45:58 – 00:46:09
And it's cheaper than the office quotes that I got.
It's cheaper.
The all of these amenities, and it's cheaper than getting an office in some boring soul sucking building.
Yeah.
Yeah.
I don't think you'd wanna be on office on your own.
I like my setup here is nice because I have my cousin and my brother, so it's like some human interaction, but just to, like, be just to get an office office where you're just straight by yourself, I think is pointless.
The, you know, in a co working space is at least adds a little human interaction, which is probably good.
But at the same time, you're at a point where like your time for human interaction right now is limited, in terms of like making new friends and stuff like that.
Aaron
00:46:36 – 00:46:39
So I've I've no It's been years
since I've made a new friend.
Aaron
00:46:40 – 00:46:42
What do I need a new friend for?
So Yeah.
It's probably not a huge concern right now.
So no.
What's your plan gonna be?
Are you trying to go there all day?
Are you gonna do half days?
Aaron
00:46:50 – 00:46:52
No.
Just all day.
Aaron
00:46:53 – 00:46:58
Yeah.
This is, like, I I leave the house to go to work like it's the 19 fifties.
Yeah.
What, I guess you still have the au pair at home, right, during the day?
Aaron
00:47:03 – 00:47:04
We do.
Correct.
Okay.
So that's good.
Yeah.
So you have there's there's some help there, and you're only 3 minutes away if you needed to.
Aaron
00:47:08 – 00:47:11
I'm only 3 minutes away, provided everything else down.
Yes.
So or whatever.
Yeah.
Come back for lunch.
Aaron
00:47:12 – 00:47:15
And you'll be able to do that for lunch.
Yeah.
Right.
Yeah.
That's a good trick too.
Like, eating at home is always better.
But so tell I'm a big eat out guy too, but, you're always better when you're eating at home.
Yes.
Always just Better in every way.
Yeah.
Well, I like this plan.
I think people are gonna be surprised.
Aaron
00:47:34 – 00:47:46
think so.
I'm so excited.
It's it is just like it just is it's just got my name all over it.
It's just, like, weird enough that people are like, what are you?
You're doing what, man?
Aaron
00:47:47 – 00:47:54
But it's just, like, it's it's gigabrain.
It's like, oh, dude.
And we didn't even cover the last amenity.
Apartments have pools.
Oh, yes.
That's true.
You could bring your crew there and boom.
Aaron
00:47:58 – 00:48:00
I could bring your crew there in the summer.
Aaron
00:48:02 – 00:48:06
Basically, I basically just got a country club member.
I'm just gonna say it's a country club.
Yeah.
I like this stuff.
Aaron
00:48:09 – 00:48:17
If I were if I were a wealthy man, I would have an office and be a member of a country club.
Instead, I have an apartment.
But it's just as good.
It's better.
Aaron
00:48:20 – 00:48:21
It's just as good.
At a country club, you don't have a private area all to yourself anywhere.
Aaron
00:48:24 – 00:48:24
I know.
You know, in the locker room or whatever.
Like,
Aaron
00:48:27 – 00:48:27
this is
like, you got your own space here.
So, I'm very excited to deal
Aaron
00:48:31 – 00:48:46
with this.
I kinda freaked out and was like, I gotta get out of here.
I'm gonna go look at offices.
Was disappointed by the price and the the benefits and then was driving actually, was driving home and thought, oh, there's 6 apartment complexes right there.
I wonder what I can pull off there.
Aaron
00:48:46 – 00:48:47
And it was cheaper.
So
So do you have it?
Are you in, or are you not
Aaron
00:48:50 – 00:48:54
in yet?
Lisa started.
After we get off this call, I'm going to get the keys.
Aaron
00:48:55 – 00:48:57
Today is literally the day.
Yeah.
We're gonna have update images inbound.
Updates.
Aaron
00:49:01 – 00:49:03
There's gonna be so many pictures.
It's gonna be great.
Aaron
00:49:05 – 00:49:06
be so awesome.
Aaron Francis Band Club for the original shed quarters build out.
So excited, for it to to get to experience this now.
Aaron
00:49:13 – 00:49:15
Baby, it's so good content.
I really love the Home Office.
People love the Home Office story.
Aaron
00:49:19 – 00:49:27
Yes.
And it's gonna be great.
It's gonna be great for planet scale because it's literally gonna be, you know, when I announce it on Twitter, this is the new planet scale studios.
Aaron
00:49:28 – 00:49:28
cool is that?
Like, you know what you need to get if since you have corporate sponsorship, you need to get one of those custom, like, led neon light things, like the studio or something.
Okay.
Yeah.
Yeah.
You gotta have that.
Yeah.
I love it.
It's gonna
Aaron
00:49:42 – 00:49:51
be awesome.
Doing it, and that's gonna be a ever present fixture in the backdrop is the custom a custom planet scale LED.
It's so cool.
Aaron
00:49:53 – 00:49:54
I'm so freaking pumped.
Aaron
00:49:55 – 00:49:56
This is
Aaron
00:49:57 – 00:50:00
Isn't this wild?
What did you expect?
Did you expect apartment?
No.
I I figured I I wasn't sure.
It seemed you seemed tricky about the talking about it.
Right?
So I was like, well, it can't just be like, I know you're renting, so you're not gonna build something.
Like, maybe it's like a RV that you're gonna park back there or something.
That's not really great stare the cool.
Video unless you really got Yeah.
I mean, some probably would work,
Aaron
00:50:21 – 00:50:24
but I don't know.
Expensive, but that would be hysterical.
Some kinda, like, trailer that you can, like, move
Aaron
00:50:27 – 00:50:28
more Oh, yeah.
Totally.
With the idea that you're gonna move it or, but, yeah, apartment.
I like this.
This is way better.
I think this is I think you nailed it.
This seems
Aaron
00:50:36 – 00:50:36
Yep.
Optimal.
Hopefully, you have a good neighbor and not some some crazy neighbor.
I know.
Hopefully, I
Aaron
00:50:40 – 00:50:42
don't have a neighbor that's also home from 9 to 5.
Yeah.
Because they're loud or something.
They're doing that.
Yeah.
Something or they have they have 6 kids and the walls are thin.
Exactly.
There are a few risks here.
Aaron
00:50:51 – 00:50:53
There are there are definitely a few risks.
But I think it should be fine.
Aaron
00:50:54 – 00:51:06
When I when I told my, few of my friends I was doing this, they were like, dude, have you ever been to an apartment?
It's so loud.
And I was like, okay.
So hang on.
First of all, this is a good like, it's a good apartment complex.
Aaron
00:51:06 – 00:51:31
Like, it's not Yeah.
It's not the cheapest one in Dallas for sure.
Right.
Also, I think I think I'm I'm basically working the reverse schedule as everyone else.
So my my understanding or my my guess is that the frustration with apartments being loud is at night when people are watching TV and screaming at the TV or on the weekends when they're at the pool dorking around and listening to muse music of the youths.
Aaron
00:51:31 – 00:51:38
Right?
And so I'm I just don't think I'll be there during those times.
So that's my hope.
Yeah.
I could be proven hysterically wrong, and that would make
it a good attempt.
Be a huge one too, but you're definitely most of the year, we'll have kids will should hopefully be in school and so that shouldn't be too much of an issue other than maybe summertime or whatever.
So Yes.
Totally.
Yeah.
I think the risks are are low.
Yeah.
So Alright.
I like it.
Aaron
00:51:55 – 00:52:03
So exciting.
So, yeah, look forward, you, Ian, look forward to a tweet.
Everyone else, hopefully, you saw my tweet, by the time you hear this.
Alright.
So then during our hiatus here, you also said you're doing a static site package.
Like, what the hell is going on?
Are you doing more static?
Aaron
00:52:11 – 00:52:17
Bring me don't bring those curse words at me.
I mean, you're so frustrated.
What the hell?
So here's the deal.
I was on,
how much stuff did you do?
Aaron
00:52:19 – 00:52:27
No.
Not it's not too much.
Not not enough.
I was on, what's it called?
Overengineered with boss man Chris.
I didn't listen to that.
I should listen to it.
Aaron
00:52:29 – 00:52:31
How did you know that I was doing this then?
Well, I think I saw it on Twitter.
Yep.
Aaron
00:52:34 – 00:52:46
Oh, man.
That's crazy.
Yeah.
It's not it's it's really not, One is it hasn't even been started besides, like, coming up with a dope name for it that I can't share now.
Aaron
00:52:47 – 00:53:19
So a dope name and some branding.
And the the idea here is that, like, I think I can offer a way to build static sites with vanilla native full on Laravel and then have, like, really strong first party integrations to the static site hosts such that, you're like, alright.
I built my site.
Now I wanna run it on Netlify, and you can just say deploy Netlify, and it'll handle, like, setting up, you know, redirects based on how the Netlify platform works.
Maybe that's middleware.
Aaron
00:53:19 – 00:53:39
Maybe that's a configuration file.
Maybe that's edge middleware.
Setting up, like, OG images and syntax highlighting and getting it all deployed, that kind of stuff, and, like, having it as a GitHub action as well.
And so it's really not it's not something like next or next where it's this huge framework on its own.
It's kind of this package that's like, hey.
Aaron
00:53:39 – 00:54:08
Build out everything you want with, you know, route model binding, and then we will figure out all of the final URLs, and we'll construct a package, that is conforming to any of these, you know, 10 different first party, static site hosts from get pages to Cloudflare pages to Netlify to Vercel, and then we'll just push it out there, and here's a GitHub action to do it.
So it's not huge.
I think it is pretty cool, and we'll see when it gets done.
Could be something that goes back burner.
I could foresee.
Aaron
00:54:13 – 00:54:26
Oh, yeah.
For sure.
Yeah.
And could be could be something that's, like, basically, I build it and use it myself, and then that's how anything ever gets pushed on it.
It's like, oh, I need this now, and I'll I'll build that out myself too.
Aaron
00:54:26 – 00:54:32
I know you have you have so many problems with my static site that you're like, I don't I don't think this is a good idea, but I think it's a great idea.
No.
I I don't think that I think I don't know if it's a good idea from your time perspective.
Like, I don't know if this, like, pushes screen casting forward.
Does it push
Aaron
00:54:41 – 00:54:41
the YouTube
channel forward?
Like, whatever
Aaron
00:54:43 – 00:54:54
those things are going on.
That's one of the things I'm discovering about, making YouTube videos is I need to personally, I feel like I need to have real projects from which to pull interesting tidbits.
Gives you something to do.
Aaron
00:54:57 – 00:55:04
Yeah.
And so this is like a this is like a content muse, kind of.
So we'll see.
But Like I said, I think you need to pick up
a database project then.
You need some kind of heavy database thing.
Aaron
00:55:09 – 00:55:14
Well, yeah, for for the plain and scale side, yes.
But for the personal side, I need some Laravel stuff.
Aaron
00:55:15 – 00:55:24
So yeah.
So like I said, I haven't actually started on it, but it's cool, and I've got a great name for it.
It's kicking around.
Great name is important.
You got the good domain.
Aaron
00:55:25 – 00:55:25
You got
Aaron
00:55:26 – 00:55:27
Yep.
Yep.
Aaron
00:55:28 – 00:55:31
I'm halfway there, so look for it in 2025.
Alright.
So the other item we had on the list was my database woes of MySQL and out of control memory and all that stuff.
Yeah.
It sounds like
Aaron
00:55:42 – 00:55:42
it cracked it.
8 weeks of that or 7 weeks of that or whatever, freaking sandy.
This is the the sad part of SaaS where you think it's all happy and fun.
It's not happy to babysit a database server for
Aaron
00:55:52 – 00:55:53
2 Yeah.
But we are over it.
We figured it out.
Yeah.
I was basically we're gonna get super esoteric, but there's this thing called table table open cash.
Aaron
00:56:04 – 00:56:06
I've never heard of this in my life.
So there's table open cache, which is how many tables you could put in the cache when like the table definitions, the, the database system stores.
Aaron
00:56:14 – 00:56:14
Okay.
And then there's, you could have a set number of instances of that cash And the recommended amount in the documentation is 1 per CPU, which is what we had.
So we had 10,000 tables set as the cache.
We had 16 for the number of instances of that cache.
We had tried making the the open table cache lower and higher down to, like, 500 up to 20,000.
Like, everything in between didn't impact anything.
Aaron
00:56:43 – 00:56:43
K.
But the number of instances apparently did because when we dropped it from 16 to 4, everything was perfect.
Then it all worked magically and everything's fine.
Really?
To change that is not dynamic.
Open table cache is dynamic.
Open table cache instances or table open cache instances is not dynamic.
So you have to restart the server.
We can actually do without downtime now because amazon launched this new thing, which is actually pretty cool called, blue green migration.
So you can basically build a clone of your environment and then it'll just DNS switch over when you want and the clone's have different parameters set.
So we were able to do it.
It just costs money, but it doesn't cost downtime.
So we're able to do it no downtime.
But it was annoying And something I didn't change initially because it was annoying, and the doc said you shouldn't really have to.
We were set up appropriately.
But my QA docs, whatever, nobody cares.
So change this and it memory's a flat line.
Server's super stable.
Everybody's happy.
Everything's fast.
Everything's wonderful.
Aaron
00:57:48 – 00:57:55
So how in the world did you did you find this?
Was this Percona?
Had they seen this before?
Or was this just like
No.
They hadn't seen it before.
So the good the good news is
Aaron
00:58:00 – 00:58:00
Wow.
Good for them.
Was Percona.
Kona after paying them lots of money.
They did fund it, which is good.
And yeah, he just taught us change after like several, I mean, we have been working with them for several weeks because the way they do it is like 4 hour chunks over different days spread out.
It's not like the guy just sits there with you for
Aaron
00:58:19 – 00:58:19
2
weeks straight.
Like, it's all spread out, which I guess makes sense because sometimes you're changing something and then you're gonna wait and see 2 days.
What happens?
Right?
So, like, they spread out when the
Aaron
00:58:27 – 00:58:29
action works on your project.
Method.
Right.
Yeah.
So, so anyway, yeah, just do this.
And, we did it over, It was a pretty good time for downtime if we were gonna have any, which we didn't, but it was over Christmas or something like that or
Aaron
00:58:41 – 00:58:42
yeah, whatever.
Anyway, we, we switched it over and it worked.
So, yeah, the guy it wasn't the guy's recommendation.
I had seen this.
It is the only setting in the entire MySQL configuration documentation that even talks about memory usage and that this setting can impact memory usage.
Yeah.
Aaron
00:58:58 – 00:58:58
It's a
Aaron
00:59:00 – 00:59:01
Yeah.
But so, anyway, so it fixed it.
Brutal.
And we're back back online.
Aaron
00:59:07 – 00:59:11
So you're back online and you're migrating to single store?
Is this what I'm hearing?
No.
We're not migrating to single store.
So I haven't talked about this on here much yet, but, yeah, next generation help spot, which is gonna be a clean slate, We'll use single store.
Aaron
00:59:21 – 00:59:22
Ground up rewrite?
Yeah.
Ground up rewrites.
Oh, gotta cover
Aaron
00:59:25 – 00:59:25
that one day.
Yeah.
We'll be talking more about that.
I'm sure over a time.
It's gonna take, like, a year.
So it's, we got we can it'll be sprinkled in as I hit stuff, and we'll a little bit more.
But, we are gonna pull we're gonna pull a page out of the d h h playbook, which is Ian.
I know it's crazy talk.
Existing customers, which are on help slot 5.
Uh-huh.
They can stay on there forever if they want to.
So like, we'll keep that stack up.
That's that has this existing my SQL issue, like whatever that stack can just stay up.
They can stay on there.
I think a lot of them will eventually want to move to the new version.
And so we'll have a way to do that, of course.
But, but this way, it also frees us up to do some different things.
Because it's just like a lot we've learned in 24 years and
Aaron
01:00:11 – 01:00:12
Different product at that
point.
Yeah.
I want stuff to work differently than it did in the current help slot.
And so this way there's a little bit less pressure there.
It's like, I think it's better this way, but if you don't like it or you don't wanna relearn it and you're very happy with current help spot, then you can just stay on current help spot and you don't have to change at all.
And that's fine.
But if you wanna change, then if you like these new ideas, then, you know, we have the new platform that Yeah.
And so it was so, yeah.
Man, that's crazy that
Aaron
01:00:39 – 01:00:42
you love d h e DHH so much now.
That's wild.
Aaron
01:00:43 – 01:00:44
It's not
Aaron
01:00:44 – 01:00:47
bad.
That's how interesting.
So we'll see how that goes.
That'll be a whole interesting thing.
Aaron
01:00:50 – 01:00:51
Big that's a big move.
Aaron
01:00:52 – 01:00:55
only a ground up rewrite, but a different database technology.
Yeah.
A whole different database structure, too, because current I think we talked about before, but we have a database per tenant now.
Right.
Yeah.
And it'll be, more traditional
Aaron
01:01:05 – 01:01:05
Centralized.
IDs.
Yeah.
Single tables.
Aaron
01:01:08 – 01:01:09
Great.
So that'll be a whole thing.
I mean, a single store does like shard it and all that stuff for you.
So it's a little bit kind of like the current setup in some ways, but it's managed by the database platform instead of by us.
Aaron
01:01:23 – 01:01:28
And if you, if you use that single store Laravel driver, you'll be using my handiwork, I wrote that.
I do use it.
So you have to use it.
It's spectacular.
It's excellent work on your part.
It's got everything you need in there.
It's so good.
I hopefully they, I don't think I think somebody's still maintaining.
I don't think it's you, though.
Aaron
01:01:39 – 01:01:42
Sure.
Hey.
It's not me.
Let's just make sure that's make sure that's on
Aaron
01:01:43 – 01:01:47
In case Holly is listening, I haven't touched that since I got hired by playing as good.
That is for sure.
Yeah.
That's true.
I guess we're in a little bit of a conflict of interest zone potentially.
I think
Aaron
01:01:54 – 01:01:55
so.
Yeah.
I don't know.
It's not really true, though.
It's sort of true.
It's alright.
I I had this on the on the list of things to talk about.
I took it off, but I put it back on.
Aaron
01:02:03 – 01:02:04
If we
cannot talk about it if it's not your right.
Aaron
01:02:06 – 01:02:07
I don't know what's happening.
You just have to reserve the right.
Aaron
01:02:09 – 01:02:09
But Okay.
The PlanetScale pricing page.
Aaron
01:02:13 – 01:02:13
K.
Aaron
01:02:15 – 01:02:15
Is
not is very, very bad.
It's a bad price.
Aaron
01:02:17 – 01:02:21
Okay.
Great.
Hey, Matt.
Tell me, what do you what do you see?
Planetscale.com/ because
when I go because it's like what we're talking about now.
Like, oh, you're using a single store.
And, like, to me, the plantscale pricing page, it's telling you that it's not for big use cases.
Like if you have a 1,000,000,000 road, don't come here.
Because like the, the top tier is $39 Right?
And like, you can make it go up to 9.99.
And even then, you're only getting 8 CPUs, 30 gigs of RAM.
It just feels very focused on the, like, side projects, small projects,
Aaron
01:02:50 – 01:02:51
really, it's
interesting.
It doesn't speak to me that, like, this is where you want your big heavy enterprise use cases.
Aaron
01:02:58 – 01:02:59
Because of the pricing.
I mean, the maximum you can even define is 9.99.
It's like, I mean, nobody spends 999 on a database, like an enterprise scale.
Right?
Like, that's, like, very small amount of money.
So And
Aaron
01:03:10 – 01:03:12
our enterprise customers don't spend that, by the way.
We have It's like, I know this is the custom pricing.
Right?
Aaron
01:03:15 – 01:03:15
And you can
go talk to enterprise.
And I'm a little bit more in the middle because it's like we have a an enterprise use case in terms of quantity of data to some degree, but we don't we're we're a very tiny company, so it's a little bit on the founder.
So I'm looking at it, like, what can I see on this pricing page versus, like, a middle manager or some other company that's like, oh, yeah?
Contact them for enterprise support, and I'm sure they'll
Aaron
01:03:35 – 01:03:35
go into it.
And I know Plano skill does all this stuff.
So I'm not even saying for me, because I know that it's technically capable of a large project.
Aaron
01:03:43 – 01:03:44
Yeah.
Yeah.
Totally.
I feel like this doesn't convey that.
Like if you go to the single store pricing page, yeah.
Aaron
01:03:49 – 01:03:49
Let's see that.
It's like, I mean, it's not as nice a pricing page as this.
So this pricing page
Aaron
01:03:53 – 01:03:54
is the nicer
pricing page.
Right?
But it's like, hey.
You want terabytes of memory?
Sure.
We can do terabytes of memory, like, whatever you want.
Aaron
01:04:02 – 01:04:08
Alright.
So I'm looking at cloud.
You're not doing self managed.
You're doing cloud.
Yeah.
We're doing cloud.
I mean, this kind I do have a potentially self managed use case, but I'm presuming I'm gonna go cloud.
But the top price model here has
Aaron
01:04:20 – 01:04:20
Well, they've got
Aaron
01:04:23 – 01:04:27
I see.
They have a, see more want more detailed pricing and sizing.
To go to the detailed pricing to break it all up.
Yeah.
Yeah.
Yeah.
Yeah.
Yeah.
I'm pretty sure that this is negotiable, so I don't think those should Yes.
You know, when you're getting 24 terabytes of RAM Yes.
Probably have to be a
Aaron
01:04:39 – 01:04:39
part.
Yeah.
But it does convey a certain amount of, like, hey.
Somebody's using this thing with 24 terabytes of memory.
Like that's a pretty huge database.
Right?
So for sure.
Yeah.
And, and basically infinite storage and 3,000 CPUs.
Right.
So that is conveying that, like, you wanna sharded, you know, you need a sharded large scale database.
Yes.
Aaron
01:05:04 – 01:05:08
Good lord.
They $1200 per hour.
It's a
little pricey at the top.
Aaron
01:05:09 – 01:05:19
S 384.
Well, I have no idea.
Like, for this this resources, we may charge something similar.
But just seeing $1200 per hour is like good god.
So it's a little it's a little pricey.
I'm hoping that's why I'm gonna watch the size of my columns here.
I can't be like
Aaron
01:05:24 – 01:05:28
Yes.
Exactly right.
You can't keep your innuums.
You gotta keep your in news small.
Keep my in line.
But anyway
Aaron
01:05:31 – 01:06:03
That's interesting.
So what you're saying, if I can repeat it back to you, is that, the way that our pricing page is signaling is that, well, to rephrase, our pricing page signals that we don't have many really, really large workloads because we max out at 8 vCPUs and 32 gigs of RAM in the in the, like, self serve slider scale your own thing.
Right.
Yeah.
I don't know.
It just feels small.
You know?
It just feels like this is for smaller things.
Like, I could have a smaller thing that fits in here, and that makes sense.
Right?
But, like
Aaron
01:06:11 – 01:06:11
Yep.
Is it actually for if I need a terabyte of memory?
Like, it doesn't it doesn't feel that way.
Like, even though I'm sure it can do it because I know you and I know the company more than the average person, but I'm just saying sure.
That's what strikes me when you see like 0 29, 39, like that's what you see on the pricing page.
Aaron
01:06:26 – 01:06:26
Right.
Right.
Right.
Again, for some customers, that's what they wanna see.
It's like, oh, great.
This is like less expensive than Amazon or equivalent.
I don't know.
You know, it's a little hard to compare apple apples, but it's like reasonable.
And but if I have a bigger project, I don't know.
Aaron
01:06:43 – 01:06:43
Yeah.
Kind of feels like maybe it's not set up for that.
So that's No.
Aaron
01:06:47 – 01:06:49
It's great.
Yeah.
It's great.
That's really helpful.
Aaron
01:06:50 – 01:07:00
Fortunately, fortunately no.
That's fine.
Fortunately, pricing is not my, bailiwick, and it's not my area of expertise.
And so it's like, great.
I love that feedback.
Aaron
01:07:00 – 01:07:03
I get to hand it on to somebody who will know what to do with it.
That's perfect.
Yeah.
Maybe they test it all.
It's like, no.
We get twice as far as this one.
Right?
Who knows?
Like Yeah.
Just my off the cuff thing when it came up the other day and I was looking at it.
But, yeah, the single story is kind of interesting because, and we'll, we can talk about this more and it'll be cool to get some comparison with what planet skill does.
But there is some interesting things that the, single store provides that's a little different than my SQL because it's not my SQL.
Aaron
01:07:27 – 01:07:38
Because it's not.
Yeah.
That's what I will be most curious to hear about as you go on is because it is I think it's memSQL is the old name of it because it is.
Yeah.
Not actually my sequel.
Aaron
01:07:39 – 01:07:53
I'll be curious if you run into any, like, any showstoppers or problems or something.
Yeah.
Because it it not in a, like, a not in a derogatory way.
It pretends to be MySQL.
And so you like, you're kind of lulled into thinking this is MySQL.
Aaron
01:07:54 – 01:08:02
Right?
Because it's, like, wire compatible.
It's very compatible with MySQL, but it's not actually MySQL.
Right.
So that'll be Which
is my which is my hope.
Yeah.
But I, that'll be some interesting edge things because, like, so my SQL's full text index.
Yep.
Is not great.
Yeah.
Okay.
I mean, it's fine, right?
For small, but again, when you throw in Yeah.
Hundreds of gigabytes, it doesn't really like that too much.
Aaron
01:08:24 – 01:08:24
No.
Whereas like the single store full text, which is my sequel compatible in terms of syntax is built on Lucene.
So yeah, presumably it will be more performant.
I'm sure it will have its own little things, but I'm hoping it's more performance.
So this is actually based on Lucene, which is what even the last search is based.
Everything's based on the top of Lucene.
So will it be better?
I don't know.
So far it's fine, but I haven't put 200,000,000 rows in there either.
So we will see.
So I'm gonna like, that was that's actually in my app service provider.
Nobody even brought up.
I had to build a little
Aaron
01:08:57 – 01:08:58
I saw it.
Single store search engine.
Aaron
01:08:59 – 01:09:02
Oh, I definitely saw it.
Yeah.
Yeah.
Yeah.
I you know I saw that.
Yeah.
So, like, will we be able to push that really far, which is my hope, or will it be like, no.
We have to, like, offload this to a dedicated search service
Aaron
01:09:12 – 01:09:12
Right.
At
some point or whatever, which Mele Mele, Miley, Miley
Aaron
01:09:15 – 01:09:16
search, whatever whatever it is.
No.
No.
That thing definitely can't handle it.
That thing is like
Aaron
01:09:19 – 01:09:21
I guess that's true.
It's a little hobby for
your scale.
It's not built for any real data amounts.
Like, as soon as you get to, like, even, like, 10 or 20 gigs of data, like the index is like a hun 200 gigs or something.
And like, holy.
Yeah.
It's not built for substantial workloads.
It's for like,
Aaron
01:09:34 – 01:09:35
oh, let's see.
Ecommerce sites and things like that.
But, yeah, it's not really built for heavy lifting of terabytes.
Aaron
01:09:41 – 01:09:45
And Algolia is just prohibitively expensive at that.
I like I
like I like I like I would love to use a great products.
Yeah.
It's insane.
It's like, yeah, a $1,000,000,000 for Yes.
Yeah.
I I don't know how anybody uses it.
Again, it's like I don't If I have a ecommerce platform, fine.
It's like, here's my 1,000 products, and I get that could maybe work.
But
Aaron
01:10:02 – 01:10:10
we used it at Resolute at the property tax firm.
I implemented it.
And we, you know, we paid handsomely.
But at that stage, handsomely is, like, what, $200 a month?
Yeah.
Aaron
01:10:10 – 01:10:23
I mean, that's for a lot of money.
Is like, that's a lot of money, but it's world class, and, like, we don't have that much data.
And so I wonder god.
Just I don't know.
Yeah.
Aaron
01:10:23 – 01:10:26
They're they're prohibitively expensive once you once you get
too far.
It's great.
I mean, you're $222,000 a month.
I'd be like, yeah.
Great.
Let's do it.
But, like, it's not gonna be anywhere near that.
At least last time I looked, which was only a few months back, but You
Aaron
01:10:37 – 01:10:38
should call them.
They do, like, you know
Aaron
01:10:39 – 01:10:44
This enterprise pricing is it's just like true.
It's totally made up.
It could be it does actually seem like a little bit it's sort of interesting.
They do have a little bit even this pricing looks a little different than last I looked.
It's 50¢ per 100,000
Aaron
01:10:53 – 01:10:55
Goofy looking page.
That's a little tricky to follow.
I should give them another look just in case, but I think it does get to be pretty.
Yeah.
It's like 40¢ per oh, yeah.
There you go.
See, it's like the baseline's fine, but then it's 40¢ per a 1000 records.
I mean, we have customers who add a 1000 records a day or more.
Like,
Aaron
01:11:13 – 01:11:25
so but Yeah.
And at that point, we're really have to be careful what you're what you're running through Scout, like, what your index Laravel Scout, what you're indexing because you're just gonna end up getting totally hosed on pricing
Aaron
01:11:25 – 01:11:26
do that.
Yeah.
That all With
that, I'm trying to be careful anyway, not I'm trying to really index just what has to be indexed.
It's sort of weird.
We get in this weird.
There's a whole other thing we can talk about at some point, but like when you have a help desk ticket, like, I'm sort of tempted to just index the initial request and the solving request and not the like 30 emails in that, which are just kind of old with a bunch of BS.
And current helps thought it's all indexed.
But how often are people really searching for the 10th email in a thread from 4 years ago?
Like, not that often From
Aaron
01:11:58 – 01:12:01
4 years ago, not that often.
But from 6 months ago, maybe.
Maybe.
I know.
Then you could get into the game of, like, well, do we have, like, a hot table with, like Yeah.
More recent data, but then we drop it off over time.
Like so it does it gets complicated.
But, my so default, I would like to just shove everything in there because that's simpler.
But yeah, we'll see.
It might not be optimal scale wise.
Lots to talk about there.
Well, a lot of That's a lot.
Aaron
01:12:27 – 01:12:29
That's good content.
I'm excited for that.
Yeah.
Anything else going on we need to cover?
Aaron
01:12:33 – 01:12:40
I don't think so.
Gonna go get the keys and go take a picture and start this whole, you know, playing skill studios era.
I'm excited.
Alright, man.
We'll have fun with that.
Thanks everybody for listening.
Good to be back on the mic.
Check us out at mostlytechnical.com.
Mostly tech pod on Twitter.
We'll be posting up, I'm sure, video snippets and all that.
And then mostly technical podcast at Gmail.
You can email us, and we're we're starting fresh.
Aaron
01:13:01 – 01:13:03
This year, this year, we'll read them.
Well, we've always read them, but we've we've addressed them before, but this last one was too big a gap.
Like, everything's from, like I can't get into, like, d h h and once again.
We covered that enough.
Like, we can't Yeah.
That stuff.
So alright.
Thanks, man.
Have a good one.
Aaron
01:13:16 – 01:13:19
Alright.
See you.
Bye.