Winter blues, PHPTek, tooling gone to far, Prism
TJ Miller (00:00)
Hey, welcome back to this slightly caffeinated podcast. I'm TJ Miller. Hey Chris, so what's new in your world,
Chris Gmyr (00:04)
and I'm Chris Gmyr
Hey, so this has been a little bit of a crazy week this week. We had MLK day off on Monday. So a kid was off of school then. And then he had a teacher's workshop on Tuesday. So it was off then. And it's been super cold. And we actually got a couple inches of snow Tuesday night into Wednesday. So we were off of school Wednesday and Thursday for between snow and cold and
ice and all that because even though we don't get like that much snow it melts during the day and then it drops overnight and everything freezes and it's all black ice and craziness everywhere so they typically have to cancel school for all that and walkers and such and it was pretty chilly again this morning so um yeah two hour delay this morning uh being friday i was off yesterday because my life was also sick so i tried to step in and
TJ Miller (00:41)
Yeah.
Yeah.
Chris Gmyr (01:05)
Occupy the kids and let her rest a little bit and yeah, so just just a lot of a lot of craziness going on here, but Hopefully we're over the snow and cold for at least a little while It's looking made kind of chilly, but hopefully all the school schedules will be back to normal You know going into next week and we'll see you know how it goes Besides that
I know last week I mentioned we were working on the Pinewood Derby car. My son changed his mind. Instead of going for the slowest car, he now wants to somehow get third place in his den. So I don't know how he's going to calculate the speed of getting third place, but he wants to go faster than the slowest one. So over the weekend and the beginning part of this week when we were still working on it, it was like, OK, well, how do we go from
This is like big hunk of wood that like, I don't know, I only have like minimal tools and you know, stuff like that here for woodworking. We usually go to a workshop that usually one of the other parents puts on because other people have like more equipment and stuff like that. So we didn't do that this year because it's like you said you wanted to go and do the slowest and only do like a couple cuts, minimal, you know, sanding, painting, whatever. And now you're switching it up.
TJ Miller (02:15)
Yeah.
Chris Gmyr (02:25)
last minute. So I was like, OK, I got to cut out a bunch of these chunks and sand it down. And I wanted to put more weights in it. And finally got all of that. So I don't know. We'll see. I got to put the wheels on later today for the race tomorrow. But yeah, we'll see how it does. Yeah, yeah.
TJ Miller (02:45)
These are some fascinating goals. love it. I want to get third
place.
Chris Gmyr (02:49)
Yeah, third
place is like, well, you don't really know how fast or slow the other kids cars are going. So I'm not sure how you're trying to calculate being in third place, but we'll do our best.
TJ Miller (02:59)
Yeah,
we'll do our best to get third.
Chris Gmyr (03:01)
Yep. So yeah, just feel like, you know, topsy turvy week. But yeah, that's how goes sometimes.
TJ Miller (03:09)
Yeah, yeah. Man, same boat over here. Last week, my son was sick on Friday. So we went into the weekend. I'm OK, day of Monday. Then Tuesday, Wednesday, they had no school. They canceled it like Monday night. They're like, it's going to be too cold. And so they canceled school for Tuesday, Wednesday. And then he ended up going back yesterday and just fine today. But I swear, I remember as a kid.
still going to school in these freezing temperatures and no snow day, absolute last resort. And now it's like, it's too cold, no snow. Come on, guys. We didn't get that much snow with it either. It was just very bitter cold. So that's such a bummer for me. If it's going to be cold, let's have snow. Let's do the whole damn thing. I want winter. But luckily, he's feeling better. He went back and...
Chris Gmyr (03:36)
Mm-hmm.
Yep.
TJ Miller (04:00)
Also kind of crazy like scheduling wise, I got roped into, I know I talked about this a little bit, I got roped into coaching my son's Science Olympiad team. So we were supposed to start practice last week, but there was like some confusion around if he was going to have a teammate or not. So he was told he wasn't going to have a teammate and that it was just going to be him like practicing and competing. For me as a coach,
Huge relief. I don't have to coordinate with other students. I just got to teach Alice coding, which we're already kind of doing. So I'm like, this should be cakewalk. We're good. And then, and then I found out, no, he does. There's an alternate on the team. So he doesn't have a teammate, but he has somebody to practice with. and I'm like, okay. And like they were being a little bit of a pain to schedule with. And I'm like, man, this kind of sucks. And, didn't end up getting anything scheduled last week.
And then like was kind of bugging out about no school and everything this week. I'm like, man, are we even going to get another practice? And I don't want to start like way behind. But then in the interim, I find out that he is going to have a teammate now. So I went from having just Ellis to now I've got a full team of three. Uh, so like two competing in like, and an alternate. And so now I'm kind of just like sort of stressing out that I got to teach. I definitely now have to teach like three kids coding.
Chris Gmyr (05:10)
Mm-hmm.
TJ Miller (05:18)
It's Python, which is not my strongest language, but I was hoping to be able to teach them JavaScript or something. nope, it's Python, which is fine. I'll be able to muddle my way through it. it's like, let's see, on their list of things, they've got to know variables and types, operators, order of operations, control flow, logic operators.
output with print statements, functions, string manipulation, and arrays. I'm like, oh, she's like, yeah. And the competition is like a multiple choice question quiz. And then there's like a practical. don't know what the practical is supposed to be. It's an interactive challenges or puzzles varying in difficulty. So don't even know what that's going to look like.
Chris Gmyr (05:48)
Thanks a lot.
TJ Miller (06:09)
But I honestly, just going to, I think what I'm going to do is show up, hop on code, like codecademy, and we'll just work through the Python course together. And, you know, I think that's probably like the easiest way to go. And then the nice thing about that too, is it's easy for me to like send them home and be like, if you want extra practice, just go do the codecademy course. Like it's easy to navigate, it's easy to sign up with. And so they'll be able to work on that outside of it.
yeah, it should be a trip. Like I've got, a coaching workshop on it coming up. think.
Actually, I think it was...
I don't know. I was looking for more information. thinking it was maybe two days ago now that I'm looking at the date. So I don't know. We'll see how it goes, but I'm a little stressed out about it now.
Chris Gmyr (06:56)
Yeah, totally. Especially with the upset with the school schedule and then trying to coordinate the schedules with multiple families now. Are you able to do anything virtually? Like get on a shared Zoom screen or walk through it to at least do a teaching and then have the kids go on their way or anything like that?
TJ Miller (07:19)
thought about it. I ended up just coordinating with like the head coach. I was just like, you know what, like I'm dealing with like wrangling schedules and stuff. I'm like, can you just line me up a classroom at the school? So like this week, because of how everything got weird, like this week we're meeting Friday. So tonight, and then like at the school and then like moving forward, it'll be like every Thursday for like an hour. So it's nothing, nothing super crazy. And,
I'm definitely kind of banking on Ellis being ace in the hole because he's already learned like half of that stuff with JavaScript. So I'm hoping you'll be able to help teach a little bit and then also just kind of like going into the competitions being a little bit of an ace in the hole. So we'll see.
Chris Gmyr (08:04)
Yeah.
TJ Miller (08:05)
much less stressed about, I guess, guess part of one of the things I wanted to touch on, I'll just get into now. I'm speaking at Tech, PHP Tech again this year. Yeah, thank you. I'm very excited about it. I'm doing a three hour workshop on building with Prism. And then I've got a 50 minute talk on a big database migration. We're doing it Geocodeo right now. So I'm way less nervous about doing
Chris Gmyr (08:14)
Sweet. Congratulations. That's awesome.
TJ Miller (08:31)
both of those that I am about coaching these three kids for a Science Olympiad competition. So, I don't know what there's to be said about that, but that's amusing to me at least that, yeah, this competition thing's got me way more stressed out than like a talk and a workshop at a conference.
Chris Gmyr (08:51)
Yeah, that's pretty funny. I mean, they're very much in your comfort zone and what you're actively working on, you know, day to day, week to week to compared to, you know, a language that you don't typically work in every day or, you know, a different age range of people that you're interacting with, you know, so there's a lot more variables and differences with the kid training compared to training adults.
TJ Miller (09:20)
I just,
even just like thinking about trying to teach three fifth and sixth graders like in an hour, a bunch of this stuff. Like, I don't know. I'm,
My confidence is low in being able to wrangle them and hold their attention for that long, but I don't know. We'll see how it goes. sure I've jumped into way more stressful things both feet first and I'm sure I'll figure it out.
Chris Gmyr (09:37)
Yeah.
Yeah, totally. You'll do great. Have you done any sort of planning yet for tech or just the basic abstracts or anything that you have done right now?
TJ Miller (09:55)
No, nothing outside of like the abstracts I submitted. And I probably won't even crack into it for a little bit because, you know, the workshop on Prism, Prism is still kind of evolving. I'm still building stuff out. it'll be kind of what I go over in the workshop will depend a little bit on where Prism's at and what levels of support I have for different things. So I'm kind of.
holding out on that one until we get a little bit closer to the conference and Prism progresses a little bit more. But I've got a rough idea. I mean, it should be cool. Like I think for that, we're going to kind of go through like two or three workflows. I haven't decided yet. We could go through like a couple different workflows that you could do with AI and with Prism or build like a Laravel application, like sort of like what Keith did.
at Laricon, like let's build an application in a couple hours and we'll like sprinkle in a couple AI features into that application. Just that way you've kind of got like some context rather than let's just build these three things without context of like how you would integrate it into an application or something. I don't know. we'll kind of see how that, that evolves. I'm sure I'll get some help from Claude putting that one together. And then the database migration talk, we're in the midst of it. I'm actually.
Chris Gmyr (10:58)
Yep, totally.
TJ Miller (11:10)
rolling that out to, basically what we're doing is we, we track all of our requests. and as of like a couple of months ago, we were doing in a, inside of a 30 day window, we were doing 17 billion requests. So like, we're tracking a lot of data and like, that's a lot of work on like a database to intake like that much, that much data. So, we're migrating from.
Chris Gmyr (11:24)
Yeah, that's a ton.
TJ Miller (11:32)
a MariaDB database over to ClickHouse. And so the project was kind of started off, it was just like, we need to do something about this database situation and did some research, came up with ClickHouse. And so the talk is kind of like, going to start like problem statement. Here's like kind of the world we have going on, why we're like needing to do something about it. And then
kind of dive into like how I arrived at ClickHouse and then dive into like the ClickHouse implementation and everything and like what ClickHouse is. And so I've, as part of the deployment strategy, we're going to roll it out as like, like dual entry for a while. So like all the production stuff is still relying on the original database, but we're going to dual entry into ClickHouse also. So we can kind of
work on fine tuning all of the configurations for ClickHouse in a safer production way. And then we can start progressively enhancing the application and slowly moving over to making all the reads come from ClickHouse and then kind of progressively enhance from there. So it's going to be like, it's hard for me to start that talk right now because we're in the middle of it. But by the time we get
closer to the conference, know, like a month or two from now, that'll be all like rip rolling in production and a little bit more to talk about and be able to talk about how things ended up after everything.
Chris Gmyr (12:53)
Yeah. Nice.
TJ Miller (12:55)
Looking forward to it, but
yeah, I don't think I'll be able to put anything together until we get a little closer. I won't be doing what I did last year though, and deciding to rewrite my entire deck the night before my talk. Like we're not going to do that again. We're going to roll with what we got. Yeah, last year I saw Jake's at his talk and decided that mine were trash. So that night I just deleted my deck and went for it. It worked out great, but...
Chris Gmyr (13:09)
Yeah, don't do that. Yep, totally.
TJ Miller (13:22)
Definitely don't need to be trying to do that with like two events.
Chris Gmyr (13:26)
Yeah, a little bit more stress at that point. Yeah, tech, it's PHP, tech, T-E-K dot I-O. Looks like it's May 20th to 22nd in Chicago. So that'd be cool.
TJ Miller (13:29)
Yeah.
Yep. In Chicago. Yeah.
They've been at the same spot for a long time, I guess. Went last year, I had an absolute riot. was a really good time. Enjoyed giving my talk, really enjoyed the talks that I saw. You know, and looking forward to, really looking forward to come back this year and do a little bit more. And I think the work, I think the workshop is just going to be a blast. I'm really looking forward to do that. Like I love...
I love building with Prism. I love talking about it. I love showing people like all the crazy things you can do with it. So I think this will be great. And think there's probably going to be a lot of interest for it because AI is still a pretty hot topic. Yeah.
Chris Gmyr (14:17)
Is the, I see like on the registration page that you can get like blind early birds right now, you can do full conference, single days of the conference or like a virtual stream, like all access. Are just the talks gonna be live streamed or the workshops too or unknown?
TJ Miller (14:29)
Yeah.
I, I can't remember. I think everything's live streamed to be honest. and they've got like a whole, like that, that was something cool to see too is like all the production behind like live streaming every talk. like you can live stream the entire conference with that live streaming ticket, which is really cool. And I think it's really like really nice artifacts to be able to have like afterwards, especially being like a multi-track conference.
You being able to go back after the conference and like get to watch some of the talks you missed out on because like parallel tracks and everything. I think it's just like a really cool thing for them to be doing.
Chris Gmyr (15:12)
Yeah, yeah, totally. I'm surprised that the live streaming is like 550 for the two days, I think. But yeah, being able to take home and re-watch those videos, like you said, will be like a huge asset in the future.
TJ Miller (15:26)
Yeah, because if you think about
it, they've got like four stages. like at any given time, there's like three or four talks going on. like, it may seem like a lot for the virtual ticket, but you're every hour that goes on, you're like, you're getting three, four talks, you know, so it's a very like dense conference, which is great.
Chris Gmyr (15:32)
well.
Gotcha.
Totally.
Yeah, I've never been to tech or, I don't know, really heard too much about it besides people talking there and I don't know. But I've never really looked into it that much because I've never gone.
TJ Miller (15:56)
Yeah.
Yeah, it's fun. It's for me, one of the interesting things about it is like I'm being so like involved in the Laravel community and like going to Lara cons for so long. That was like really kind of like my taste of the scene and getting to go to tech. Like it's a much broader PHP audience and community. So you're getting, you know, people coming from like WordPress and symphony. It's just like, it's a lot more.
you lot more like broad and like a lot different people than I think you get in like a Lericon draw. So it's, it's a really cool experience to kind of just see like the rest of the PHP community outside of just Larva, which is like I said, it's, it's really nice. Something cool.
Chris Gmyr (16:28)
Yeah, totally.
Yeah, yeah, that seems awesome. I'll have think about the streaming pass, see if I can make that happen. Because I think that'd be pretty sweet to check it out.
TJ Miller (16:47)
Yeah, you can watch me stumble around talking about databases.
Chris Gmyr (16:49)
I love that you're not going to stumble though. You're going to be great.
TJ Miller (16:51)
Nah, it'll be fine. It'll be fine.
I, I really, I don't know. I just have like such a passion and enjoyment out of teaching that like, I get, I get really excited doing this kind of stuff. So I get really nervous, and really stressed out right before it, but then like during and afterwards really enjoy it.
Chris Gmyr (17:10)
Yeah. Well, you've also been doing a bunch of streaming again, too. So how does that compare to doing, I guess, the workshop or the talk? Because streaming seems like you just jump on casually, get some things done, answer some questions. Do you still get stressed about that? Or I don't know, what's the difference between all three tracks?
TJ Miller (17:34)
No, streaming doesn't really get to me as much anymore. I get a little anxious, like going into a stream, not knowing exactly what I'm going to be doing or like jumping into like a complex problem that I really don't have an idea of how to solve. But I think, especially in like a casual streaming environment, there's something to be said about, you know, everyone getting to like share in that experience. Cause I think a lot of times with like super polished stuff, seems like unobtainable and that like
wow, these people are just nailing stuff 100 % of the time. And I think there's just a lot to be said about jumping into a stream vulnerable like that of, I really don't know what we're going to get into, or I don't know how to solve this problem, so come stumble through it with me. And I think that's just like, it makes programming and what we do seem way more achievable.
Chris Gmyr (18:14)
Yeah.
TJ Miller (18:22)
than coming in super polished. So I really like that aspect of it. And that just lowers the anxiety bar for me of doing it, knowing that it's just something a little bit more casual. And there's affordances for stumbling around. Going into the talk and the workshop, my preference is definitely be as polished as possible for that stuff. So there's like.
extra stress, at least for me, that I put on myself of just like, want this to be like a really polished experience. And also kind of having like, I've got like with, with a stream, I'm just kind of like wandering around like through my editor, through browsers, you know, not that big of a deal, but you know, going into a talk or
going into this workshop. Like, I've got a deck that I need to stick to. There's like things that I definitely need and want to make sure that I like touch on and don't want to like miss out on. Where's a stream if I like miss out on something? Either I can just like circle back to it and it's not that big of a deal or it's like whatever, it's just a stream. Like it's not, it's not that big of a deal. So definitely some differences like, and for me too, I just, have like really nasty stage fright. So.
Me being at home alone in my office and live streaming is like, it doesn't really hit those nerves, but getting up on stage in front of a bunch of people, definitely just like, it puts me on edge. Nasty stage fright. Always had it. Doesn't matter how many talks I've done. Like when I spoke at LarriCon, I swear I blacked out. Like I barely, I remember like maybe one or two moments of actually being on stage. Like all of it was just such a blur.
Chris Gmyr (19:33)
Mm-hmm.
TJ Miller (19:51)
So there's like that added aspect to it all too.
Chris Gmyr (19:54)
Yeah. Well, least that's, streaming is at least some good practice to get up in front of some people and working through either the workshop or speaking. cause I think just speaking in public, whichever route is beneficial, you know, anyway. So even like doing this podcast streaming, doing some like meetup talks, things like that. It's all, it's all beneficial and working in the same direction.
TJ Miller (20:18)
Definitely. think between doing the podcast and doing the streaming, there's definitely an added level of confidence going into the talks this year that I don't think I had last year. So it'll be interesting to see days and moments before what kind of difference there is. Because I definitely feel like there's
doing the streams and doing the podcast isn't like, it's not nothing. Like I definitely think there's like contributions that it makes to like being able to give the talks and do the workshop. you know, even just like practice speaking and not stumbling over yourself, you know, is, helpful. Still managed to do it, but it's good practice. So I definitely wanted to make sure we touched on the topic, one of the topics you brought up.
Chris Gmyr (20:52)
Yeah, it happens. We're all human. Yep, totally.
TJ Miller (21:01)
cause I think I've definitely fallen into this trap many of times. yeah, why don't you, why don't you dive in? I'll let you run with it.
Chris Gmyr (21:07)
Yeah.
Yeah. So something that I've been working through at work is trying to codify and put tooling on top of anything that I'm trying to do. So the basic example is we have products that we're pushing to an external service API. This works into the GraphQL DTO conversations that we've had in the past.
It's not completely related, but it's kind of building on that. And pushing products to this external service. And there's a lot of additional data that we want to add on to the products. And the external service uses different sorts of metadata, meta objects, meta fields for doing that. There's a bunch of different options. There's a bunch of different ways to go. You would use one over the other for different sort of use cases.
And for each item of those, you can have different input types. So you can have a single line text input. You can have an integer. You could have a Boolean. And there's 15 different types that you could have for these things. There's also different validations. You can mark a field as required or any sort of things like that. There's a boatload of options for all these different fields and objects and sub-objects and things like that.
So what I was trying to do is in Laravel have a config file of just the generic information that we wanted to push because we wanted to have these things match across all of our instances. So we have like preview instances for PRs and work in progress. We have a staging instance and a production instance. So if we change like a config value,
we would want to push that to all these different instances so everyone is looking at the same thing or the same structure. So I was working on this a little bit over the last couple of weeks. And just every single step that I got, it's like, well, this other object needs to be created or rules need to be handled or different subsets of.
errors coming back or like validation errors or just like syntax errors or whatever coming back from the API. And it's like every step that I took, like took that much longer or had to just take a step back and try and fix or trying to work through and simplify the process of like doing this stuff. And not that I have like a ton of time to do coding day to day because I have a bunch of other stuff that I'm doing as well.
But I've been tinkering with this for, I don't know, two weeks or something now. And it's like, I have other things to work on. Is this the most important thing that I could be doing? doing that compared to just jumping into the UI of this service and just using their UI elements and just clicking through the page and setting up all these meta objects, fields, validations, things like that. I'm like,
TJ Miller (23:37)
Yeah.
Chris Gmyr (23:54)
Let me take a break on the coding aspect of it and trying to toolify it. And let me just jump into the UI and see what happens, how everything works, and how fast I can set this up. I set up all the instances across the board with the same information in 20 minutes.
TJ Miller (24:12)
Yeah.
Chris Gmyr (24:13)
And it's like, yeah, it might be a little painful if we need to adjust something or add a new field or object later or something like that. But what is that going to take? 5, 10 minutes, especially. So I'm going to write some documentation on it compared to spending hours and hours on toolifying it, interacting with this API, setting up.
all this code infrastructure and error handling and validation handling and all that in addition to only fleshing out certain parts of those APIs and the fields that we needed compared to what's available in the UI. It's like, this just seems silly. Just use the UI, get through it, write a little bit of documentation so other people can use it, and be aware that you need to make these changes in two or three different spots.
and just be done with it. Move on with your life. Go to something more important. Because there's lots of other important things that need to be done. And it was just like, I don't know, I was forcing myself down this path. And it seemed to make sense as I was going through it or kind of like some cost fallacy. Like I'm so far into it and like most things are working, but a lot of other things aren't. And how far do I push into this or?
TJ Miller (25:28)
Mm-hmm.
Chris Gmyr (25:31)
Do I just throw my hands up and say, this is just not working out right now, and that's OK. And we can go another route to it. So I wanted to first bring up that situation and my thought process of doing it, even though it feels a little icky not to codify things, because I know we're very big into tooling and codifying things and making it easier the next time. But at what cost?
TJ Miller (25:48)
Yeah.
Chris Gmyr (25:56)
So I know you're a big tooling guy who made a bunch of tooling for different things, a lot of things that you're working on in Prism 2. So have you ever gotten to that point with anything that you've worked on or anything currently worked on or what are your general thoughts on that?
TJ Miller (26:12)
Yeah, not from like a tooling perspective, but I just had to, you know, do a similar thing with a big refactor that like we've talked about on here. I got, you know, decently far into it, but realized that like I'm spinning my wheels like for the last like three, four weeks on the same thing. Haven't gotten anywhere like trying to wrestle the sunk cost fallacy of like, well, I've made it this far. Like I guess I might as well finish it.
and ended up just bailing on it and kind of circling back, like pulling a few things over. So like, while not tooling related, like definitely one of those like, how long is too long being spent on this? And I think there's like that adage that goes around too, with, that's like very common across like a lot of people in like programming of, you know, like why spend two hours doing something when I can spend three days automating it, you know? Like it's...
Chris Gmyr (27:04)
Yep, totally.
TJ Miller (27:07)
It's like not an uncommon problem, I think, for us to have. And I think the only thing that like screams out to me about like your situation is like not necessarily like time savings by automating it, but there's like introduces like standardization, right? Like I only have to do this once in one place. And I'm like guaranteed that it's like set up in all three environments, you know, rather than like now I got to make sure like go through and make sure that like, yeah, I've made this change in production, but I also did it in
staging and whatever preview environments and kind of things.
But I think it's a really smart move to recognize that you're heading down a path that's just going to be more and more work for five minutes of just going in and doing something manually.
God, that's like, it's a tough spot to be. I've definitely been there. When I was at Curology also, just trying to tool a bunch of stuff to make... I worked a ton on development environments and it was tough for me to make judgment calls on what should I tool out and automate, what should I not tool out and automate? Because I just wanted to make life as simple as possible for people to work and interact with their development environment.
Chris Gmyr (27:54)
Yeah
TJ Miller (28:16)
There was a lot of tooling that I probably could have gotten away with outdoing, but was certainly nice to have, and made life a lot easier and just a lot more straightforward for people of like, I've got to remember four commands instead of like, I got to do a dozen things.
Chris Gmyr (28:34)
Yeah, yeah. Well, that's
a good point, too, because what you're talking about doing developer tools for any sort of group, that's going to make less keystrokes for them, less things to worry about and remember overhead, things like that that people are going to use on a daily basis. This, what I was working on, we don't even know if these are going to be set in stone yet or how often they're really going to need changing.
So if we only change this once a year or putting something new in once a year or every couple of years, does it really make sense to jullify it? I don't know. Probably not. Compared to using something multiple times on a daily basis, that, yes, 100%. Push through and get something working. But I don't know.
TJ Miller (29:08)
Yeah.
No, I think that's a really excellent point of how much, and that's something I definitely wanted to touch on and lost track of was how often are these realistically going to need to be changed? You know, up front, there's going be a lot of churn while you're discovering things and doing the initial development. But then once the dust has settled and these things are built, if you're only touching it occasionally, don't spend the two weeks tooling it. Just go click through the UI and...
call it a day. Yeah. So I think that that's a big component to it too, is how often are you interfacing with it? How often do you have to do the thing? And that weighs, I think, heavily into how much effort you should put into like, toolification of it.
Chris Gmyr (29:57)
Yeah, totally. So yeah, I feel good about the decision and the path forward. And I don't know, it was just funny. was sitting there thinking to myself after that was like 20 minutes of just clicking through and getting it done. I'm like, wow. I have done that a week and a half ago and just called it that much sooner. Because now I can just work and focus on other things that need to get done that have cropped up since then and are now more important than trying to toolify this thing. So yeah.
Totally glad that I'm done and made that decision.
TJ Miller (30:28)
Yeah, but like you can't don't let yourself feel bad about like spending the time either. Like there's there's a lot of times I think getting into it, like you don't you don't really know how much you don't know until you get into it a little bit. And then it's like, all right, I've gotten this far. I can see the light at the end of the tunnel and like, gosh, that's kind of far away. But like you wouldn't have known how far like how far you had to travel until you got into it at least a little bit.
Chris Gmyr (30:32)
No.
TJ Miller (30:55)
And so I try to have a lot of grace for myself over that of just like, didn't necessarily, like you maybe didn't know the full scope of things until you got like a third of the way in. And now you kind of have a much deeper understanding of like the problem, the solution, the options. And then it's like, all right, let's maybe not go down this path. Like I think there's something easier to do and a little bit of manual work is not the end of the world.
Chris Gmyr (31:22)
Yeah, totally. yeah, tons of benefits from doing the work. Much more knowledgeable of the service, the API layer, the inner workings of some of these models behind the scenes. So maybe it'll go faster the next time, if and when we decide to toolify it or something else in the future. So definitely a lot of benefits from that. yeah, not a lost cause, just the interesting.
decision point and different path to take.
TJ Miller (31:47)
Yeah. Yeah. Sick, man. I think that was a good call. I like it. before we wrap up, I can, I'll jump into like a little bit of a quick Prism update. Cause I feel like I've been on an absolute tear. after, after, man, after we discussed it, it's so funny. Like looking at just scrolling through the releases on GitHub right now, I have like three weeks ago and then like last week. like last week they went from like.
Chris Gmyr (31:59)
and cranking things out.
TJ Miller (32:13)
three weeks previous, like version 0.23. And then starting like last week, we're now up to like 0.30. And I'm like actually sitting on 0.31 right now. So like we've been just tearing through things. You know, I really appreciate all the conversations we had around the refactor, because like that kind of led me up to the decision, I think in our like last episode of just like...
Abandon ship on the refactor pull over the things that I thought were useful drop tool like tooling support from structured outputs You know at least for now just to like simplify things so I can get out of this like refactored mess And I did it I did exactly that I like a drop tool support and pulled over some like I think really valuable refactorings from things and Boy had that just like that
that allowed me to move on things that I've been sitting on. So we launched official JSON mode support for Olamma. We had some doc updates, did some handling around OpenAI's O1 model for structured outputs. In that big refactor, I broke something, so I fixed it. We added DeepSeq as an official provider. And DeepSeq's got some
Chris Gmyr (33:06)
That's awesome.
TJ Miller (33:26)
Pretty incredible new stuff I think earlier.
Earlier this week, they launched their R1 model. And that's something you can even run through Olamma and that's their like reasoning model. So that's very comparable to OpenAI's like O1 series. So like it actually has a like, you send it a request, it's got a thinking step. So it's been trained and like designed to then think about what it needs to do and then generate its like final response. So it's got like this reasoning block inside of it. So it makes it like super intelligent.
I've been playing around with it locally and I've been very impressed. But we ended up adding them as like first party provider support directly to their API. And then we had contributions for Anthropic prompt caching. You know, I added like DeepSeq structured support. So we got that going now too.
couple other refactors and then, I know we're sitting on a couple of pull requests for some more anthropic stuff, which is just super exciting. So, some big community contributions and then fair amount of effort on my end. just like got stuff moving forward again and it just, feels really good to have some momentum behind it after like sitting for three, four weeks on just like this written neck gnarly refactor that I hated, you know, to.
Cranking through it feels really nice.
Chris Gmyr (34:44)
Yeah, it's like the thing that popped into my mind just now is like a freight train. When it's stopped, it's hard to get going. So that's where you've been the last handful of weeks. But once you get it moving and you're going down the tracks and you've got all that speed behind you and weight behind you, you're just cranking through it. And it's a lot easier to get to the next spot or pull requests or release or whatever it is.
TJ Miller (35:12)
That's so true. That's kind of like, got, not only was I like hung up on this refactor, but going into the holidays, like I was just super burned out and finally like recovering from that and kind of unsticking myself. Like that gave me the gas to get the train started again and yeah, cruising now. So pushing to that 1.0, I think we're going to hit it in like.
I think we're probably like a month out from like a 1.0 at this point. We'll see, maybe two. I'd like to squeeze in a couple more providers before we hit 1.0, but there's a few features that are going to potentially affect the API, and we're working through some of those now. So that's really the only thing that I'm waiting on is making sure that we've got the public API settled.
There aren't going to be any more changes or at least hopefully no more changes. And then we can just pull the trigger on 1.0. But I know that there's a handful of people who are already using it in production, and it's working great for them. yeah, those are always the most excited messages that I get of like, we just went to prod with this, and it's working great. And I'm just so tickled.
you know, really encourages me to keep the ball moving.
Chris Gmyr (36:25)
Yeah, that's awesome. And it'd be also amazing to have that point release out before May for tech and the workshops and more of the promotion there. it sounds like you'll definitely have that, if not a couple of minor releases even before tech starts in May. So that'd be awesome.
TJ Miller (36:44)
That's definitely a big goal of mine is like, definitely want to hit 1.0 before we get there in the workshop. I think that'd be really nice to be able to have like, yep, we're at 1.0. We're stable for the API. Like not only can we build on here in the workshop, but like, yeah, go throw it in your production apps and feel comfortable and confident with it.
Chris Gmyr (37:03)
Yeah, totally. That's awesome. Congrats.
TJ Miller (37:05)
Sick man.
So I think we can probably wrap up there. What do you think? Yeah. Cool. So thank you everybody for listening to the Slightly Caffeinated podcast. Show notes and all the links from things we talked about as well as our social channels are available at slightlycaffeinated.fm. Thank you so much for listening and we'll catch you next week.
Creators and Guests

