Episode

Mostly Technical · Nov 30, 2023

We Didn't Have JSON In My Day

Show notes

Ian & Aaron return after a mini break to talk about Aaron's new twin babies, Ian's MySQL 8 upgrade woes, the origin story of Eloquent, and a lot more.

Sponsored by LaraJobs & Screencasting.com.

Sent questions or feedback to mostlytechnicalpodcast@gmail.com

Transcript
00:01

Ian

Welcome back.

00:03

Aaron

How do I look? Well rested?

00:05

Ian

You actually look pretty good. I mean, this whole thing is crazy. You just had babies. It's 10 o'clock at night where I am. We normally record at 9 AM.

00:13

We're we're all messed up here. But,

00:15

Yeah.

00:15

Aaron

This is gonna be a wild ride, so y'all buckle up.

00:19

Ian

Definitely. Oh, man. Alright. Well, I mean, we gotta hear about these babies.

00:24

Aaron

Yeah.

00:24

Ian

Give us the scoop.

00:26

Aaron

Great. They're freaking awesome.

00:28

Ian

Awesome.

00:28

Aaron

Yeah. So we,

00:29

Ian

love to hear.

00:30

Aaron

We had them 1 week ago today, so we have 27 day old babies in the house, if you can believe that. That is just not that's not very many days. So they're great. They're healthy. Everybody's happy.

00:44

Their names are Isaac in Virginia, so boy and a girl. And Isaac was, like, £5 something, which for the non parents is pretty small, but he's already gaining weight, so that's great. He's healthy and happy. Virginia was huge. She was, like, £7, 10 ounces, like, a full £2 bigger than that.

01:06

Ian

So that's really unusual

01:07

Aaron

with this food. It really is. She actually said

01:12

Ian

out of the way.

01:13

Aaron

I yeah. She ate all his food. She spent, weirdly, she spent one night in the NICU, and he was just, like he was fine. He was just chilling. But she had, like, a bunch of fluid in her lungs.

01:25

And so they they she'd spent a night on a CPAP machine, and then that was it. It was like, I was freaking out, man, because they're like, oh, we gotta take her down to the NICU. And I was like, what does this mean? And they just put a CPAP on her,

01:36

Ian

and the next

01:37

Aaron

the next morning, they brought her up, and we're like, she's fine now. Like, well, that was brutal. But, yeah, beyond that, you know, it's great. We came home on Saturday, and so we've been home for Sunday, Monday, Tuesday, Wednesday. This is our 4th day home.

01:51

Ian

Wow.

01:52

Aaron

It's crazy, man. It's just it's crazy. It's a lot of

01:58

Ian

kids. It's it's a lot of have you ventured out into the world yet?

02:02

Aaron

Yeah. So I've ventured out I've ventured out a couple so we haven't ventured out

02:08

Ian

all 4 Yeah. That's what I mean. All the kids.

02:12

Aaron

We've only we've only yesterday, we went on a walk, all 4 and and our au pair, Jasmine, and it felt like it felt like my in law we took a picture

02:23

Ian

of my

02:23

Aaron

in laws, and it looks like a parade, and I said I would have accepted a circus as well because that's what it that's what it feels like around here.

02:29

Ian

7 people. That's what I'm talking about there.

02:32

Aaron

People. Yes. A lot of people. So many people. Yeah.

02:37

So it's been great. I mean, the the newborns are, like, I told Jennifer, I told my wife, like, what were we having such a hard time with the first time around? Because when the kids go to school Yeah. When the kids go to, like, the big kids go to school, they're 2 and a half. They're not very big.

02:55

When the big kids go to school, air quotes, we just, like we feed some babies, and then we put them back on their little their little boppy things, their little beds, you know, all snugged up in their little wraps.

03:08

Ian

Swaddle them and

03:09

Aaron

Yeah. And they fully sleep for, like, 2, 2 and a half hours until it's until it's time to eat again. And so, literally, I'm, like, I'm watching grand designs. I'm tinkering on, you know, my website, writing blog posts, and, like, Jennifer's napping. It's like, what was so hard about this?

03:28

Ian

I do yeah. Just knowing I I think the second kid and beyond is so much easier just at least in the sense of, like, you just know everything. Like, you know what you're supposed to do. So there's, like, no overhead of, like, how do we do this thing? Or we're scared about this.

03:40

Like, whatever. You know the steps. And even if you're tired or whatever else, like, there's not all the those questions at this point.

03:47

Aaron

Yes. There's very there's so much less, like, are they dying right now?

03:51

Ian

Right. Is that way less?

03:53

Aaron

That's what I said before. They just kinda lay there.

03:55

Ian

They're super tough. They're falling, like tough. Yeah.

04:00

Aaron

And these 2 so our first set, boy, girl, Simon and Amelia, came out of the womb. Amelia was like, I'm in charge, and Simon was like, that's fine. You do that. I don't care. With these 2, they're both super chill so far, and we'll see, you know, we'll see if it holds.

04:19

Like, they haven't even reached their, you know, full, like, 40 weeks yet because I think they came out at, like, 38 weeks or something. So they're still kinda just, like, you know, incubating. They're still sleepy. Right. Right.

04:31

But out of the womb, Amelia was like, I run the house, and these 2 are just totally different. So, hopefully, we got 2 chill babies. We'll see.

04:39

Ian

Wow. Yeah. That'd be great.

04:41

Aaron

That'd be great. Could use a couple chill babies, man.

04:44

Ian

Nothing better than a chill baby. I never had a full chill baby. I had, like, a half a a chill baby out of the 3, but no full chill babies. So we we have one for you.

04:53

Aaron

You know, we just we didn't get to savor it because he came out with a non chill baby next to him. So yeah.

05:01

Ian

How's the the all the assistants and au pairs and my nurses and

05:06

Aaron

We got a

05:06

Ian

we got

05:07

Aaron

a full Downton Abbey staff over here. It's crazy. Yeah. It's great. I mean, we like I said before, we lucked out with our au pair in that she's just, like, the best au pair that has ever existed.

05:19

Ian

That's awesome. Yeah.

05:21

Aaron

It has continued to be. You know, when we were in the hospital, the big kids went to my in law's house for, like, 5 or 6 days, and Theo pair, stayed here, like, slept at our house still, but went over there every day, to do her hours over there. And our in laws were afterwards were like, hey. So, can we just keep Jasmine full time? Like, can can we hire her?

05:48

And I was like, I know. That's what I'm talking about. Yeah. So that was that was great, and she just, you know, she's very, very good with the kids and flexible now that we have new kids. She's like, she's just the best.

06:02

And then, you know, the night nurse. So we have a night nurse every night for 2 weeks straight.

06:08

Ian

So smart.

06:08

Aaron

And so I am I am sleeping through the night, like, fully, which I know is crazy. And Jennifer is sleeping through the night save for, you know, the 30 or 45 minutes when she's feeding 1 of the twins.

06:23

Ian

Mhmm.

06:23

Aaron

So the night nurse comes in, brings 1 of the twins, Jennifer feeds that twin, and the night nurse feeds the other twin. And then 3 hours later, she brings in, you know, they alternate. So it's great. Feel, you know, super rested. I'm, you know, I'm glad I'm on paternity leave because I'm doing a lot more with the big kids.

06:46

Like, I'm I'm getting them up out of bed, ready for breakfast, off to school, you know, ready for dinner, baths, put them to bed, and Jennifer's popping in to say hello. But, you know

06:59

Ian

Yeah. It's a full full team effort though.

07:01

Aaron

Change, yeah, it'll change when the night nurse goes down to, like, every other night, and that's gonna be a lot more tiring. But for now, it's it's really great. The hard part is the bigger kids.

07:14

Ian

Yeah. Oh, for sure. I think so in some ways. Because they they're just always need stuff and, like, the little ones are little whatever. They're still little.

07:21

The the the bigger ones are running around and doing things, and they gotta be places and, like, and all that stuff.

07:26

Aaron

A lot of feelings about, you know.

07:28

Ian

Right. Oh, yeah. I thought that was.

07:29

Aaron

Easy slash mom being in the back with the little babies. It's okay. I think it's going okay. I think the headstrong girl, Emilia, is having she's having a little bit harder time and is acting out a little bit.

07:45

Ian

Yeah.

07:45

Aaron

And that's been real that's been really hard for me because our little son is just so, like, sweet and shy and, you know, kind, and she kinda, like, pushes him around. And so there's been a little bit of acting out, and I'm like, oh, gosh. Like, this is really difficult. So that that part has been, you know, and the brunt of that is falling on me solo right now. Well, I guess me and Jasmine, but, you know, Jennifer's primarily caring for the little ones, and I'm primarily caring for the big ones.

08:14

And so

08:15

Ian

Yeah.

08:16

Aaron

Yeah. I mean, that whole dynamic of, like,

08:19

Ian

yeah,

08:19

Aaron

there are new babies, and I'm not the baby anymore. Fortunately, they were never the solo baby. You know, they were always a twin.

08:25

Ian

Right. So it's like, I always had to compete for some intentions. Yeah. Yeah. Right.

08:29

Yeah.

08:31

Aaron

But it's good. I think, you know, one of the I did take the big kids to Barnes and Noble the other day, which is like a staple because they've got a little kid's

08:40

Ian

corner. Yeah.

08:40

Aaron

And I drove the minivan, and the minivan is now set up to hold all 4 children. And I took a picture, and it's, like, 2 car seats in the middle, 2 car seats in the very back with the big kids in the very back. And now my 4 runners got car seats for the little ones, and Jasmine's VW has car seats for the big ones. And it's just like, what are we doing? What is

09:03

Ian

going on

09:04

Aaron

here? This is insane.

09:06

Ian

Yeah. That's that's pretty insane. That's what you're right at

09:08

Aaron

the moment. You

09:10

Ian

I mean, we were always at the capacity for the real world. We always feel like as 5 kit, like, nothing, you know, you can't get a booth at a restaurant. You can't, like, whatever. You're trying to, like, be on an airplane, but, like, it's only got 4 across. And then what do you do with a 5th person?

09:22

Like, you know, whatever. There's all spots where 5 is too many. But you're now at the point where, like, you're like, even cars are gonna stop fitting. Like, you're just gonna be way you have Yes. Yeah.

09:32

If you go more than this, forget it. Like, it's gonna be insane. You're gonna have to have a compound and just never leave.

09:37

Aaron

No way.

09:38

Ian

Go anymore. That's it.

09:39

Aaron

No way. We're not

09:40

Ian

we're not

09:41

Aaron

we we blew we blew past the reasonable line, and we're just Right. We're just at the

09:45

Ian

top of the line.

09:45

Aaron

There. Trust trust me. We're not we're not doing good. For 6?

09:49

Ian

Are we gonna go for 6?

09:50

Aaron

No. I would there's, like, a let's see. There's Jennifer would kill me, but there's, like, a if I could guarantee it would be another set of twins, I'm, like, 30% on board.

10:04

Ian

Just for the

10:05

Aaron

But if it was a sing if it was a singleton, just for the story, man. The story is great. 10, 0%. 0%. Because I don't want any more kids.

10:15

I love a good story. I don't want any more kids. Right. I definitely don't want, like, a 5th one to be left out. You know?

10:21

Ian

What if you get triplets or something? Oh, gosh. I could be no scenario there.

10:25

Aaron

No way. So, yeah, we're done. I'll see you guys that that we're done.

10:30

Ian

You're gonna be busy for a while anyway. So Yeah.

10:32

I think

10:32

you're covered.

10:33

Aaron

So I think I

10:34

Ian

know you get all this rest at night. You're this night nurse for a couple weeks. So genius. I wish

10:39

Aaron

I had

10:39

Ian

known you and thought of this because I just feel like that's always we always just got so behind at the beginning. It's like we're just wrecked the first, like, totally.

10:47

Aaron

Poned. Yeah.

10:48

Ian

And then we're just behind the 8 ball, like, for the next 3 years because we're just, like, wrecked right from day 1 and we never catch up and we're just exhausted the whole time, and it's just a mess. So, like, coming out the gate strong, like, you're rested and your mind's around it. You're, like, you got your processes in place and your people and everything. It's like yeah. It's like, okay.

11:07

So once she goes away, obviously, you're gonna be more tired or whatever, but it's like, you're ready. Things are moving. You got some

11:13

Aaron

And we're doing it phase out. I mean, we're doing, like, 6 weeks of every other

11:17

Ian

night or something. Other night, you got some good sleep at least, which is fine.

11:21

Aaron

And it helps with, like, sleep training the kit, like, the babies because it puts them on this super regular schedule where someone like an adult who is awake and cognizant is, like, running the show versus, you know, me and Jennifer. Yes. Oh, gosh. What time is it? I gotta,

11:38

Ian

oh, we're

11:39

Aaron

30 minutes late. Yeah. So, like, having, you know, this, you know, registered nurse who's, you know, whatever age, but has been doing this for 20 or 30 years who just

11:50

Ian

Right.

11:50

Aaron

Is crushing it. It's like, oh, thank thank you for, like, managing us, the adults, as well.

11:55

Ian

Right. Yeah.

11:56

Aaron

Yeah.

11:58

Ian

Wow. Well, it sounds great. Everything's going well. Kitchen's good. Stuff's happening.

12:04

You're rested. Yeah. You're thriving.

12:07

Aaron

Best days of my life. Yeah.

12:09

Ian

Yes. Exactly.

12:10

Aaron

It's crazy.

12:11

Ian

And you're still on the your grind years too. We're we're recording a podcast. It's the first. You're gonna.

12:16

Aaron

It's such a must go on. Yeah.

12:19

Ian

Listen, you go to you

12:20

Aaron

go to Vegas, and suddenly we can't we can't record a podcast. I have a 1000000 children. It's like, let's go. We gotta record the pod.

12:29

Ian

Yeah. You're you're, you're on top of it. What can I say? I'm still catching up on my sleep. That's why.

12:34

I'm like, I'm I'm so far behind.

12:36

Aaron

I know. I wanna hear I wanna

12:37

Ian

hear you all. To me. Well,

12:40

Aaron

we're doing it we're doing it at 9 PM because the night nurse got here at 9 PM, which means, like, I'm fully right now, I would, traditionally be in bed, but it's like, alright. I'm free. You're clear. Yeah. Exactly.

12:53

Like, I'm not needed out there.

12:56

Ian

Yeah. So, yeah, I'm at the office, which is in town. So I'm in town, which is fine. I actually came in to work at, like, noon. I was like, oh, I'm just gonna, like, work through till, the pod.

13:08

Aaron

And you got yourself you got yourself a nighttime drink over there?

13:11

Ian

Some we got some the Belvane.

13:14

Aaron

Look at that.

13:16

Ian

There we go. It's a

13:17

Aaron

little bit too.

13:19

Ian

This stuff is very good. Highly recommended. The Belvane, 14 rum casks. Very good stuff. Very good stuff.

13:27

Aaron

I'm ready.

13:28

Ian

I like

13:28

the drinks to the kids.

13:30

Aaron

Yes. To the kids. I'm ready

13:31

Ian

for the Yes.

13:32

Aaron

For the takes to increase in hotness as the drinks go on.

13:35

Ian

I know. I should have been drinking this whole time leading up to this, then I could Yes. Not be I was too worried. I'd be like, oh, I'm gonna be

13:41

Aaron

too exhausted. So I just started drinking. Do a holiday when we do, like, a holiday episode, like, a crossover with somebody, we need to we need to have some nighttime drinks and just go for, like, 3 hours and see see what comes out.

13:52

Ian

Idea. Oh, I like that. Fun. Right? Even maybe even that one's streamed or something.

13:57

It's like, hey. Come join us.

13:58

Aaron

Streaming that would be

13:59

Ian

a lot

14:00

of fun. Yeah. That one could just be, like, a live episode where, yeah, some other cruise with us and people we can be on Twitter chatting with them or whatever. Figure it out.

14:10

Aaron

Yeah. We should do that. So, like, one of those days in, like, dead week. So, like, December 22nd or something where nobody's doing anything. Everybody's, like, I'm basically checked out from work.

14:22

Everybody's fine enough. Hang on the pod. Yeah. That'd be fun. Alright.

14:26

Ian

We'll do that. I like that. That's a good idea. Oh, man. So alright.

14:30

I don't know. Should we do should we do some actual stuff then?

14:33

Aaron

Or we Yeah. Just some content. Why are we here? We gotta we gotta do the content. Content for the

14:38

Ian

content gods.

14:39

Aaron

Let's go.

14:40

Ian

So that's so this is also so I went to Vegas. Whatever. We don't need to cover that too much, but, while just before I left and while I was there, our database had this big implosion. And so this is also part of why we couldn't pod that day. I've been dealing with this stupid database stuff.

14:58

So I

14:58

don't know. You're you're the database man. Maybe you have some insights for me, but I can lay out my tails of woah.

15:04

Aaron

Yeah. I wanna hear. From from what I saw on Twitter, you upgraded from 57 my SQL 57 to 8, and 57 is officially end of life. Right?

15:14

Ian

Or short very shortly or is. Yeah. Yeah. Like, within the next week or something, that kind of thing.

15:20

Aaron

So you upgraded 57 to 8 and then just got totally hosed. I mean, the Don't don't do this.

15:27

Ian

Nobody should do this. Just stay on 5 7.

15:28

Aaron

The tweet the tweet got some some numbers, so maybe, you know, maybe it was worth it in the end. Yeah. It's right

15:34

Ian

up for the podcast.

15:35

Aaron

I don't know. My

15:36

Ian

my sleep is suffering, but the podcast is driving from it.

15:39

Aaron

I saw the chart. Explain the chart and explain, like, what actually happened in the app. Was it was it trouble?

15:45

Ian

Yeah. So it's like well alright. So we upgraded. We figured that we fought even upgrading was a bit of a nightmare because we're on RDS Mhmm. AWS RDS, and which is a very good service.

15:56

We've been very, very happy with it. But they're not the best support wise. Right? So, like, you know, we're not managing for a managed service. Well, it is managed.

16:04

It's managed. But then if you need anything, it's not managed. They're not gonna help you with that. Right? So, like, okay.

16:10

So we had the the our database has been running forever. Like, I don't even 8 years or something like that. So, whatever. There was something we were trying to use their new blue green, deployment scheme, which lets you, like, kinda instantly flip over to a new server on a new version and stuff like that. It's all magical.

16:28

Great. So but we couldn't. It was failing when we tried to flip over because there's some table that had some stuff in it, it, whatever that is. And it was a table we couldn't access. So it was like some kind of system table that we couldn't even do what needed to be done.

16:44

So, oh, so we had to go through like the many layers of AWS support to get to the team that could actually touch your server that could actually do the thing. So they did the thing. Great. Fine. Did the blue green deployment.

16:58

Fine. Everything's great. And then, like, a day or 2 later, it starts acting funky, blah blah. We go in there. Like so I never think about the server because it's been so perfectly reliable.

17:09

Right. Like it just absorbs. We have 100 and 100 of customers over a terabyte of data. It's fine. So I haven't even looked at it in forever.

17:17

So it's, it's acting weird. I go in and look, whatever the CPU's all crazy. I post that chart that I tweeted out. But, really, it wasn't actually the CPU. That was sort of a fake a head fake.

17:30

Really what's happening is that it's loose, it's running out of memory and then it's swapping and then everything goes crazy once you start swapping. So, yeah. Yeah. So we've we've come up with a few tricks to keep it from swapping, which is basically to the best one. Do we have flush tables on, like, a script to run every hour, which is fine, but doesn't do that much?

17:57

The best one is to change the value of the InnoDB buffer pool. Mhmm. Just change it at all. So I go back and forth between 2 different numbers, and then that causes some internal flushing, more significant flushing of the buffer pool and memory. Not just change it.

18:15

Aaron

You're you're, like, toggling it back and forth.

18:17

Ian

I mean, I'm just toggling it back and forth so that it kicks off this internal process that clears a bunch of memory. So that happens like once a day. So once a day I do that. Obviously this is not sustainable, but this is just to keep everything like kosher. There is some there has been some improvements because we had to we reran, analyze table on all the tables.

18:39

Mhmm. And so I think there was some, like, query execution stuff between 5.78, stats were wrong and stuff like that. So it was making bad execution plans. So that has helped, but over 24 hours, it will still start to tend down. You know, the freeable memory just trends down.

19:00

So to, Yeah. So I've given up on AWS support. I've just hired Percona, but, you know, it's gotta get on their schedule and blah,

19:09

blah, blah.

19:10

Those guys are really good. We used them once before, and they and other stuff. They were like, this is all we've done all summer. They're like, we've just done a 1,000,000, 5.7 to 8 upgrades because it's not too good in so many words.

19:22

Aaron

Yeah.

19:23

Ian

So yeah. So that's where I'm at. So I don't know. If people have ideas, I'd be happy to hear them before I totally pay many 1,000 of dollars. But at the same time, I would

19:31

pay Yeah.

19:32

I would pay $20,000 right now to just have this fixed. So, like, I'm fine paying

19:36

Aaron

them to it. But This is this is I'm off the clock. This you should pay way, way less and just move to planet scale. I

19:44

Ian

don't understand

19:45

Aaron

why you want to continue to manage this yourself. Sure.

19:48

Ian

Well, there's 2 different things there. One is that I I don't know what the actual cost is gonna be. I'm assuming it's actually quite a bit less than $20,000, but

19:55

Aaron

let's see.

19:59

Ian

Moving services in the middle of everything. So there's a couple reasons why I don't love that idea. Because just one, you're in the middle of stuff going wrong, and then, like, you're throwing a new service migration in there, which just feels like not maybe the safest route to go. And then, you know, and then we're sort of in this phase where I'm like working on the new help spot and stuff like that. It's gonna be all different, which we haven't talked about too much on here.

20:23

But so I don't really want to get into like a whole bunch of like re architecting of how things work and things like that Obviously plant scale in general, presumably I could just flop over yeah, I don't know how it works with, like, we have a whole bunch of like security groups and all that stuff. We could just plant scale go inside of a private security group, or I it doesn't I don't think it's that kind of thing. It doesn't deploy into your, private network on AWS. How much you

20:47

Aaron

pay us.

20:48

Ian

Oh, okay. Yeah. Yeah. See, we're back up to 20,000. It's only

20:51

Aaron

20,000. Don't worry about that. Don't don't worry about that. No. No.

20:54

No. You can just flop over. That's actually that's our that's our tagline. You can flop over.

20:59

Ian

Just flop over. Yeah.

21:00

Aaron

I mean, you can do zero downtime migrations. We'll hook up to your RDS and, like, ingest bin logs and stuff, and so you can, like, do 0 downtime. And I think it works both ways. Like, you could flip over to us, and we'll write back to RDS in case

21:13

Ian

you need

21:13

Aaron

to fail back to RDS. Right. We can and do put it inside of people's AWS accounts.

21:21

Ian

Mhmm.

21:21

Aaron

Then, of course, that costs a lot more. But you still get to use the PlanetScale platform, but maintain

21:27

Ian

the infrastructure. Yeah. I did see a

21:30

Aaron

But, yeah, like, the the 5 7 to 8 thing, you know, we just kinda handled that for everybody.

21:38

Ian

That is nice. Yeah. I don't know. So here's, like, what are your thoughts on so to me, it doesn't seem like it's queries. Okay?

21:45

Because here's the thing.

21:47

Aaron

Yeah.

21:47

Ian

Before this all happened, like, the memory was, like, literally a straight line. Like, there was the freeable memory was just a straight line, no variation. Yeah. And the CPU's always at like 10 to 15%.

21:59

Aaron

Right.

21:59

Ian

And since this has happened, the CPU is always at, you know, still at, like, 10 to 15%. The connections are, like, a straight line. Like, we always have, like, 600 connections. We do have a weird schema, which I was wondering if that's part of it because we have, like, we have database per tenant. So there's a bunch of databases, and so it's a bunch of tables.

22:24

So So you wouldn't even work 1,000 scale at all then. Tables. Yeah. Oh, really? Oh, it doesn't it doesn't handle multi, database?

22:32

Aaron

Our pricing doesn't.

22:34

Ian

Okay. There you go. So we're planning scale not even option.

22:37

Aaron

Yeah. We price per I don't remember what it's called, but it's schema or database.

22:41

Ian

Per schema. Okay. Yeah. Alright. So yeah.

22:44

Yeah. So with that, that's not gonna work because we have 100 and 100 of those. So so I don't know. It's weird. So I would feel like if it's like, well, I have the slow query log down to 10 seconds I mean, there's the occasional 12 second 15 second, but it's almost always like a full text search on a full text index, right?

23:02

So, you know, I don't know. Like, I don't feel like a 22nd query once in a while should, like, cause the memory to run out.

23:08

Like, you

23:08

know what I mean? It's, like, very weird. So I don't know if it's some setting. That's kind of mind creation.

23:14

Aaron

This is a little bit below the level of my expertise.

23:17

Ian

Right. We're down in the guts now here.

23:19

Aaron

Yeah. Which is why I work so well at, like, a managed services company because, like, I can teach people how to do better queries and not teach them, like, here's how you manage the database, because, like, I actually it turns out I don't know.

23:31

Ian

Yeah. The real DBA stuff.

23:34

Aaron

Yeah. Exactly. Yeah. Heather, I'm just like, you know, if a application developer knew something about databases, that's me.

23:41

Ian

Right.

23:41

Aaron

The MySQL 8 has not been without its bumps. I will say there have been there have been some bad point releases that have really, like, kinda host kinda host some people on performance.

23:57

Ian

Are you guys at, like, 8 dotzero.whatever? Or because I think, like, the 8.12 or whatever. There's other point releases that full point releases out now. I didn't know if, what do you you know what you guys are doing by your fault? I thought there was.

24:10

I thought, like, 8.1 at least was out. Maybe I'm wrong.

24:13

Aaron

I think we're at, like, 8.35 or something.

24:16

Ian

Yeah. Okay. Oh, that's alright. So that's what that's what I was wondering. So oh, there is yeah.

24:20

There's there is an 8.1, but it might not be Yeah. I haven't seen any talk

24:25

about that.

24:26

People. Okay. Yeah.

24:28

Aaron

But yeah. So we run we run, like, point point upgrades. This is this is all shaky, so nobody quote me on this. And don't send this to my boss, Holly, because it is kinda shaky. We run point upgrades on, on all the databases.

24:42

Like we keep you up to date, basically. Right. And so there are stats somewhere, and I'll see them fly through some channels of, like, how many databases have rolled to point 34 to 0.35, that sort of thing.

24:54

Ian

Right.

24:54

Aaron

And, of course, you know, Vitesse is managing most all of that, like, that orchestration kind of stuff. Mhmm. But, yeah, we we keep we keep people up to date on on the point releases, and that's how we see regressions so quickly because we'll see you know, we'll bump, you know, a 1000 or 10000 databases from, you know, 30 to 31 and be like, oh, some stuff got noisy here. Right. So Yeah.

25:21

Ian

I don't know. We'll see. I

25:22

Aaron

mean not great.

25:23

Ian

Maybe it is a weird I mean, there are tons of queries, and there are tons of weird queries. So it's possible there's, like I know some people said, like, group buys are not as good now.

25:34

Aaron

Group buys got worse. Something like yeah. Big sorting of JSON documents, I think, also got worse.

25:40

Ian

Yeah. We don't even use JSON, so it's not or not much anyway. Definitely no queries. It would just be, like, returning it if we use it at all. We have serialized PHP in text.

25:52

Aaron

Oh, yeah. Yeah. That's because it's

25:54

Ian

old school. It's old school. You know, it's not

25:55

Aaron

a lot of documentation about that. Yeah.

25:58

Ian

Pre JSON, but that wouldn't hurt the database because that's all stuff that comes back

26:01

to the

26:02

app layer. So, like Yeah. I don't know. So could there be,

26:05

Aaron

like, a PHP.

26:07

Ian

That, like, causes a huge memory, like, usage?

26:14

Aaron

Yes. Doesn't

26:15

Ian

take CPU and time. Like, I don't know. It's so weird to be like yeah. Like, a huge sort that uses 5 gigabytes of memory

26:23

Aaron

that shoves it all into memory.

26:24

Ian

Doesn't use CPU though. And doesn't cause connections to pile and then doesn't release when it's done. So then I was like, well, maybe there's like, something dying at a weird point where, like, the memory is not released or whatever. Like bad. Very weird.

26:41

I don't know. It's very, very weird. So

26:43

Aaron

Yeah.

26:44

Ian

We're gonna see. Hopefully, the, DBA guys can they seem quite confident in fixing it, so we'll see how it goes. But,

26:52

Aaron

That's how they sell you $20,000 worth of consulting. They gotta seem quite confident.

26:55

Ian

Desperate. You're like, oh, no.

26:56

Aaron

Buying 20,000 for me. I told you I don't know what's going on.

27:00

Ian

Exactly. So I don't know. So then I had next I just wanted to cover this too because I always, at this point, whenever he gets to database stuff, I hate I I love databases. Like database is one of my things I'm quite interested in.

27:13

I know.

27:13

I really enjoy databases, but when there's database problems, it's like the kind of thing that's like, maybe I should go get a bodega. Maybe I should just do something else. Right? Because, like, the database, the old customers, the stress, you understand this.

27:26

Aaron

If your

27:26

Ian

plan scale gets this right, they get it. So then I get into, like, Dynamo DB mode. That that's where I go. I go Dynamo DB, and I'm like, if I just shove everything Dynamo DB, it's infinitely scalable. It's literally, you couldn't possibly shove and you could never hurt this thing.

27:43

It's it's infinite. It's actually infinite. And then I go down that path, but there's all the then I have, like, 40 systems of, like, this all this stuff that has to hang off of it. So you can, like, run a report or, like, all that ever. Like, now you have these 20 systems that are all connected to it to actually make an application, which that's the part that's terrible.

28:00

But the data part, I'm like, oh, man. It's even, like, old school. Like, screw all those tables and shit.

28:06

Yeah.

28:06

Just shove everything in one table.

28:07

Aaron

Exactly.

28:08

Ian

Everything. Like, that's me. I love that. I love that stuff. Yeah.

28:11

Let's normalize it. Know. Let's put let's shove it all the weird stuff.

28:14

Aaron

I love that. Alex debris is has gotten to you. Don't let his don't let his smiley and happy persona trick you into going NoSQL with the tiny caveat. I don't know anything about NoSQL, but the tiny caveat that all you have to do is figure out your access patterns up front before you do anything else. I mean, now that your system, you you could probably you'd be fine.

28:39

You would be fine. But every everyone else is like, oh, no. You don't yeah. You can you you just need to know what queries you're gonna run. And I'm like, when when does anyone ever know what queries they're gonna run at the beginning?

28:50

Nobody knows.

28:50

Ian

So funny. So I've been reading I didn't know anything about this guy, but I found him recently on Twitter. Yeah. He seems like a great guy. I bought his book.

28:57

Aaron

He's a genius. Yeah.

28:58

Ian

It's like 400 pages of, like, DynamoDB. I I tweeted at him. I'm like, listen. This is, like, the only resource I've ever seen about DynamoDB that has, like, front to back soup to nuts. This is the whole picture, because it's always like, here's an article or here's a thing.

29:13

Obviously, AW, docs are useless. Like there's no place to

29:16

just see

29:16

like the whole picture. Right? So great book. If you're just even interested in it, highly recommended. Well, Dave, you could link his book in the show notes.

29:25

Aaron

Yes. And follow him

29:26

Ian

on Twitter

29:27

Aaron

too because he's he's extremely smart.

29:29

Ian

I did start following him. Yeah. But so very, very interesting book, and I feel like it lays out really well. But yeah. So I'm like the whole time I'm reading it.

29:37

I'm like, well, on the one hand, this is perfect for me because I know our data patterns, like, super well. Right? And then on the flip side, I'm like, how does anybody else use this thing? Because unless you have been building this app for, like, 20 years, like, oh, how how how the hell do you know your data access patterns? No.

29:53

What? Idea. Yeah. I mean, maybe if I'm just, like, an Internet of things and I have a light bulb and, like, the light bulb only ever sends me, like, you know, data logs or, like, you know, whatever. It was on.

30:04

It was off. Like, it's very straightforward. But, like, a real application that's, like, a b to b SaaS type app with, like, you know, what you would normally have, like, 90 tables or whatever to build, and, like, I don't know. How do I know my data access patterns efficiently?

30:19

Aaron

No idea.

30:19

Ian

Have to do.

30:21

Aaron

And and I just I need to read his book because I truly don't understand Yeah. You should be. Sequel.

30:29

Ian

And while this coming

30:30

Aaron

I just I just don't like I just don't understand no tables, no joins, no I'm like, what?

30:38

Ian

Sounds glorious, honestly.

30:40

Aaron

What is it then? Truly, what is it? And I just I haven't, you know, I haven't come up with an answer. Yeah. So I mean,

30:47

Ian

it's just an infinitely scalable place to dump piles of data, which is kinda awesome. Like, I just love that idea.

30:53

Aaron

You don't wanna if you don't wanna migrate to another provider that is, like, a hosted MySQL provider, you do not wanna migrate to DynamoDB.

31:03

Ian

I could never migrate to it per se. It would it definitely couldn't

31:06

Aaron

be yeah.

31:07

Ian

No. No. This wouldn't be a migration. This would be more of, like, the, you know, future super version of help spot, which is, like Yeah. Re architected could possibly use that.

31:17

Right? But it is still, like it's so far away. It's like and it's also, like, it's it just requires a bigger team than we have, I think, too. Because it's just like, you just need these other systems, and then those other so now we've gone from, like, yeah. We gotta make sure, like, this one key system's up to, like, now there's 5 key systems and, like, making sure that all works.

31:37

And you're depending on AWS phone systems and the support's terrible AWS, all that stuff.

31:43

Aaron

If you had a multi tenancy in a single schema, you would be perfect for PlanetScale because we could shard I mean, we run we we can do a 1,000,000 queries a second. Like, we don't have any problem with that. We've done that. But the multiple schemas, we just don't have a we don't have a pricing solution for that, which is a real pity because we price, like, per database. You know?

32:05

Ian

Alright. That's not gonna work for sure. Not gonna work. Yeah.

32:07

Aaron

Can't pay can't pay 39 times 600

32:10

Ian

Right. Just to be

32:10

entry level. This is old school because it's like, you know, we, it was an on premise app that became a cloud app. So, like, you could re architect the whole thing to have tenant IDs and whatever, or you could build individual databases. So that's what we did. Man.

32:24

I actually really like the individual database. There are a lot of upsides to the individual database. Like, I feel like people just auto don't do that, and they're just like, yeah, you know, tenant IDs and and tables. But it's but it is super nice, to have that at times where it's, like, somebody wants to export. It's like, yeah, that that's nothing.

32:43

It's easy. Boom. Just want to do everything.

32:45

Aaron

We're done. The whole database, you're,

32:47

Ian

you know, you're the

32:48

Aaron

super app. You could look at it. Like, you can see the whole thing.

32:51

Ian

Let them do things like that. We don't actually let them go that far with it, but we could. Or if we wanted to run one customer who got, like, a crazy heavy setup on a separate server, like, we could do that. And

33:01

Aaron

Yeah.

33:02

Ian

So there is some cool stuff with it. And just also So mentally never

33:07

Aaron

yeah. You'll never have a query error. Yeah.

33:09

Ian

Right. Like, there's no query I could write that will expose another customer's data. Just literally

33:14

Aaron

impossible.

33:15

Ian

So that's super nice.

33:18

Aaron

But you traded for you traded for op, like, DevOps complexity. Like, you gotta run a migration across 600 databases and make sure everybody got it before or during the code release for 600. Yeah. It's a whole process.

33:32

Ian

Yeah. Yeah. So, and for us, it wasn't too bad because again, when it's coming from on premise, like, well, each of our customers actually gets their own server. So they they each have their own front server, like a very tiny AWS, like t 3, whatever. But, so they're already, like it's like we can already roll out releases per customer and which is also kinda nice about our current architecture.

33:51

Aaron

That's kinda nice.

33:52

Ian

Versus pure SaaS where it's like, well, we're just rolling out and everybody gets it. And if there's a problem, everybody gets it and all that kind of stuff and, yeah, having to make sure you hot migrate, whatever all those things. Yeah. So, yeah, we have databases in different states and things, which is kinda cool at times. But, man, it's great.

34:09

Is annoying.

34:11

Aaron

I love hearing about this because you're, like, running a you're running a a real business. Like, capital r, real real business. It's not it's not just like it's not just like, hey. Why don't we switch from, you know, Netlify to Vercel today? You're like Right.

34:25

F that. I got 600 databases and, you know, 600 t 3 servers sitting in front of them. Like, I'm running a real business here, man. I can I just Serialize

34:33

Ian

PHP in a freaking column? Alright? I would I would

34:38

chill out. With that.

34:38

Aaron

But, yeah, we know that is the mark of, like, I've seen some things. I've been running this business for a long time.

34:44

Ian

This is how we had to do it back in the day. We didn't have your nice little JSON. It was like, well, I could put it in XML, which is super annoying. It has its own weird

34:52

Also, no good XML parser. I could put it in XML theoretically, but, like, not actually a nice way to get it there or a nice way to get it out. Or I could just say last week be.

35:01

Aaron

Thought I never thought I'd get hit with the we didn't have JSON in my day.

35:08

Ian

We did not have JSON in my day.

35:10

Aaron

Didn't have JSON in my

35:12

Ian

day. Crazy, man. I know. It's so crazy. Oh, god.

35:16

And that stuff's still in there. It's not like I mean, lot you know, whatever. There's tons of parts we've updated in different ways, but there are still some parts that have some stuff like that. And it's like, yeah. Whatever.

35:25

It works.

35:26

Aaron

The first time I felt super old in web development was when somebody said, where do you host your front end? I was like, where do I host my front end? My front end lives in the browser.

35:36

Ian

The client lives my

35:37

Aaron

front end. What do you mean where do I host my front end?

35:39

Ian

With my back end altogether on the same server.

35:42

Aaron

I send the front end to

35:45

Ian

the client.

35:45

Aaron

I don't understand the question. That's funny. Didn't have JSON back in the day. That's a different, yeah, different era.

35:53

Ian

Whole different world back then. So That is wild. Playing with this newer stuff I've been messing with and being like, yeah, we got JSON. We got we can query the JSON. We can do all kinds of stuff.

36:02

I I don't know why the databases don't make it nice to query the JSON. There's still, like, a little disconnect between, like, everybody's got these JSON columns, but then they don't.

36:10

Aaron

Wonky syntaxes and stuff.

36:12

Ian

Yeah. And then or even just doing it at scale. It's like, yeah, you can query into the JSON, but they're always like, you really shouldn't query into the like,

36:20

Aaron

no, that's a, or you gotta

36:21

Ian

build a computed column or whatever. Yeah.

36:23

Aaron

You do have to do that.

36:24

Ian

Yeah. I'm saying like, it's a whole thing. The computer column is kind of a BS because, like, then you're because here's the thing. This is all one of these,

36:32

Aaron

like computed columns. That's my that's my favorite.

36:36

Ian

I mean, I love it. I'd love a computed column. Right? It's fine. But here's the thing.

36:40

It's also, like, fake because for a real use cases, it's useless. Because, like, we

36:45

Aaron

real use cases, it's useless.

36:47

Ian

Because here's the so here's our use case, right, where it's totally useless.

36:50

Aaron

So what

36:51

Ian

are the problems we have?

36:52

Aaron

Just for the record, this is one use case. But This

36:54

Ian

is a very common use case in real business applications that you won't find with these people building their little JavaScripty things, but real real businesses have this problem, which is that

37:06

Aaron

Okay.

37:07

Ian

We have big customers

37:09

Yeah.

37:09

Who want a lot of custom fields.

37:11

Aaron

Yeah. They do.

37:12

Ian

And MySQL has a limit on how many columns you can have in a table, and it's based on,

37:18

Aaron

like, the

37:19

Ian

width of the thing, whatever. Yeah. So it ends up being in practice, like, 250 or something like that, generally speaking. Depends on the width of the column. Right.

37:28

Aaron

Row size, I think. But yeah.

37:30

Ian

Yeah. So right. The rows can only be so wide. So like, right. Depending on how wide you make the columns, whatever.

37:35

So, so, okay. So, oh yeah, I'll use Jason and I'll use computed columns, But you can't because a computed column is just a real column. So you have the same exact limit with a computed column as a real column. Same exact limit.

37:50

Poop. Poop.

37:51

Aaron

Poop. Back up. Back up. Back up. Yes.

37:52

You just you you explained some problem, and then you were like, JSON, and you said it doesn't work. So what what what

38:01

Ian

what is the middle There's different trade offs.

38:03

So what

38:03

Aaron

is the middle so you put all of these custom fields into a JSON column Right. So you can just blow up a big blob. And then what are you

38:10

Ian

doing gonna do at some point?

38:12

Aaron

What are you doing with the computed columns? You're trying to then parse it back out into into computed columns?

38:18

Ian

Well, that's what you would have to do. Right? Oh. That's not what you have to do, but that is a alright. So if you want to efficiently search with an index inside JSON, what's the solution?

38:29

Aaron

You put a computed column on

38:31

Ian

it. Yes. Exactly. So we have 200 separate fields. Why are you 500?

38:37

Aaron

No. No. No. No. No.

38:38

This isn't Oh, give me

38:39

Ian

the structure. Give me the structure, baby. No. We're learning. No.

38:42

Aaron

I'm excited. This is nonsense.

38:44

Ian

Drop some knowledge on me.

38:45

Aaron

You you drop a big blob into JSON. Right? So you got your Okay. Whatever. You got your 50.

38:50

Is it 200? Maybe it's 200 fields. You drop it to JSON. Right? Presumably, you've got a few hot columns or hot fields that people search on.

39:01

Right? So we'll say, like, category, I don't know what you do, but category

39:05

Ian

Sure. Whatever.

39:06

Aaron

Right? It doesn't matter. You're you're ecom now. So Right. Category, size, you know, price, whatever.

39:13

If those are the 80, 90% use case, those become first of all, those maybe become top level columns. But, like, you know, manufacturer and material and all those other things that nobody ever searches on, you don't need to search on. You can still you can still search on the JSON blob without breaking it out into an index column. That's fine. Also, you don't have to create the column.

39:41

You can just put a functional index on it. So you could, like, you you don't need to have the column.

39:48

Ian

You need

39:48

to be the area.

39:49

Limit. Indexes are 64. There's less, though. Smaller

39:52

Aaron

Yeah. That does have its own limits, but you don't have to, like, break them out, and you could put one on, you know, size and category and whatever as a community did. So there there are ways around it. But if you're shoving it all in JSON and then recreating columns out of it

40:07

Ian

Okay.

40:07

Aaron

I think that's all

40:08

Ian

for you.

40:08

Here's what I'm gonna tell you. So here so here so here's you're here I'm gonna I'm gonna bust out the real audio. This is the real

40:14

Aaron

deal. Tell me. Tell me.

40:16

Ian

Here's where here's where you are incorrect.

40:19

Aaron

Wow. Well, here's where I don't have all the information. Let's

40:21

Ian

start there. So here here is the here is the thing. So HubSpot. Right?

40:27

Aaron

Heard of it.

40:27

Ian

H o HR department's using it. K. We have ecommerce retailers using it. We have software companies

40:33

Aaron

using it. Right?

40:34

Ian

We have manufacturers using it.

40:35

Aaron

Yep. Yep. Yep.

40:36

Ian

They are adding custom fields for their own uses.

40:39

Aaron

Of course.

40:39

Ian

I have no idea what they're doing. Right? They're just like custom field to store an address, custom field to store, plan type or whatever. Right? Okay.

40:47

Fine. So the only way to then do this is I have to then ask them in some form or another, will this be a column that you're using a lot and need to search? Right. It starts to get complicated in terms of like, yes. If I have a predefined use case, I can define those indexes or maybe there's I make things into real columns.

41:08

Right. Whatever. But when the customers and the users are just out there doing it on their own, they don't know that a filter

41:15

Aaron

means that they're

41:16

Ian

going to have to query an index and blah, blah, blah. So, yes. Could we then architect some type of, like, we're tracking what fields are getting filtered on and things like that? Potentially. But now okay.

41:28

So that here's the second.

41:29

Aaron

No. Definitely.

41:30

Ian

But so here's the thing. In our current architecture, that could work. So our current architecture builds columns. That's what it does.

41:38

Aaron

Great.

41:39

Ian

Real columns, which has tons of awesome benefits because you have, like, the data type. It's got indexes. Better. It is can sort. And all those things.

41:48

It's just better. Yes.

41:49

Like, fine.

41:50

So if you're building a pure SaaS app though, with a multi tenant in a single database, you're again, back to a situation where like people are building custom fields, all different uses. I mean, now I would need thousands of index. Right? I can't it's impossible. I can't index that many things.

42:04

So then you have, like, do you do, like, the EAV type situation? Do you just do, you know, my current thinking on it is more like I'm gonna find other things to sort of use as indexes, like

42:16

Aaron

Right.

42:16

Ian

Date ranges and then, like, let the database churn through

42:19

Yeah.

42:20

The JSON in the smaller dataset. Right? Or whatever. Mhmm. But it's very messy.

42:25

Like, custom fields are one of these things that are just a disaster kind of when you hit real people doing real stuff with it, and there's sort of, like, a lot of different use cases. Like, if you have a a

42:36

more defined use case,

42:36

it's easier. But, like, if you have

42:36

this people

42:36

all over the place doing all different things, it's hard to narrow down how to how to do that. So I don't know. I don't know if you have other other ideas there.

42:47

Aaron

But So this is good.

42:48

Ian

This is good. This is good content.

42:50

Deep in database data.

42:51

Aaron

This is good content. So I I think, okay, this so that is actually that is a good, I don't know what the word rejoinder is. I don't know what that word means.

43:01

Ian

I like this one. I hope I hope we're making up words here now. I love it. A rejoinder.

43:05

Aaron

I need A rejoinder. Define

43:08

Ian

A rebuttal.

43:08

Aaron

Rejoinder. Rebuttal's what I was looking for.

43:10

Ian

I hope we just invented a word here.

43:12

Aaron

A rejoinder is a reply, especially a sharper or witty one. Holy cow. That was a rejoinder. That was a rejoinder.

43:20

Ian

Ladies and gentlemen, this is a man who just had twins And I just 70 days ago.

43:26

Aaron

Derived rejoinder. That's amazing.

43:30

Ian

Oh. That was incredible. Trinket. I thought you'd be Yeah. You're just pulling this out.

43:34

Aaron

Well, that's crazy. The show, ladies and gentlemen. Listen. There we go.

43:37

Ian

We should

43:37

just we should just end right there.

43:39

Aaron

Amazing. Well Good rejoinder, I must say, on the, on the custom schemas thing. So I think the interesting part is when you'd say, like, you know, one row let's say one row is, you know, storing something about, ecomm, and the next row is a different tenant. So it's storing, like, HR data. And so the JSON BLOBs are totally different.

44:00

So how do you define Right. How do you define what the hot attributes that you're gonna index are? That is interesting, and I don't have a good solution to that. However

44:11

Ian

Mhmm.

44:11

Aaron

I wonder if you could get away with like, you would still have to know that for tenant 1, you know, the the hot attribute is, like, plan type, and for tenant 2, it's, like, t shirt size or whatever. You would still need to know that, and you'd have to either ask that or infer it based on their usage, which I think would be interesting. But I wonder if you could store the attribute name alongside the JSON and create basically like a, kinda like a obscured or abstract column that's basically like search value 1. And for some people, that pulls one key out of the JSON, and for other people, it pulls a sec or, like, a third key out of the JSON. I would have to look into that because if that's possible, that would make very a very interesting video for PlanetScale.

45:00

Ian

Wow. There we go. We better. Okay.

45:02

Aaron

Yeah. Thank you. Appreciate that.

45:03

Ian

There are, like, a bunch of different I mean, obviously, there's, like, I mean, I've you know, this is an area I've gone pretty deep on. So it's, like, the EAV tables, which are very interesting because you get a lot of the sorting and different benefits, but are actually pretty complicated. The query is a lot of weird querying that has to go on. Yeah. And then there's, like, dump dump everything in JSON.

45:25

And then there's, you know, building columns. Then there's, like, obviously in a multi tenant single database, you can't really build dynamic columns like we do Right. Currently, but you could do the, like, hey. There's there's 50 custom fields. That's what you get.

45:39

And Right. These are 50 field 50 actual columns in the database or whatever. I think in modern apps, you don't I you see that all the time back in the day. You don't really see that anymore. I think things are fast enough.

45:51

My inclination is that things are fast enough now that as long as you have a reasonable something you can index on, even if it's a date range that gets you within some kind of ballpark that for all but the maybe mega huge customers that

46:06

Aaron

I think that's probably gonna

46:07

Ian

be fine. That's sort of and, yeah, with some decent caching of queries and things like that, that you can get pretty far. But that's the way I've been approaching it. I mean, the JSON is great because it's so flexible. It's like, yes.

46:19

Any Right. Kind of infinite custom fields, and you can they can be whatever you want. They can be all kinds of weird shapes. They could store JSON themselves maybe if you wanna have, like, an address that understands the different lines of the address or something. Like, whatever.

46:31

You got all the different cool things, which is awesome. So I think there's some good trade offs there, which is why for the new stuff, I'm needing, most likely doing just the JSON blob, but it is, does have its own conundrums.

46:45

Aaron

It it is.

46:45

Ian

It gets me into, like, dump everything in in DynamoDB, baby. Just dump it in there. It's a big empty bucket. I hate to say

46:52

Aaron

it, but Postgres has a better index type for JSON

46:56

Ian

than MySQL. JSON b, like, a thing?

46:58

Aaron

Yeah. So we have similar columns. So they have JSON b, we have JSON. But we only have indexes via generated columns, or you can put an index over a JSON array, which I understand ceases to be valuable at some point, but Postgres has a a gin, g I n, general inverted something.

47:21

Ian

Oh, I think I've

47:22

Aaron

seen it before. You put an index on the blob, and it kind of figures out, like so it's not a b tree. It's not a full text. It's some other,

47:30

Ian

like, structure.

47:32

Aaron

And they kinda figure out, like, yeah. We'll, you know, we'll speed up your queries with this gin index.

47:36

Ian

We just What's your thought on Postgres?

47:39

Aaron

Man, I don't have a lot of thoughts, and this is, like, this is one of the things I've been kinda struggling with, and I put it on the list at the very bottom. We can get there or not, but, like, I don't I just don't have a lot of thoughts on things I don't use a whole lot, and I don't use a lot of things. And it's kinda hard because people are like you know, I'll make a video on my personal channel, and people are like, hey. Can you cover symphony? I'm like, no.

48:04

I can't. I like, what's your opinion on Laravel versus Next JS? I'm like, don't know, man. Laravel is probably better, but I don't use it. And on planet scale, they're like, make a video about MySQL versus Postgres.

48:18

I'm like, I've never used Postgres.

48:19

Ian

I don't

48:19

Aaron

know anything about it. Right. So I don't know. I think from what I understand, Postgres is much harder to operate in scale at, like, the operational level, but that doesn't matter to to a lot of people. Right.

48:34

And so I think a lot of, like, DBAs and DevOps and sysadmins and those kind of people prefer the scalability and, like, I don't know if it's reliability or, like, simplicity of MySQL versus Postgres. And there's something like, there's some weird thing about the the internals of the way that Postgres works that makes it difficult for it to either scale or shard or be horizontal or something, and I just don't know. So

49:03

Ian

No hot takes there then.

49:05

Aaron

No. No hot takes. I'm like, I don't know. If you use it, it's fine.

49:09

Ian

Yeah. I always feel like on paper, it's better. Like, you're like, oh, it does the like, it has this fancy gin index. Right? And that looks cool.

49:15

Like, there's all this paper benefits, I feel like, but then, yeah, I don't know. I used it once for a production system, which was a gigantic mistake because I was like, oh, this is the new hotness. Let's use this thing. Yep. This is like 10 years ago, whatever, on a on a thing Taylor built, actually.

49:29

Taylor of Laravel. And

49:31

Aaron

Heard of him.

49:32

Ian

What whatever. It was like, we use Postgres, blah blah blah. So first of all, the query language is a little bit different, which I don't care for. I'm a MySQL SQL Server query language guy. I'm not a Oracle postgres guy.

49:44

So that's a little weird to me, but whatever. Fine. But yeah. And you know, and it went down and I'd had this guy, like, on contract who's, like, a postgres guy ostensibly.

49:55

Aaron

Yep.

49:56

Ian

And he was like, he he said he had all set up. So if there's ever any issue, we could restore blah blah. So I was like, okay. Well, we need to restore because shit's down. It's all broken.

50:04

And customers are mad, blah blah. And he's like, oh, man. And it took him, like, 12 hours or something. You know, it was like a whole production. And I was like, you know what?

50:12

Like, this is just I can't be using these tools. This this No. Kind of DynamoDB thing too. Like, I know my SQL. I know SQL Server.

50:20

If something goes wrong, I could get in there, and I could do some shit if I have to myself. And which is sort of a bad attitude. There's the whole bootstrapper thing. That's a whole other thing we could talk about someday. But, like, ultimately, I feel comfortable that I could get in there and at least hack around and half ass fix something if I absolutely had to.

50:36

Whereas, like, this whole post post, I have no idea anything about it. I'm just gonna be googling random shit and have no idea where to even start, if there's a problem. So that's what's always kinda kinda how I feel.

50:47

Aaron

And I'm just saying I grew up I grew up on my SQL, like, literally since I was, like, you know, 10, 11, 12. That's what I've been using. It's like, I I know it. I Yeah. Like it.

50:58

It's been around for a 1000 years. It's kinda how I feel about PHP. It's like, yeah, it's good. I like it. It works.

51:06

I know it. I like it. It works. It's been around, which means it'll be around, and it does the job that I want it to do.

51:13

Ian

So, yeah. There you go.

51:15

Aaron

I like it. I'm I'm glad to believe that there are great things about it, but, it works. Yeah.

51:21

Ian

Right. The who has the time and energy and effort to, like, go and that that is one thing that, like, customers and things like that clarify for you to some degree because it's like, yeah, there's just no time. Like, to go over there and, like, the risk and time and everything, and, like, that's something you might do. Like, I'm sort of getting started on it now for, like, the first time in 20 years. Right?

51:41

It's, like, the kind of thing, like, you can't just be doing that every year. It's like, well, I'm gonna go try Postgres now. Like, you know, no. Like, you have 8,000 other things to do. Like, you're not gonna try Postgres now.

51:50

You're just gonna do what you need to do to ship the next batch of features or whatever you're doing. So

51:55

Aaron

Yes. Yeah.

51:55

Ian

I think we should talk about the thing you put at the bottom because that's interesting.

51:59

Aaron

Yeah. That

51:59

Ian

leads that leads right in

52:00

Aaron

right into this. I've just been having this thought recently and realizing that, like, I think it's always been true, but, like, crystallizing and realizing that my, like, goal, the thing that I'm aiming towards is not to be a great engineer, and it's not to be a great software developer. And what you said there at the very end is, like, a 100% how I feel, like, you don't have time to do it because you're working, like, you're working towards some other goal in your case, like Right. Serving customers. And I think my goal is to just, like, make stuff, and it always has been.

52:36

Ever since I was ever since I was very young, I've just loved making things, and software just happens to be, like, the the mechanism by which I make stuff. And it's weird because I see, like, I see on Twitter and, we'll just say Twitter. I see on Twitter all these people arguing about, like, the most technically pure way to do something. Right. And I look at it.

53:00

I'm like, y'all. I don't care about that at all. And then, you know, I'll make a video either on either channel, and people will be arguing in the comments about whether something is, like, a capital g good idea. And I'm like, I don't know. It works.

53:17

Like, what's the problem? It works. And, you know, people like spending hours and hours and hours customizing their text editor, and I'm like, I just I opened PHPStorm, and, like, I get to work. And I don't know. I feel a little I feel a little, I don't know, like, silly or embarrassed sometimes where I'm like, yeah.

53:40

Whatever. I just you know, sometimes I hide stuff in PHP Storm because it's annoying. But literally, that's the extent of, like, my customization of my, you know, VIM or whatever. I've never used VIM in my life. I used Oh,

53:51

Ian

VIM is ridiculous. Forget that.

53:53

Aaron

And I use I I use a I use a Git GUI, and I don't feel bad about it at all.

53:57

Ian

Git GUI. No.

53:58

Aaron

I don't care. And so Give

54:00

Ian

me the gooey.

54:01

Aaron

That that's the thing that's crystallized, and I feel like there's a good tweet in there somewhere, that'll that'll get that'll get, like, that message, like, really sharp. But, like, my goal is just I'm my goal is not to be a soft like, a great software engineer. My goal is to make cool things. So Yeah. That that's been I've been ruminating on that.

54:22

Ian

There's only so much time. Like, that's the thing. There's only so much time. And, like, you have to figure out what you wanna spend your time on. And you can't be helping customers achieve their goals and be the greatest Laravel PHP developer in the world.

54:38

Like, these are just conflicting goals. You can't do them both. There are, you know, very ultra rare exceptions to some degree of people who are just, mostly people who just absorb the programming side really quickly and well. So it's like, oh, I read this thing once and they forever remember it. And they're like, super excellent pro like, they just sponge in the information, But still, you only have so much time and you have to pick what you wanna do with it.

55:02

And, like, yeah. And and that's where, like, people working in huge companies, like, that's great for them. Right? It's like, I'm responsible for this class or this little section, and I'm the world's foremost expert in this thing. Yes.

55:15

I don't have to worry about anything else. Like, nobody's calling me. Nobody wants a new feature. Like I just keep this little thing running or even, you know, moderate sized thing, but I'm the expert in it and that's it. But, yeah, if you're more entrepreneurial, that's not always a trade off you can make there.

55:31

It's like, yeah, I can't be the best at lots of thing. I can't be the best at anything. Like, I'm not the best at anything.

55:37

Aaron

I'm not the best I'm not the best video editor. I'm not the best database person. I'm not the best Laravel person. I'm not the best open source person. I but I do a lot of those things pretty well.

55:48

And, like, that's what I like, that's what I want to be doing. That amalgamation of, you know, 6 different things is what I want to be doing. And I think I just feel self conscious sometimes when I see people talking about, like see people embedded, let's say, in, like, a, you know, a Facebook or a Netflix or something talking about, you know, all of the things they go through to be the best software engineer that they can be, and I'm like, oh, that ain't me. Right. That's just that is just not me.

56:17

I've got too much other stuff I wanna be doing. Well, you

56:20

Ian

know, it's funny too because there was, I was listening to this morning, the Caleb and Daniel, well, they said no plans to merge

56:27

Aaron

episode. Yeah.

56:29

Ian

Right. So I was listening to that today, and, they talked about us and this show a little bit. And one of the things they talked about was that they were surprised how much I code. And

56:37

Aaron

I know.

56:39

Ian

I feel like this is one of these things where it's like, you know what? I I'm not an excellent programmer, but I do know a lot about the problem space of my particular little area. And, and I've seen a lot of things when it comes to, like, what users actually do with software and things like that. And so, yeah, I'm like building the software because like, that's what got me into this to begin with. It's like, I like building software because I enjoy it.

57:03

I enjoy the artistic elements to it. I enjoy like connecting what users want to do with what the technology allows. And I'm not always doing that in yeah, the the what the Twitter sphere would, you know, give their huge thumbs up to. Right? Right.

57:19

But also, it's sort of awesome because now that's less important than ever in a lot of ways because, like, Laravel is gonna keep me from doing anything, not anything super stupid, but there's a lot of guardrails in place already. Right? Around like what I can do and how I should do it. And so there is a lot of help there that I didn't have 20 years ago when I first did it that it was just wild west. It's like, oh, yeah.

57:40

Now there's, like, all

57:41

Aaron

the PHP classes ended up

57:42

Ian

in the

57:43

Aaron

database. Yeah. Exactly.

57:45

Ian

So, there's all this good stuff now, and it's like, oh, yeah. It's, like, fun to be in there and doing it. And so, like, I can make that decision of, like, yeah. You know what? Like, I could hire somebody to, like, do this, but there's an element at the foundational level of an application that embedding the other things I know that are not programming related, but that if they're not in at the foundation impact, all the rest of the whole application that me doing right now is, is very useful for.

58:13

And at some point I don't need to be the person who dots every eye and crosses every t, but at a certain point early on here that it does make a lot of sense for me to be doing it since I know how to do it. And mostly, I just like doing it. So, it's fun. It's so fun. Yeah.

58:28

It's fun.

58:29

Aaron

Yeah. I I think there is, like I think there is a big, like, the ethos of Laravel feels more aligned to how I feel, and the ethos of, let's say, like, Next JS feels very, like, not focused on how fast can we ship something of value, but how technically interesting can we do a certain task. Right? Larabell feels like, hey. We these things, they're kind of facades.

58:58

They're kind of static accessors. Like, doesn't really matter. It's gonna make it fast, easy, and testable. And I don't care what you call it. Like, it doesn't who who cares?

59:07

Just, like, keep going. And, like, oh, the user the user model can save itself. Yeah. Yeah. It doesn't matter.

59:13

It's just like, just keep going. It doesn't matter. Just go faster. And I feel like with, you know, other frameworks, I don't wanna pick specifically on next, but other frameworks, it's like, well, technically, you have to do it this way. It's like, I don't I just don't care.

59:27

Ian

Yeah. I

59:27

know we we're always kicking the JavaScript people on here,

59:30

Aaron

but I just feel like I I got you.

59:32

Ian

It's like Vercel. Like, Vercel is the poster child for this to me. It's like, they're just I mean, they're ostensive. I mean, for literally, like, a year and a half, I didn't even know what they did. Like, I The

59:41

Aaron

problem are you solving? Yes.

59:43

Ian

I didn't know what the company did. They're just always, like, shipping design stuff and JavaScript things. I'm like, I don't know

59:49

what to

59:49

actually do. So okay. There are some kind of hosting thing for next, I guess, or whatever. Fine. Like, that's as far as I've gotten.

59:55

They host front end stuff. Great. And they still already shipping all

1:00:00

this stuff.

1:00:00

End. So there's, like, all this money in that world. They're back

1:00:04

Aaron

to where they put in. Money. So

1:00:06

Ian

much money. So much money. I just feel like there's so many people that, like, have all this time to, like, ultra optimize on, like, this weird shit. And it's like Yeah.

1:00:15

In the

1:00:15

end, you know, when all the money runs out

1:00:18

It's just gonna be back to, like, what did you do for the customers? What did you ship that people found valuable and were willing to pay money for? And then all this stuff will go away just like it always does, like, every cycle where, like, whatever the hot thing is, Ruby at one point or whatever. Like, this whatever hot thing, all the money's in there, and everybody's arguing about what the best way to do whatever is. And then it all goes away eventually, and only the people outstanding are people who, you know, did something that people found actually valuable and not just

1:00:48

Aaron

sort of Like, Shopify. Did you see their Black Friday numbers on Ruby?

1:00:53

Ian

That's crazy.

1:00:54

Aaron

They're on rails in my sequel, and they

1:00:56

Ian

did Right.

1:00:56

Aaron

Like, unbelievable numbers. It's like, y'all, this all this boring stuff still works.

1:01:04

Ian

Right. Well, that's good. That was super interesting. They have, like, a mix of 5.78 Yeah. Different MySQL clusters and, like, all kinds of stuff going on.

1:01:13

It's, like, amazing how far you can push this stuff. If, you know, when if you ship something valuable enough, then it's like, yeah, whatever we can just solve this problem with money. Like we just hire all the good engineers and like, they just somehow make MySQL scale to 8 gazillion transactions a second. Well, HubSpot and all that.

1:01:30

Aaron

HubSpot's also on MySQL, and they're using Vitesse. They host it. You know, they they run their own stuff. They don't have any affiliation with us, but they're

1:01:37

Ian

Mhmm.

1:01:38

Aaron

They're running I think I just did an interview with them before I left, for for PlanetScale. And they've got, I think, a team of 5 engineers, and they're running, you know, 100 and 100 and 100 of databases. And it's like, well, that's pretty awesome. I feel like there's Yeah. Like, the image I have in my head is, like, what is the, like, what is the thing on the horizon?

1:01:59

Because I feel like the thing that I am, like, headed towards is building something cool, and along the way, I'm, like, becoming a better developer. Right? But the thing that I am not heading towards, I'm not heading towards, like

1:02:16

Ian

Right.

1:02:16

Aaron

Become a 10 x engineer or whatever. If that happens along the way, fantastic. Bully for me. Yeah. But, like, I am my my focus on the horizon is build things and along the way, pick up skills.

1:02:31

Ian

Yeah. Yeah. I I'm the same way. Definitely. It's like yeah.

1:02:36

The the programming skills are in service of

1:02:39

Aaron

Yes. Exactly.

1:02:40

Ian

The other goal. Right? Like, whatever the the main goal is. Yeah. And I think it's sort of interesting because we're in this weird time.

1:02:47

Like, on the one hand, it's like there's all these guardrails and things are easier because you have these frameworks that makes them easier. But then on the other hand, like everything's also way more complicated. Like in the old days, there was a database and a web server and that's it. Like, there was there wasn't even anything else you could do. And now there's like, well, should I put my, you know, search engine on?

1:03:06

Do I use the built in right SQL 1 or should I have Elasticsearch or should I go to a Milli search or should I do this thing? And the other thing, like, every every single component is like a this whole decision tree.

1:03:17

Aaron

Right.

1:03:17

Ian

Like, do I wanna outsource this or host it myself or build it myself or, like, whatever? There's all this stuff, customer expectations of how fast things are and all that.

1:03:26

Aaron

Yeah. It's all it's all got more complicated.

1:03:28

Ian

Yeah. It's so much more complicated too, but oh, man. So I don't know. But you're it's, yeah. It's I don't know.

1:03:37

There's a

1:03:37

Aaron

lot there. We can go

1:03:38

Ian

out a long time with just that.

1:03:40

Aaron

But Yeah.

1:03:41

Ian

What else we have? What else we got going on here?

1:03:43

Aaron

Alright. You wanna go to my static site? You wanna go to Laravel Pulse? Where you wanna go?

1:03:50

Ian

I haven't looked at Pulse too much, but I'm excited about it.

1:03:54

Aaron

I think Pulse is gonna be cool. Alright. You wanna go to static site first?

1:03:57

Ian

We should go to your static site.

1:03:58

Aaron

Okay. So I have a bone to pick with you know, sometimes you put these

1:04:02

Ian

cards for this.

1:04:03

Aaron

You put these cards in, and I'm like, hey, man. So so the card says, what's up with Aaron's crazy? What's up with Aaron's crazy? It's a little crazy. Static static site setup.

1:04:18

Ian

So It's not static.

1:04:19

Aaron

We well, if we can go to the tape, I'm gonna I'm gonna rewind. We're gonna go to the tape where we talked about static site generators, and we were both like, ridiculous. Nobody needs them. Just use Laravel.

1:04:32

Ian

Totally.

1:04:32

Aaron

And then I I come out with this great video about how I'm just using Laravel, and this card pops up that says Aaron has a crazy that excites me. So what what do you mean it's crazy? It's just Laravel.

1:04:46

Ian

Do you but see, it's not. Right? Because, I mean, now maybe I'm just misunderstanding what you're doing.

1:04:51

Aaron

Okay. Let me give the rundown. Fair.

1:04:52

Ian

You give the rundown of what your setup is, and it also lies crazy.

1:04:56

Aaron

Okay. So my site, is a Laravel site. Full, like, not Jigsaw. Not it's just Right. Laravel.

1:05:04

Ian

Pure.

1:05:04

Aaron

Just a Laravel. It's just pure Laravel. The way that I keep track of the content. So on my side, I've got a bunch of, like, articles that I've written on my site and elsewhere and videos that I've published on my channel and Planet Scale channel. And, basically, the the crux of the site is a big list of things that I have done.

1:05:24

You can click out and read them, watch them, whatever. Mhmm. All of that is stored in a SQLite database. The reason it's in a SQLite database is because I can just ship the entire site wherever I want. Where I want right now happens to be Laravel Vapor, but if I wanted to ship that to fly dot I o later or Digital Ocean Box, you know, I could do that because it's all just, you know, self contained.

1:05:49

Yep. So to get static site speeds, I have Cloudflare, which you love, active investor.

1:06:00

Ian

Oh, man. It's up 5% today. Let's go. Oh. Let's go.

1:06:03

Aaron

I get every freaking day.

1:06:05

Ian

Cloudflare, baby.

1:06:06

Aaron

Gosh. So to get the static site speeds, I have this rule in Cloudflare that's just brute force cache

1:06:14

Ian

I'm with you. Everything. I'm with you all the way. Around.

1:06:17

Aaron

and everything. And then and then okay. So we're we're on the straight and narrow so far. SQLite, boring as could be. Laravel Perfect alignment.

1:06:25

CloudFlare active investor.

1:06:27

Ian

I love it.

1:06:27

Aaron

So not crazy yet. Nope. And so when I deploy, I make a API call to CloudFlare that says, blow everything up. I'm coming, baby. Right.

1:06:35

Ian

And so

1:06:36

Aaron

it just it just kills the cache. Yep. And then the next time somebody requests it, it'll hit vapor. It'll run through Cloudflare. It'll cache.

1:06:43

Ian

Yep.

1:06:44

Aaron

What is crazy about that?

1:06:46

Ian

All not crazy.

1:06:47

Aaron

That that's all it is.

1:06:49

Ian

No. But you're leaving out a step. In the video, you had this whole other step where you do some local stuff, and then you push the local stuff to the server. But you don't need to do that step.

1:06:58

Aaron

What are you talking about?

1:06:59

Ian

Am I just am I just wrong on this? I thought you were doing some

1:07:02

Aaron

vocal stuff. Down like, I I call the YouTube API and see, like, what are the new videos? How many views do they have? Yeah.

1:07:09

Ian

But cases crazy. Stuff on the website. Like, why do you have to pull everything down and republish it up, and you could just do that on the live website? But could that just be on there?

1:07:19

Aaron

So you can't write to sequel I in vapor because the vapor file system is ephemeral

1:07:26

Ian

and just

1:07:26

Aaron

gonna get blown away. Yeah. And so what I do locally

1:07:29

Ian

is the problem here.

1:07:30

Aaron

Vapor's not a problem. How dare you?

1:07:32

Ian

Problem. Vapor is not

1:07:34

Aaron

a problem. It's it's not a problem in GitHub.

1:07:37

Ian

I actually like this whole step that you you have a whole series of local steps, which to me is against the

1:07:42

Aaron

speed of what

1:07:43

Ian

we're talking about.

1:07:44

Aaron

Even have to they don't even have to be local. I run them in GitHub actions. So when I when I push when I push to GitHub when I push to GitHub, it runs this action. It's like, hey. Mhmm.

1:07:55

Has Aaron published any new videos? Let's put those on the website. So part of this is, like, gathering digital detritus from all across the Internet and putting it somewhere But

1:08:04

Ian

couldn't you just do that at all? But, again, see, I think this is like a vapor.

1:08:07

Aaron

It's because

1:08:08

Ian

you're insisting on being on vapor that you you can't just have a cron job and a command that does this.

1:08:13

Aaron

Okay. Okay. Well, if I'm on if I'm on fly dot io and then I blow the box away and rebuild it, then the SQLite database is gone. It's SQLite. It's not vapor.

1:08:23

Ian

I'm I'm just saying, I think that I think this is you've overcomplicated it to me. Just put it undercomplicated it. Just though, just put it on DigitalOcean. Just put it on a server, and then you wouldn't have to do all the steps. You just eliminate 10 steps if you just have it on a server.

1:08:37

No. But Yes. Yes.

1:08:38

Aaron

Then I have to manage a server, and I have to manage a

1:08:41

Ian

What manual? A server stays up right. No. You can still use SQLite. Then then you can actually use SQLite because you can write to it on that server.

1:08:50

You can just do everything you're talking about doing on the server. Yes. Yes. Yes.

1:08:54

Aaron

No. You can. It's crazy. This is my system is less complicated than what you're describing.

1:09:01

Ian

More complicated.

1:09:02

Aaron

Why is it more complicated?

1:09:03

Ian

Because you shouldn't have to have to push. Why would you have to push

1:09:07

Aaron

a little push?

1:09:07

Ian

Unless you were changing the website. If you're, like, changing the design or whatever, fine. But like otherwise you shouldn't, if you just put it on a droplet. Yeah. You could have a command that sucks in your new YouTube videos, whatever.

1:09:18

Right? But whatever it does when it finds something new, it clears the the cache. Mhmm. And that's it. And you don't ever have to push anything from local ever.

1:09:25

You're pushing a bunch of stuff from local, but you don't ever have to do that. If it was just on a regular server, you wouldn't have to do that. You'll have

1:09:31

Aaron

to by your avatar. Hoist it by your avatar. I don't have to do that. I don't have to.

1:09:36

Ian

You want

1:09:37

Aaron

them now? No. I don't. Get get hub action videos. Get get

1:09:39

Ian

hub action

1:09:40

for me. Only on the push?

1:09:43

Aaron

No. It's on a schedule.

1:09:45

Ian

Okay. It's on a schedule. Well, you said every time it pushes. You said

1:09:48

Aaron

when it pushes, you know It happens then too. Alright.

1:09:52

Ian

I don't know. It's been very complicated.

1:09:54

Aaron

It runs at midnight. You can't tell

1:09:56

Ian

me this story is less complicated than a pure Laravel app with a SQL like database and a command. No. It's not it's not less complicated than that. It's just that it can't be. It can't

1:10:07

Aaron

be. It's so much less complicated than that. It is. It's a SQLite database, and I just put stuff in it, and then I can just ship it wherever I want. That's so much less complicated.

1:10:18

Ian

No. But you can still use SQLite. It's just on the server. You don't need this whole local step. You could write, you could publish on the server, right?

1:10:26

You could just have it be all on the server. You don't need a local anything.

1:10:30

Aaron

What is the problem with the local something, though?

1:10:32

Ian

To say. It's like an extra thing that I don't think you need. It's like a whole extra series of steps that are unnecessary just so it could be on a serverless platform. But what do you care for?

1:10:41

Aaron

Which I don't which makes me serverless. I don't I don't have I don't have any complaints. I don't have to do anything. It's serverless.

1:10:47

Ian

I'm good with vapor for and for, like, an actual application, there's a great use case

1:10:51

Aaron

for Pejorative. Actual. I'm gonna call I'm gonna say actual was pejorative there.

1:10:56

Ian

I don't I don't love that. Dot com. Like, I don't know if it's It's a great it's a great domain. 9999 percent uptime. Like It

1:11:02

Aaron

costs me, like,

1:11:02

Ian

once every 4 years. You go down for 3 hours. Like, it's not a big deal.

1:11:07

Aaron

No. No.

1:11:08

Ian

You're not buying it?

1:11:10

Aaron

This is new. This is a generational thing.

1:11:12

Ian

We've been we've been so on the same page. We've been so on the same page this whole time.

1:11:18

Aaron

Yeah. I don't know, man. I find it so easy. And here's the thing. I don't ever think about syncing content locally.

1:11:27

Like, I don't ever think about pulling the YouTube and the transistors. Like, I have our podcast feed. I've got both YouTube channels. I don't ever think about, like, pulling that down locally. I just am, like, writing my little articles, make my little CSS tweaks, commit, push, and then the GitHub action's like, oh, wow.

1:11:44

I'm here. Might as well pull down all the new content, update the view counts on YouTube, and then then we'll push it out.

1:11:52

Ian

It's great. I just think in the purest form of the Laravel as as static site with Cloudflare. The purest form of that is a truly pure Laravel app. If you have something that needs to happen on the schedule, it has a command and a cron, and that's what gets pushed up one time unless you're, like, making structural changes, and then that's it. And then Cloudflare does its thing.

1:12:15

You can have whatever. You can refresh the cache if something changes and there's no other steps necessary. There's like the the the minimalist version is just pure Laravel on a server and Cloudflow. That's all you actually need to do. I guess that's what I'm saying.

1:12:32

Aaron

I could I could see that. I could see that. As long as we're on the same page about SQLite being a nice, like

1:12:40

Ian

Yeah. I'm fine with SQLite. But SQLite works on the server just fine. You can write to it on

1:12:44

Aaron

the server. It does, but you can't you can't, like, like, getting SQLite You can't you can't

1:12:53

Ian

do it on vapor because it's ephemeral. But on a server, you could do it.

1:12:59

Aaron

You right. On a server, you could go in and get all the content and dump it down and bring it home if you needed to, like, back it up or, you know, switch providers or whatever.

1:13:08

Ian

You just turn on the backups for a dollar a month or whatever.

1:13:11

Aaron

I do like I like the site being self contained both, like, presentation and data. I like that all being in a single like, in the Git repo. Okay.

1:13:24

Ian

So you're on the GitHub repo app. Because even with I'm just thinking with even with vapor, you can connect the EFS file system stuff, and you could put your SQLite database on that. And then you would have your vapor true. I mean, that would be more complicated. I think this is getting away from this embassy, which I Yeah.

1:13:41

Aaron

It's crazy. For an actual

1:13:42

Ian

for an

1:13:42

Aaron

actual website, maybe. Yeah. Right.

1:13:45

Ian

Yeah. Yeah. But, so, yeah, I do I think I get aspects sort of interesting there. Self contained

1:13:51

Aaron

unit is is, is aesthetically pleasing to me. It's like, this is my this is my bundle of my website, content included.

1:14:00

Ian

You could have Git running on the server, and you could have your push it back into the repo. I don't want I'm saying if you wanna push it back into the repo

1:14:07

Aaron

I don't wanna do all that. If you wanted to. That's a lot. So complicated.

1:14:10

Ian

That important to you. I'm just saying.

1:14:12

Aaron

It's not. I just like I just like having it all as, like, a bundled unit.

1:14:17

Ian

This is like a

1:14:18

more more of your psychosy sort of situation.

1:14:18

Who's that first situation?

1:14:19

Aaron

Of your psychosomatic sort

1:14:21

Ian

of situation. Who's on first

1:14:23

Aaron

situation is what this is. Mhmm. It makes perfect sense. This is the first time I ever used the light. It's great.

1:14:29

I have.

1:14:30

I've never really used it. I wanna I wanna try to use it for something.

1:14:34

Aaron

Well, I've got

1:14:34

Ian

a great

1:14:35

Aaron

video on how I don't know how to run

1:14:38

Ian

your site. Oh, I mean, you could even get into that. You don't even need SQLite. You could just have, like, files. And what's it?

1:14:44

What do you need the database for? Like, you know what I mean? Sushi.

1:14:47

Aaron

I tried sushi, which is Caleb's thing.

1:14:50

Ian

Mhmm.

1:14:50

Aaron

And it's great. It's great for a single, like, a single model. But then once you start, it broke down for me a little bit when I started, like, pulling stuff down from APIs, like the transistor API, the YouTube, and all that. Like, it started to break down a little bit in terms of, like, this isn't actually you can do it. It's just not super built for that.

1:15:11

Ian

Right.

1:15:12

Aaron

So that's when the, like, the crazy synchronized commands came in where I would just pull it down and write it to a SQLite database because that's what sushi does anyway.

1:15:21

Ian

Mhmm. You could put it into JSON files or XML file. You could leave it as RSX feed. I mean, there are there are options out there if you wanna go totally

1:15:29

Aaron

chosen the best one. Yeah.

1:15:31

Ian

I don't know. The best option seems like

1:15:33

a little

1:15:33

bit of extra complexity, but it's not terrible. I do love it.

1:15:36

Aaron

And I get to use eloquent. Then I get to use.

1:15:38

Ian

That is nice. Yeah.

1:15:39

Aaron

Yeah. So I can just say, like, oh, you clicked the videos tab. You know, content, where type people equals videos. Like, ah, I'm just using plain old eloquent, which is nice.

1:15:49

Ian

You'll appreciate this since you are a man who's built an advanced eloquent tool

1:15:54

Aaron

at one point. Me.

1:15:55

Ian

But just eloquent, doesn't it just, like, blow your fucking mind? Like, there's just times where, like

1:16:00

Aaron

just that I can have

1:16:01

Ian

things where, like, I could just return the query builder, and then somewhere totally else can do something with that query and add to it. And then something else is, like, runs the query. And, like, this sounds complicated, but actually makes total sense in this an actual use case here. And it's just, like, passwords

1:16:19

Aaron

into query builders for subqueries.

1:16:21

Ian

And Yes.

1:16:21

Aaron

It is That's all crazy. Unbelievably good.

1:16:22

Ian

I'm I'm maybe,

1:16:29

Aaron

just based on time spent with Eloquent, I'm I've gotta be up there in terms of

1:16:35

Ian

Right.

1:16:36

Aaron

Top few percentage of people that have really gone super deep into Eloquent because of the filter builder. And at every level, at every layer, it is very good. It is very good.

1:16:50

Ian

The I'm gonna go into the archive here for the for the fans of the podcast here. So Taylor, when he worked at UserScape very, very early, Eloquent was totally different. It was all built different. I guess this was Laravel 3 and whatever we were hitting stuff with it, whatever. I I'd let it's so long ago now that I don't even really remember the details, but he was like, this is all shit.

1:17:13

It's terrible. Right? He literally went off and he went off and we were watching breaking bad at the time. He went off and, like, into this, like, he was just in this, like, fugue state or something where he's just, like, big brain. His his brain expanded, and he came back out, Like, a day later, maybe it was 2 days later.

1:17:31

Aaron

I'm picturing Moses coming down with the tablets.

1:17:34

Ian

That's what it was like. That's literally what it was like. And he was like, I cracked it. He's like and it was just, like, all built and done. It was like the eloquent you have today.

1:17:42

Like, the core, obviously, is a million other functions now. But, like, the core is was is what it is now, and he just, like, had totally reinvented it. And we were all just like, woah. Like, this is crazy. Like, it was it was the most insane.

1:17:54

I don't even think he he I think he he was like I don't even know how I did it. I don't remember anything. Like, it just, like, flowed out of him. But, Yeah. God God wrote

1:18:04

Aaron

it with his own finger into the snow.

1:18:05

Ian

It's how

1:18:06

it happened.

1:18:07

Along that line. God's got his hand on his brain type of thing. Yeah.

1:18:11

Aaron

Yeah. It's good. It's really good. And that's why I like that's another one of those, like, gaps I have in my knowledge when people are, like, complaining about ORMs. I'm like, y'all.

1:18:22

Maybe your ORM just sucks. Like, ours is really, really good.

1:18:27

Ian

And it's still and then even it makes it very easy when you do have to drop down into a raw statement or something.

1:18:32

Aaron

If you need to time.

1:18:34

Ian

Get in and do something super special because you have a weird scenario, like, fine. You can do that, and it'll still do all the niceties around the raw element you need or whatever. Oh, and you can just use a straight DB builder, which works just like Eloqua.

1:18:46

Aaron

Base builder.

1:18:47

Ian

So The base builder's great. Base builder. Like, you could just I do that a lot. Just writing straight queries. So there's, like yeah.

1:18:54

All that that whole subsystem there is so good.

1:18:57

Aaron

I remember spoiled. So when, yeah, when Colleen and I were working on the Ruby version of refine, which is that filter builder, I remember I remember, like, working with her. We would pair a lot, and we would work together, and I would try to explain, like, how something worked on the Laravel side so she could reinvent it on the Ruby

1:19:19

Ian

or the

1:19:19

Aaron

Rails active record side, and it was just worse. And she would even comment, like, oh, that is that's really, like, easy for y'all. Yeah. Like, I gotta do all these I gotta jump through all these hoops and, like, add these extra nodes that I'm then later gonna have to remove because I don't really have that affordance here. And I remember thinking, yeah, ours is ours is pretty slick.

1:19:42

Is it? Okay. Yeah. Really? So I've seen I've seen a lot of rails as active record, and it's good, but it's did it's it's not it's not as good.

1:19:50

Ian

Eloquent is so good. I feel like there's so much other stuff in the ecosystem now that, like, now like, Eloquent used to be, like, the big thing, and now it's sort of like I feel like people don't talk about it as much because it's,

1:20:00

Aaron

like, a table of Yeah.

1:20:01

Ian

This pulse, and there's all this other stuff. Right? There's all this huge ecosystem. Horizon. Right.

1:20:05

Yeah. And there's all kinds of stuff. But eloquent just itself, it's just so when you just work with it, it's just so nice. It's just, like, even stuff like syncing, you know, with when you have, like, many to many table or whatever. Like, just stuff like that.

1:20:18

Like, the pivots and, like, accessing another column on a pivot. Like, all this stuff is, like, there and thought out and, like, just so clean to work with. And when you just look at the code, it makes sense. Somebody else can follow it. Like, it's Yes.

1:20:31

So good. Just love it.

1:20:32

Aaron

Go if you haven't drilled down, dear listener, go, like, go go around good. Down there. It's, yeah, it's very good. And the traits for the relationships are wild. Like, how all of that how all the, you know, one to 1, one to many, all that stuff

1:20:50

Ian

is like

1:20:51

Aaron

works. I don't know how

1:20:52

Ian

it works inside. I I don't

1:20:53

know how to

1:20:54

go in there. I just enjoy it on the surface. I'm like, this is good. I don't want to know how it works. I just love that it works.

1:20:58

It's so good.

1:21:00

Aaron

You'll you'll be happy. There's no disappointment down there. If you go down there and look, you'll be like, ah, I am glad I met my heroes. This is wonderful down here.

1:21:10

Ian

Oh, man. Alright. What else should we hit? We're we're out hour 20 here. Are we going are we going deeper?

1:21:17

Aaron

Just let me hit Laravel Pulse here for a second.

1:21:20

Ian

Yeah. Let's do it. Have you gone in the office?

1:21:23

Aaron

A little bit. I talked with Mhmm. Jess and Tim a little bit on, how they're doing some of the query stuff. And I think also Jess went into what what did you call it? A fugue state?

1:21:34

Ian

Yeah. Fugue state.

1:21:35

Aaron

That's a new one. Also, we have rejoined her in fugue. I think Jess, after we talked, went into a fugue state and, like, reworked a bunch of the stuff because they're storing a lot of data, a lot of, like, time series data, which, you know, relational databases can struggle with sometimes. But Laravelpulse is, you know, this dashboard, high level overview card based system for, like, keeping track of stats and stuff on your on your application. And I reached out to Jess and Tim and was like, hey.

1:22:04

I wanna write one, you know, for MySQL in a DB rose red because it's like it approximates, you know, planet scale insights, but it's worse. And so, like, I want people to know that, like, this is a way you can look at, like, how your database or, actually, how your queries are either missing indexes or, you know, running too much or whatever, with the idea that that will then lead to, like, oh, we should get the better version, which is planned skill insights. And so Jess helped me write a card for my SQL, you know, DB status, and it's just like it's another it feels to me like another, like another Nova where they provided this unbelievable scaffolding and infrastructure, and you can now come in and be like, ah, I wanna write a little card for this thing. And it's like, I'll hit it here, and I'll listen to this, and I'll put out this, and now it's beautiful. And it's gonna be, I think, even easier than Nova because it's all LiveWire, and so you don't have to, like, have your Vue assets get bundled and packaged and shipped.

1:23:07

Ian

Right.

1:23:07

Aaron

I've done a ton of Nova as well, and it's like, that's that's a little bit difficult to to customize because of the front end asset story. Mhmm. So I don't know when Pulse is coming out. You know, I think they have been furiously reworking some of the roll ups to get, like, the the stats working correctly, but it's gonna be really good. And I've got I think I have some secret ideas on things to do, and I don't wanna I don't

1:23:33

Ian

this did you build this card already? Have you built with it or no?

1:23:36

Aaron

Jess just built it. And then we had a call to go over how how it was all built. So I have.

1:23:41

Ian

Okay.

1:23:42

Aaron

I didn't build it, but she used it as the first like, how would a third party card be built? And I think it, you know, just revealed a few rough edges. Mhmm. But then after that, we spent, like, 2 hours talking about queries and stuff, and they're just everyone at Laravel is just so smart. Yeah.

1:24:01

I know. They're just so smart. Like, I was talking to Jess, and I was like, have you thought about this? Like, yeah. I thought about this, but what about this, this, and this?

1:24:07

I was like, oh, that's a really good point. So, no, I haven't built it yet, but I have beyond the my sequel, you know, res red, whatever. I think I have some ideas for things that could be cool for Pulse, and I don't want to get scooped, so I'm not going to say them yet.

1:24:22

Ian

But are these commercial commercial ideas? Open source ideas?

1:24:25

Aaron

So I don't think so. I think it's going to be primarily open source, primarily like content, but could be. I don't know. I just don't want to get screwed. But, yeah, stay tuned.

1:24:37

I think it'll be I think it'll be really interesting. And I think I think it's, it's a good meta framework for certain, like, time series data stuff. So

1:24:48

Ian

Is it gonna be, like you I I assume it's gonna be usable for just all kinds of dashboard ish type things. Is that seem accurate? Not just sort of server statistics even though that is what it's gonna come out of the box with. Yeah. So I I always want a good dashboard type thing, but it's just never, like I don't know.

1:25:09

I use was there grasshopper or some I don't know. There's one there's a couple of them out there that are, like, these dashboard type things, but they never really stuck. And

1:25:16

Aaron

Right. Right.

1:25:17

Ian

I don't know, but if it was just like part of the app and then Right. You can do other stuff in there, like, that seems pretty cool. Like it's all in one spot and, all the trickiest stuff to wire up in some sense is like already there. Cause like the it's on the server

1:25:31

Aaron

exactly server

1:25:32

Ian

stuff and then, okay. Now I can just call APIs for like whatever, Stripe or whatever other other stuff I wanna just pull in for other cards on that card.

1:25:41

Aaron

Timing functions are handled for you and, like, the, you know, the display is all handled for you and, like, you're not building out It's

1:25:48

Ian

not storing individual row entries, I assume. It's like it's like incrementing.

1:25:54

Aaron

That is some of the wizardry that I think Jess has been working on the past Yeah. Week or 2 is, like, how do you store enough unaggregated data to be interesting, but not too much that it is a bottleneck and, like

1:26:09

Ian

Right. That's your server because you're storing every every query

1:26:13

Aaron

or whatever it is. We went super into, like, window functions and rolling up and stuff, and I think I think she has found a novel approach that I have yet to see. But from what I understand, it's incredibly smart, which surprises nobody. So Well, that means I I'm excited. I think it's a I think it's a big one for for

1:26:31

Ian

Laravel Inc.

1:26:32

This is one of the things I'll I'll definitely be digging around in that code because I think this is one of the things for HubSpot in the future here that, like, we've always just queried the database for reports just like pure. And Yeah. But the databases can be huge. And so like, then those queries are obviously terrible because it's like database doesn't really like to do that in in the traditional relational database. So, it's like, yeah.

1:26:59

Do you, like, have reporting tables that do some type of aggregation or something like that, so you can report. Because I'm I am a fan of the real time report. I do that's another downside of DynamoDB. Because, like, you're pretty much stuck. There are some real time solutions, but you're kind of mostly stuck with, like, things that are not really real time.

1:27:18

And I do prefer to have real time reporting. Yeah. So, yeah, I'll be able to see what they come up with. If they have something cool in there I can crib from, that would be Yep. Pretty awesome.

1:27:30

Or maybe things make their way back into Eloquent and Laravel that help with these sort of things. Who knows? Or Yeah.

1:27:36

Aaron

I forget I forget that we have non Laravel listeners whom we love dearly. So, pulse dotlarvel.com, shows you the the overview. It's a dashboard. It says vital signs in real time, and it's gonna be a free open source package. And the cards that they highlight are, like, CPU percentage, and it's a little spark chart and memory and storage and, like, how heavy like, how backed up are your queues and how many cash hits have you had and misses and stuff like that.

1:28:06

And so they're pitching it as, like, a lightweight APM, application performance monitor, something like that.

1:28:13

Ian

That. Something like that. Yeah.

1:28:15

Aaron

God. What did Taylor say on the Laravel podcast? He's like, I think of it as a family doctor. He's like, I think of it as a family doctor.

1:28:23

Ian

And

1:28:23

Aaron

if you see a problem.

1:28:25

Ian

With the metaphor.

1:28:26

Aaron

Oh, he's. Yeah, I know. It's like, if you see a problem, you need to go to your specialist. So he's like, we don't have all the stuff that, for example, a century would have. Right.

1:28:35

Ian

Yeah.

1:28:36

Aaron

This is it's all aggregating.

1:28:37

Ian

New Relic

1:28:38

Aaron

or whatever. Go dig in somewhere else. So yeah. Yeah.

1:28:44

Ian

I thought it was kinda interesting too. Did you see, DHH, for the show? You know, they're doing the once whatever, some kind of software or whatever. We don't have to go back into all that. But he he released he tweeted Yes.

1:29:00

Authentication concern. Yes. An authentication concern that's gonna ship with this one thing they're shipping. Yeah. And I was like, you know, this is like they're getting they realize that Laravel is, like, so far ahead of them in some of these ways where, like, Laravel just ships, like, 5 different types of authentication.

1:29:16

You want, like, it's totally done for you. You want it's kinda done for you. You want it's not really done for you. You want it's, like, almost kind of all done for you, but just a little bit, like, it's got everything. And it's like, oh, and a lot of other stuff you announced at Rails World comp too, I think, was along these lines of, like, flushing out the ecosystem where So that's interesting.

1:29:33

Out there.

1:29:34

Aaron

I read those tea leaves differently. When he tweeted that authentication concern, I read that as a dig to the, authentication startups, not to Laravel, but to, like, the clerk dot devs of the world. It's like outsource your authentication to us for only, you know, $24 a user.

1:29:54

Ian

And you're

1:29:54

Aaron

like, wait. Hang on. Back up. So that is interesting.

1:29:59

Ian

Maybe that's true. Maybe my Laravel bias blinded me. I took that.

1:30:03

Aaron

Maybe my entire JavaScript bias blinded me.

1:30:06

Ian

It does it does also come I think it'll depend on what it actually is. Like, if you could only get this authentication concern when you buy the product, well, then, obviously, that's not like a a Laravel type thing. Laravel ships you all this stuff for free. So, but if it is, no. Like, this is a thing that you get for free separate from the product part, that anybody can just use now.

1:30:25

Aaron

Yeah. I think it's more of like a a secondary or tertiary benefit of buying whatever

1:30:31

Ian

may presume their sales is like. Much more like what you're saying, which that's a whole other thing we haven't talked about. I I went very deep, not just me. I actually hired Christopher Dow to go deep on these authentication

1:30:44

Aaron

startups. As a service. Yeah.

1:30:46

Ian

As a service. Because I'm like, you know what? It's always a pain in the ass to build. I mean, Laravel gives you a lot, but we need, like, SAML. We need active directory.

1:30:53

We need more

1:30:54

Aaron

than less. Okay.

1:30:55

Ian

So there's more than that. So like, it's always a pain in the ass to build these things. It's a security thing. This is like, you know, people are trying to hack me and all this stuff. It's like, well, a company that just does this is sort of interesting.

1:31:08

If it's not an insane amount of money, that you know, whatever. It's like less dev time. It's gonna be more secure potentially and whatever. Let let me see. This is all the hotness.

1:31:16

Right? Everybody's doing this.

1:31:17

Mhmm.

1:31:19

Oh, man. I went to Auth0. I was like, I'm Auth0.

1:31:22

Aaron

Tell me I'm so

1:31:22

Ian

excited. Like, this should be like these are they're owned by the Okta or whatever.

1:31:27

Aaron

Like Yeah. Okta.

1:31:30

Ian

First of all, I like, their business is insane. The whole business is totally insane. Let's just start there. None of these peep none of these services even dealt with multi tenancy until like very recently. Like all of them are like, we just released our multi tenant thing and I'm like, who's even using this except for multi tenant.

1:31:46

Oh my god. Internal applications with just one group of authenticated users.

1:31:49

Like, is that really

1:31:49

who's using? I don't know. So the whole thing is bizarre to be able to. Their pricing

1:31:56

Aaron

Tell me.

1:31:56

Ian

Is completely insane. It was like so so so they have this multi tenant, authentic. Uh-huh. I'm like, okay. I need the SAML.

1:32:06

That's like, basically why I want this is for like the SAM authentication. Okay. Well, how many are you gonna have? I was like, well, just in the customers we have now, we're probably gonna have like 60, 70, 80, a 100, like a good size number of customers who need this. Yeah.

1:32:23

Oh, well, that that's right there. You have to go on our maximum tier. I was like, how can my little company

1:32:28

Aaron

You're already on the maximum tier.

1:32:30

Ian

1,000,000,000 in revenue. We're on the maximum tier. I'm like, wait a minute. So okay. Well, the maximum

1:32:35

Aaron

There goes your couple million, by the way. They're about to take all of that.

1:32:39

Ian

So okay. So they're they're they're, like, that is per user on top of.

1:32:43

Sure. Yeah.

1:32:43

Be like the base price for a 1,000 active users was, like, $40,000 a year. And I was like, are you guys insane? I I was like, nobody's paying this. I refuse to believe it. Like, no.

1:32:56

You know? Blah blah blah blah. And I'm like, listen. That's just nuts. It doesn't make any sense.

1:33:03

Like, who's paying $40,000 a year for, like, a 1000 users? Like, that's the whole thing is insane. So then I looked at some of these other ones, but, like, you know, whatever. There's, like, the clerk one has reasonable pricing, but, like, you know, the whole thing they're in the Vercel circle of like,

1:33:21

Aaron

oh, big time.

1:33:22

Ian

All the logos are this just the other Vercel companies. I'm like, I don't know. Like, this company's gonna go out of business, and then my authentication's gonna go away. And that's the cute

1:33:31

Aaron

They're gonna go users' table.

1:33:32

Ian

See you. Yeah. So that's a bummer. So then I'm like, I forget it. We're just gonna have to just build it ourselves.

1:33:39

Like, we always do, and everybody else does, but it's like, I love the idea of it. I do love the idea of it, but it's I I don't understand who's buying it. I don't I don't know if you have any insights here, but I I don't understand.

1:33:48

Aaron

No. I I don't have any any insights

1:33:52

Ian

success. It seems like it was, like,

1:33:53

Aaron

woah. Yeah.

1:33:54

Ian

Yeah. It's crazy. And then Amazon has a thing too.

1:33:58

Aaron

Than I could have even imagined. Yeah. Don't Amazon does have a solution. Cognito or.

1:34:03

Ian

Yeah, Cognito, and it's much more reasonably priced. The pricing is fine.

1:34:07

Aaron

I'm sure. Yeah. Probably very barebones too.

1:34:09

Ian

Insane. When that does everything you know, it's like every Amazon thing. It does everything. Right. But, like, to get it to do everything, you know, is, like, a big, gigantic project that's way bigger than, like, building it yourself and whatnot.

1:34:22

So yeah. And it had some weird edge cases. We did he Fedalper went very deep on incognito, most of all of them, because it was like, the pricing is fine. But it has these weird limits in different spots that were gonna be a problem where you might have to have multiple accounts to get around some of these limits because there's, like, some actual hard limits in certain spots, and I'm just like, whatever. This is a Not at all.

1:34:46

It's already getting so complicated that, obviously, we're just gonna do it ourselves. Yeah. Yeah. So my guess, that was my little adventure down the path of $5,000. I literally couldn't believe it.

1:35:00

Like, I was like, I cannot believe that that is accurate. I was like, you should double check this. He's like, no. That's the price. Blah blah blah blah.

1:35:06

I'm like.

1:35:07

Aaron

I mean, OpenAI is using

1:35:09

Ian

Crazy.

1:35:10

Aaron

Auth0. Right? So, like, I think

1:35:12

Ian

They did

1:35:12

get a $1,000,000,000. So you know?

1:35:14

Aaron

Yeah. I think a lot of these big companies are using it, but I just yeah. It just continues

1:35:19

Ian

to leave me. So I guess it's right. It's one of those things where, like, if you're a huge company and you have lots of money, well, okay, it's, like, $40,000 base, and then you're gonna pay probably too much per user, but it's still only a few cents per active user a month. So whatever. If your bill is half a $1,000,000 a year or a $1,000,000 a year, $4,000,000 a year, but you don't ever have to think about authentication and you know it's done really well, fine.

1:35:43

Like, you know, so this is a little bit of that kind of case. Like, for OpenAI, maybe it makes sense for UserScape and HelpSpot. Like, it probably doesn't make any sense.

1:35:52

Aaron

Not too much. Yeah.

1:35:53

Ian

Yeah. So whatever. But it's at the same time, like, it's very weird. Like, why even sell? Like, just go the full, like, we don't sell to you.

1:36:01

Like, we're not for you. We don't sell to you. Don't waste our time. I mean, so it's weird.

1:36:06

Aaron

Got is the soft, we don't sell to you.

1:36:08

Ian

I mean, essentially, yes.

1:36:10

You got

1:36:10

Aaron

a price.

1:36:10

Ian

Guys talk

1:36:11

Aaron

for an hour. You know?

1:36:12

Ian

Like, I don't know. It's like, this Well, he's he's filtering

1:36:15

Aaron

number up on his board. That's like, I did a initial discovery call this

1:36:19

Ian

week. Demo.

1:36:20

Aaron

Don't fire me. I'm making my quota. Whatever. Yeah.

1:36:25

Ian

Yeah. It's bizarre. A whole world better than

1:36:29

Aaron

Yeah. So DHH is gonna ship authentication concern. There you go.

1:36:33

Ian

Yeah. I guess we'll see if that's

1:36:35

Aaron

We'll see.

1:36:35

Ian

I'll be curious to see what this one's been

1:36:37

Aaron

product or just a view source benefit of it.

1:36:41

Ian

Yeah. I'll be curious to see what they actually ship, so we'll see. I

1:36:44

Yeah.

1:36:45

Don't really know. I don't know. We got a couple other things here. We're we're already this far. I feel like we should knock a few of these out.

1:36:51

Aaron

We're this far. What do you got? I I picked the last shoe.

1:36:53

Ian

What do

1:36:54

Aaron

you got?

1:36:56

Ian

We we talked about shoes inside the house. Is that that's just old on here. Right? I don't really I don't

1:37:00

Aaron

know if we did talk about shoes inside the house. I think

1:37:03

Ian

we were talking about it on Twitter. Like yeah. Maybe that's it.

1:37:06

Aaron

Shoes inside the house.

1:37:07

Ian

Shoes inside the house is insane. Insane. Like, you can't wear shoes in the house. Your shoes are stepping on your dog poop and all those things. Now you got all kids running around.

1:37:14

This on Twitter.

1:37:15

Aaron

I simply do not step on dog poop. I think that's my strategy.

1:37:18

Ian

Stuff. You don't ever walk in grass?

1:37:19

Is that

1:37:20

what you're telling me? You don't ever walk in grass? Are you microanalyzing the grass in front of you as you walk? You're stepping a dog shit. I guarantee you.

1:37:26

Aaron

No. Let's walk the siren. I don't live in New York City. There's not human fecal matter on in my sidewalk. Okay.

1:37:34

Ian

I hope laracon's in Dallas because I'm gonna be looking with a eagle eye. Let me tell you.

1:37:40

Aaron

I actually really hope it's in Dallas too.

1:37:43

Ian

Yeah. That'll be fun. You'll have to show us all around.

1:37:45

Aaron

Be very helpful if it were in Dallas.

1:37:49

Ian

But I don't know. She was inside the house. I feel like you take your shoes off. I mean, we have a party with people over. We're not like everybody think their shoes off.

1:37:56

We're not fine. We're not those who are all the way to that. But, like, day in, day out, I take my shoes off. I got my slippers right there. Boom.

1:38:01

I'm getting slippers. So you gotta have the slippers. I'm not That's that's maybe that's

1:38:05

Aaron

maybe the problem. Maybe I don't have the right maybe I don't have the right equipment, but I wear shoes.

1:38:09

Ian

I'm at the house all

1:38:10

Aaron

day, every day. I have my shoes on.

1:38:13

Ian

Your feet, baby. Release your feet.

1:38:15

Aaron

I feel so secure when I have a pair of old Nikes on inside the house.

1:38:23

Ian

L. L. Bean slippers, baby. Just spend the money. It's, like, gonna be $75 or whatever.

1:38:27

Aaron

I think I I think I had them at one point, but it just felt you know, it felt I'm not getting dressed up, but it felt a little slovenly to, like, walk around with slippers on all day. It felt a little it felt a little, like, I'd given up a little bit.

1:38:45

Ian

Slippers, man. Just give in. Just save. It's so warm and fuzzy in the winter. It's so good.

1:38:51

Aaron

You wear slippers, like, with shorts around the house?

1:38:54

Ian

You're damn right. I do. So I

1:38:57

Aaron

Man. Yeah.

1:38:57

Ian

Come into my mudroom from the garage. I take my sneakers off. My slippers are right there. Boom. My feet are in the slippers.

1:39:04

My feet do not leave the slippers to bed. I take the slippers off. I go to bed.

1:39:09

Aaron

And that's what I mean.

1:39:11

Ian

Yeah. So it's like I'm wearing shoes in a sense, but they're not covering both.

1:39:14

Aaron

Yeah. But you kept

1:39:15

Ian

the feekes. There are. It's just it's just a nice supper.

1:39:21

Aaron

The problem with you, the dog population in your area, but

1:39:24

Ian

I've and then wait till your kids.

1:39:26

You have 4 kids. Do you realize what a

1:39:26

mess your house is gonna be? All these kids running around with their muddy, filthy shoes. Some take those shoes off. Beautiful.

1:39:35

Aaron

Yeah. Different rules for adults, though. I can do whatever I want because I don't know. The kid the kids might have to take their shoes off.

1:39:42

Ian

That's not gonna work. I'll tell you that right now.

1:39:45

Aaron

I know the kids are there's not gonna be, you know, there's not gonna be 8 pairs of slippers at the back door. I know

1:39:50

Ian

that's Now the kids tend to go without slippers. Although, my middle kid's now into the slippers. So he's got some slippers. The other ones generally don't wear slippers. But

1:39:57

Aaron

this shocks me.

1:39:58

Ian

They got the same feet. They don't need slippers. You know, they're all

1:40:01

Aaron

They don't need slippers.

1:40:02

Ian

Yeah. They don't need that reinforcement. I need the reinforcement. And I need the one since it's

1:40:07

Aaron

happening. This is crazy. I feel like I feel like I'm on the I'm on the I'm in the minority here. I think a lot of people are like, don't wear shoes in the house. I just like wearing shoes.

1:40:19

Ian

I mean, I grew up always wearing shoes in the house. I have to say I always wear shoes in the house, but I don't know. Once I got my own house, I was like, nah. My wife's just, like, very cleanly, and she's, like, super into organization. She doesn't wear shoes in the house, and I was like, oh, I won't wear shoes in the house either.

1:40:34

Aaron

Here here is here's a hot a hot take I have on on shoe related, conversation. A a man's toes should never be seen in the workplace.

1:40:48

Ian

Oh, in the workplace? Alright.

1:40:50

Aaron

And and unless unless a man is about to fall into a body of water, his toes should never be seen, especially not in the workplace.

1:41:01

Ian

I'm with you on that. I'm with you on that. Okay. Male toes are disgusting. That's why.

1:41:05

Disgusting. Are usually very nice. Male toes

1:41:08

Aaron

are disgusting. Yes. A man's toes

1:41:12

Ian

You've not discussed. Very few man toes are are worth it.

1:41:15

Aaron

Wearing flip flops into an office, no respect. No respect. I don't wanna see your toes.

1:41:23

Ian

This is a

1:41:24

Aaron

this is a Like This is a 4th July pool party.

1:41:27

Ian

Yeah. Men should be covered up in general. Even if you're buff, I almost feel like you're men like, the male body is just not aesthetically pleasing. Whereas, like, the female body is aesthetically pleasing. Just like I'm not talking about sexuality here even.

1:41:41

I'm just saying, like, the shapes and the curves.

1:41:43

Aaron

Saying that we're grotesque?

1:41:45

Ian

I'm saying men are grotesque. Like, just there's no the shape makes no sense. Like, it's we're just utilitarian. Like, let's just face it. Right?

1:41:54

We're just there to to deliver.

1:41:58

Aaron

Just there to lift heavy things.

1:42:00

Ian

Yeah. But, like, but the female body is, like, all sculpted and nice and nice. That's sad. So

1:42:06

Aaron

Yeah. We're gonna log off, man.

1:42:10

Ian

So it's It's

1:42:11

Aaron

too late. Here, man.

1:42:12

Ian

It's been

1:42:13

Aaron

Yeah. It's too late.

1:42:15

Ian

Alright. Well, guess what's been on the list for a while? We're just gonna

1:42:18

Aaron

get back

1:42:18

Ian

to another one.

1:42:18

Aaron

Tell me. Tell me.

1:42:19

Ian

Workout routine. What's your workout routine?

1:42:21

Aaron

Oh, yeah.

1:42:21

Ian

Related related to your disgusting body. Do you have a workout?

1:42:25

Aaron

No. My grotesque body has no workout routine.

1:42:28

Ian

Nothing? You're not you don't do anything?

1:42:29

Aaron

I got nothing. I got nothing right now. Yeah. There are just yeah. It's bad.

1:42:35

It's not great. I I need something, but I don't have I'm not doing

1:42:39

Ian

anything gym? I never ever been a gym guy? Never a gym guy?

1:42:42

Aaron

Never been a gym rat. I think based on family, like, physical structure, I could get really big, like, really buff because I have a, you know, a few brothers, and my dad have all at one point been, like, big gym guys.

1:42:58

Ian

Solid. Okay.

1:42:59

Aaron

So my time is coming at some point, but, you know, the the the stars haven't lined up yet. I actually my brother is a a trainer, and I he lives in Galveston. And I told him, if you ever have, like, a month off like, I don't know what you do. If you ever have a month off, come up to Dallas, and we'll do 2 days, and I'll get really buff, and it'll make great content. It's like Yeah.

1:43:19

That sounds great.

1:43:20

Ian

This is the time. Your your aunt's about

1:43:22

Aaron

I know. That work. I I pitched it, like, 6 weeks ago, and he was like, yeah. That sounds fun. And Dude, if you come

1:43:29

Ian

out of this having 2 a second set of twins, more well rested and buff. And

1:43:34

Aaron

buff like Arnold. Yeah. I know.

1:43:36

Ian

That'll be insane.

1:43:37

Aaron

I know. I wanna do it just for the story of, like, oh, wow. That guy, he got strong on paternity leave. I'd be like, oh, that's so great. But I don't know.

1:43:46

Sounds like a lot

1:43:47

Ian

of work.

1:43:47

Aaron

Did you work out?

1:43:48

Ian

She's always she's she's always tweeting about how buff she is. She lifted heavy things and, like, she do all kind of stuff.

1:43:55

Aaron

Me. Yeah. Yeah. She That's how my wife is.

1:43:58

Ian

My wife There's a lot of people working out.

1:44:00

Aaron

Scale that lifts. I don't get it.

1:44:01

Ian

Yeah. I'm not really lifting. We had I used to go to the gym on and off. I've been back and forth. I've never been, like, buff buff, but I mean, I don't know.

1:44:09

Now we have, like, a gym in our basement because we realized we could never actually get to the gym. Yep. So we have like the Peloton tread and the Peloton bike and weights and whatever. We don't have like the rack and everything, but, and my wife used it religiously every day, 6 days a week and Sundays off. That sort of thing.

1:44:26

I I will go That is religious. Sundays off. That's very religious. Lately, I've been using it fairly often again, but I my problem is, like, I'll use it, and I'll have results, and it's all good. And then, like, I'll go on a trip or I'll get sick or what if something happens that interrupts it, and then I'm off it for, like, 3 months.

1:44:44

Aaron

You're either on or off the wagon, whichever one is bad.

1:44:46

Ian

Right. Whichever one I am, it's like it goes 3 to 6 months. I just don't do it. Like, I just fall out of the habit instantly, and that's it. Because I don't really love it to begin with.

1:44:53

So it's, like, easy to, like once I break the every morning going down there, it just stops. So I've been good lately about being back on it, but we'll see. Hopefully, it sticks. I'm trying to get I'm trying to keep it in shape here, but I don't care about being, like, buff. I'm trying to just keep the heart rate up, you know, sitting all day.

1:45:10

Yeah. It's not ideal.

1:45:11

Aaron

Yeah. I think I think I need some I need some exercise for, like, you know, longevity, but I kinda wanna be buff at some point in my life.

1:45:19

Ian

I mean,

1:45:19

I I wouldn't mind me a buff with the amount of time. I don't see it happening unless I, like, sold the business or something. I'm like, where would I get the crown to be buff?

1:45:27

Aaron

That's that's how I feel, and I can't sell to kids. Like, I'm I've had those

1:45:30

Ian

for a long time.

1:45:31

Aaron

Time to

1:45:31

Ian

be buff for a while. Right? Yeah. Buff. Like, of all

1:45:35

Aaron

the things that have gone by the wayside, I feel like being buff is probably one of them.

1:45:40

Ian

Well, because one of the things you realize when you work out consistently for a long time, it's, like, the, the level from like you you're in good shape, but like, you don't necessarily look aesthetically amazing, but like you're, you know, you can lift a good amount of weight. The difference between that and being buff is like a giant freaking chasm. Like, cause like you just have to do so much more to get the buff than just to like, sort of lift a reasonable amount of weight. Like you'll be lifted a reasonable weight and your muscle looks exactly the same. And you're like, what the hell?

1:46:10

Why don't I look like all beef test lump. But

1:46:13

yeah, I'm

1:46:13

still a grotesque lump. What the hell? No, because you have to lift an insane amount to get

1:46:19

to actually

1:46:20

looking beefy. And you have to lose a bunch of fat. You feel, like, really super watching you eat. Like, there's that whole aspect to it too. So there's a lot to it.

1:46:29

Aaron

Yeah. Well, I'll just keep on this path then. Maybe

1:46:32

Ian

there should go.

1:46:33

Aaron

We'll we'll reassess. Yeah. Yeah. Exactly. We're getting all this we're getting all this meal train food.

1:46:41

Is meal train a thing in the north? Oh. It's like Oh, why

1:46:43

Ian

is this?

1:46:44

Aaron

Baby, a friend sets up a meal train and they all sign up for it.

1:46:47

Ian

I don't think we call it that. But yeah.

1:46:49

Aaron

So everybody's like, you know, everybody's bringing us these meals.

1:46:53

Ian

Oh, that's cool.

1:46:53

Aaron

Oh, we also, you know, we baked a bunch of cookies and, oh, here's some, you know, here's some energy balls. It's just like, you know, peanut butter and chocolate chips. And it's like, I'll just have a couple of those. Like, what what am I doing? I'm not doing any work, but I'm just sitting around eating energy balls all day.

1:47:10

Ian

That's the opposite of getting buff on

1:47:12

the 20.

1:47:13

Aaron

I know. I can't come back I can't come back, big.

1:47:17

Ian

Up £20? Yeah.

1:47:19

Aaron

It's not great.

1:47:21

Ian

Yeah. Oh, man. Alright. Let's wrap it. It's almost midnight.

1:47:25

I think we've we've given the people

1:47:27

Aaron

Yeah. We

1:47:28

Ian

Well

1:47:29

Aaron

We we skirted the line there. We should probably and and while we're still ahead.

1:47:34

Ian

Yeah. For sure. Alright. Well, thank you all for listening. Mostly technical.com.

1:47:40

Mostly technical pod. Nobody emailed us. I checked. Nobody emailed us. Mostly technical podcast atgmail.com.

1:47:46

So any feedback on the 15 topics we talked about this week? Send that over. Otherwise, good to be back on the air. We will try to get back at some point next week, I assume. Assuming everything's chill with the babies, and then, we'll just be playing it by ear a little bit here.

1:48:03

But, yeah, we'll should be semi regular at least, going forward. So and and hopefully, a holiday stream on the horizon. Yes. We can get that organized.

1:48:12

Aaron

So Yes. If y'all want to hear that, let us know because that would be fun.

1:48:15

Ian

Yeah. That'll let us know you got to the end of this 2 hour podcast too,

1:48:18

Aaron

which will be Yeah.

1:48:19

Ian

Exactly. Awesome. Alright. Have a good one. Alright.

1:48:24

See you.

Details
Show
Mostly Technical
Date
Nov 30, 2023
Role
Host
All podcasts
Podcasts
Newsletter

Every week: the best things I've found and what I've been thinking about.