DynamoDB, Raycast workflows, and NativePHP

Chris Gmyr (00:00)
Hey, welcome back to the slightly caffeinated podcast. I'm Chris Gmyr

TJ Miller (00:03)
I'm TJ Miller.

Chris Gmyr (00:04)
Hey TJ, so what's new in your world this week?

TJ Miller (00:07)
man, jeez. think we've, we haven't recorded I think in like two weeks. know, I think, yeah. So man, what's been going on my, my, I've just been wrestling with life over the last two weeks. Just kind of like got hit with some like personal stuff, family stuff. And it's just been, it's been a rough go over the last two weeks, but.

Chris Gmyr (00:11)
Yeah, this is two weeks now.

TJ Miller (00:28)
We're doing better. think we're kind of heading out of the woods, which is good and great. outside of that, really, I mean, that's been like all consuming. So just been reeling with that. And now I'm prepping for PHP Tech next week. I'm getting like really excited about that, getting to, you know, for me, conferences is just so much about like getting to spend time with, you know, my

my people, right? You know, there's just a big sense of community and I'm really excited for it. this year, I just I'm blessed with being able to be at a bunch of conferences. And I'm really just looking forward to like, being there spending time with folks and getting to learn. But

Yeah, so that's not a whole lot of updates, honestly. So I'm enjoying the turn of spring here. The weather's been great. It's been getting pretty warm. I busted out the bins of seasonal clothes and starting to put the winter stuff away and bringing out all the summer stuff. So yeah, really looking forward to getting out of the winter and some gloom.

getting that sun and having some fun this summer. yeah, man, nothing major. How about you,

Chris Gmyr (01:34)
Yeah, I mean just been busy at work planning a handful of projects, kicked off a new plan the beginning of this week. So trying to wrap that up this week so people can start working on it. So pretty cool stuff. So it's a little bit of architecture change than what I'm used to because we at work now have a bunch of different services, internal and these.

kind of like edge services. So before we were doing like kind of ingress and egress services, so you would do like a third party like integration with these like ingress and egress services. anything going out to the third party service would go through the egress and then any like web hooks or data coming back in would go through the ingress. So.

We did set up these as like two separate deployable apps in the past, but we're trying to switch over and make them into like one basic app because there's so much shared logic and code and stuff like that. So my task right now is spinning up a new edge service and planning for that for a new integration that we're doing. So it's a little bit different because

Like in the past like we've made, you know SDKs or something like that But that's basically like in the same code base right where this is like a whole new service It has like a open API spec for like internal usage And then you have to like kind of map external and internal data together put whatever sort of extra or like metadata in there and then all of your like internal services can call into this like edge service, so it's

just a different architecture and setup than I'm used to. But it's kind of like a cool pattern because it keeps all that third party knowledge and data and workflows and conditions in one service, which is pretty cool. And then based on the open API spec, you can generate internal clients very easily for any sort of tech stack that we use internally because we have a couple of different ones.

TJ Miller (03:19)
Yeah.

Chris Gmyr (03:29)
So yeah, it's just kind of like a cool architecture pattern that we utilize. So yeah, just doing a lot of work and investigation on that. So a lot of new technical things that I haven't done before. So we're trying to prefer DynamoDB because it's a little more scalable. It's a little bit cheaper compared to like full Postgres and like different replicas and backup strategies and things like that. So.

looking into DynamoDB more because I haven't used it so far. So yeah, just a lot of discovery, lots of planning, lots of tinkering with things. So yeah, feel like the end of the day my head is, my brain is just done.

TJ Miller (03:55)
Yeah.

Yeah,

yeah, yeah, I mean, I trust I very much understand it. We I came I circled back around at work to the big click house project that we've talked about over the last like, couple months. And that was that was definitely back in the I feel like my head's going to explode. I'm learning so much stuff all at once. You know, it's it's a it can be overwhelming.

Chris Gmyr (04:25)
Yep.

TJ Miller (04:31)
to be in that space, but that's also so much of what I love about what we do is that there's just this never-ending source of learning. that's like, just, that's what I'm hooked on is like, I love learning new things and getting to play with it. So that's just like at the core of what I like about this stuff, but it can definitely get like really overwhelming and like brain.

hurting. like, yeah, I feel that. But that's cool, man. Like, I've not messed with DynamoDB much either. But it does seem like, like a really cool tool to be able to reach for.

Chris Gmyr (05:09)
Yeah, yeah, it's just totally different than modeling relational data that you would normally in like a level app or, you know, my sequel Postgres, you know, whatever you're using there. So yeah, just different ways to model it. And because it's kind of a new usage and tool for us internally at work, there's not a lot of guidance. So I'm hoping to do enough research and get enough knowledge to, you know, be one of the

the few people to ask questions moving forward, to try to get as much knowledge there as I can, as fast as I can. But yeah, super cool.

TJ Miller (05:40)
And yeah,

if you remind me, DynamoDB is like key value document store, right? Like a NoSQL solution?

Chris Gmyr (05:49)
Yep. Yep,

no SQL, basically a document store. There's different ways that you can key into it. So there's basically a required primary key for each table. And then you can append on an optional secondary key. So that full composite key could be your unique row and record in the table. So you can technically have duplicated

TJ Miller (06:12)
Right.

Chris Gmyr (06:15)
primary keys, but not with the composite secondary key. So if you wanted to, you could have like user one and then maybe like a date or something like that as the secondary key. And because that date is always incrementing in the future, you could have like that user ID one as like the second row.

and like tomorrow's date as the secondary key. So you would have two individual records, but using the same primary key. And that's just like one option to model the data with, or you could put like, still just have a single primary key and just have that and have like sub records within that like main document to.

append on whatever records that you had, like logs or messages or product reviews or whatever your data has. So there's some cool options with that.

TJ Miller (07:05)
Yeah, it's like,

so you can yeah, like kind of like sub categorize the data of like, yeah, like user ID and then like category of data, right? Like users like their options or inline like users, their like preferences, I don't know, like you can just kind of like categorize those buckets by using that compound key or then if you just want to get like all of it, you just query off the user ID and now you got like all their buckets of data.

That's pretty cool.

Chris Gmyr (07:34)
Yep.

Yeah. Yeah. So I'll be jumping into that more. yeah, hopefully we can talk about it in the next coming month, month or two, as I get a little bit more settled and spin up this new service.

TJ Miller (07:43)
Yeah.

Yeah, looking forward to it, man. I can't wait to hear more about it. That's cool, dude. Yeah, I'm with the ClickHouse stuff, sort of similar in database land, picking up Kafka and still with ClickHouse. So yeah, that's new concepts all the way around, That's cool stuff.

Chris Gmyr (08:05)
Yep.

Yep. Totally. So busy at work. Good stuff going on at home. Had a good weekend with the kids with Mother's Day weekend last weekend because she went away for just down the road, maybe like an hour and a half, little cabin in the woods. was like nice. Got to sleep in, got to go on like a little hike, not have to worry about the kids, stuff like that. We went to the farmer's market and some other activities around here and then just made her dinner when she got back on.

TJ Miller (08:19)
Nice.

Chris Gmyr (08:30)
Sunday. And then yeah, have a couple scout things this week and over the weekend. But yeah, pretty chill. It's been raining a bunch, so that's kind of a bummer. But hopefully it'll start drying up here soon. But yeah, that's about it on my end.

TJ Miller (08:37)
Yeah.

Sick dude.

Nice. Yeah, it's funny my not last weekend for Mother's Day, but the weekend previous my wife did a little solo trip for herself went and stayed up at a lighthouse that was like Airbnb kind of thing. So she did a little cabin out by the water in a lighthouse. So ⁓ that's cool, man.

Chris Gmyr (09:00)
Sweet.

Yeah, that's awesome. So yeah.

TJ Miller (09:03)
I was super jealous. I was like, I need a solo trip. And

she's like, babe, you're going to three conferences this year already. I'm like, wait, yeah, you're right.

Chris Gmyr (09:10)
Yep, Yep,

those are your trips, for sure. Yeah, so yeah, quick coffee talk. I was running out of my usual Purity coffee, and I don't know, they switched shipping companies or something like that. So I've never heard of this company before, and they didn't.

TJ Miller (09:15)
Yep, those are my trips. I'm doing that instead.

Yeah, let's do it.

Chris Gmyr (09:32)
really have tracking that I could use very easily. You always have to go back to the email and click the link and whatever. I'm just like, I'm not going to do that. So I had no idea when it was coming. And sometimes they're kind of slow. So I'm like, I'll just pick up some from one of the local grocery stores, which isn't great to begin with. But ⁓ if you check the dates and whatever, it's usually not too bad. But I picked up some counterculture hologram, which is one of their year-round blends.

TJ Miller (09:48)
Yeah.

Chris Gmyr (09:56)
And counterculture is cool because they're actually right here in Durham. So they're about 40 minutes away from me. So usually anything that we get locally that I don't order direct from them is usually pretty fresh. So I usually like doing the hologram with cold brew. So I know we talked about cold brew a handful of episodes ago. So finally broke that out because it's been on my mind since we were talking about it. I'm like, got to pull the trigger on it. Got to pull the trigger on it.

TJ Miller (10:04)
nice.

Yeah.

Mm-hmm.

Yeah, dude, it's cold brew season. It's

me. Got a got a bucket of cold brew right here,

Chris Gmyr (10:26)
Yep.

So I pulled the trigger on that the other day. Tapped into that yesterday. It's fantastic. After a set now for 24 hours or so. And then got some Stumptown Founders blend. So I haven't had Stumptown in a while. I don't think I've had this blend. But figured I'd try it out. It's good. Nothing too crazy. Usually just blends. can't really tell a lot from.

TJ Miller (10:33)
Mm.

Chris Gmyr (10:51)
the flavor profiles, at least for me, because there's so much stuff in there usually. ⁓ But it's just solid coffee. Tastes good. I'm happy with it. And then the purity stuff came in the next day, so now we have a ton of coffee. But it was fine, because we would have had a day or so in there waiting for the cold brew and the new stuff to arrive. So yeah, can't complain with a little extra coffee right now.

TJ Miller (10:55)
Yeah.

Of course. Yep.

Yeah, no, not at all, man. We've been kind of stocking up some stores of various coffees. Like, who knows what's going on with like tariff and economic stuff that like we're just we're generally just kind of stocking up on various things that, you know, we know are coming from the outside with like beans. Like, who knows if like prices are going to go up or the availability is going to become a problem. So we've been stocking up a bit on our coffee, which has been nice, but

we all, we, we stocked up kind of on like one roasters set of beans and, I think we were both kind of getting a little sick of it around here. So we, we switched it up, got, still another local roaster, but we just like switched up who we were getting it from. Got a few different bags of a few different things and yep, cold brew season. So I got a, we've got that brewing and, I'll just, I, I chew through cold brew. Like I just start drinking it like a water. so.

We've basically got that going like all the time now. We've got the same cold brew system. I actually found it all. So we were using some other thing to brew it. But I found our big setup. So got that going again. I think I might bust out the five gallon bucket and start doing big batches again. That's something that we did.

Chris Gmyr (12:17)
Nice.

TJ Miller (12:27)
previously. And it's not so bad. you just, I ordered some cheesecloth off of Amazon and you put the grounds in that and you just do, yeah, big old, big old batch. And that's, we just go through so much of it that like, it's, it's nice to do like a big batch over a weekend and then have it all week instead of just having to have this like caraf out all the time, like constantly like brewing and cleaning, you know, and

So I might bust that out after I get back from tech next week and just do a big weekend batch.

Chris Gmyr (12:57)
Nice. Yeah. Do you just keep that liquid ready to go because you guys go through it so much? Or have you frozen a bunch of cold brew ice cubes and stuff like that?

TJ Miller (13:10)
when I do the big five gallon, I will typically do like a couple of trays of ice cubes too, just cause there's so much of it. and I want it to like, I don't want it to go bad and I don't quite get through it fast enough. so yeah, we'll, we'll bottle up a bunch of it and then I will do, I've got like a big deep freezer here. So I'll do a couple of trays of ice cubes and just stick them in there. And, that's always nice cause like,

I hate watering down my iced coffee any more than it needs to be. So having like iced coffee, ice cubes to go along with it is fantastic. It seems like such a snobby thing too. I'm just like, I make custom ice cubes for my coffee because I'm fancy.

Chris Gmyr (13:42)
Yeah.

Yeah,

well, hey, if you're going through all the work, ⁓ might as well.

TJ Miller (13:51)
Yeah,

it's going to be there. Like, why not?

Chris Gmyr (13:54)
Yep, exactly.

TJ Miller (13:56)
Cool, man. So moving on from coffee, I'd love to talk a little bit about like Raycast. And I know this is something we talked about a little bit like over a couple of episodes. Like you recently switched from Alfred over to Raycast. And then I think somewhat recently too, Raycast launched an iOS app. I've been meaning to download it and play with it, but I I haven't gotten around to it yet. So I'd love to.

I'd love to hear about how Raycast is working out for you, if you've come up with any cool tips and tricks. Because I know you were much more so than I was a real power user of Alfred. So I'd love to hear how that's translated over to how you use Raycast too.

Chris Gmyr (14:35)
Yeah, yeah, totally. Yeah, first, with the Raycast for iOS, I did download that. I haven't really used it too much because they have their AI built into it, which I don't use. just go to Cloud directly or use the Cloud extension. So it's like, that's not really a big selling point for me. I have some quick links, but not a bunch. And you can't really do

TJ Miller (14:50)
same.

Chris Gmyr (14:58)
to, I don't know, it just doesn't seem like it has that much for my use cases in the iOS app. You can do like notes, but you can't have like too many of them, I don't think. And then you can't actually sync to anything unless you have their plus or like pro plan. So I'm like, like I'm not gonna sign up for that. I, the sync would be nice, but I have things slightly different between

TJ Miller (15:15)
and I don't.

Chris Gmyr (15:23)
my work computer and personal computer. So I'm like, I don't want to be making custom commands for work command one and personal command one type of thing. So I'm like, I'm just going to hold off. So yeah, I haven't really used the iOS app very much. I've wanted to, but I'm not just going to jump in and use the free five AI questions each day or per month or however they set it up.

TJ Miller (15:49)
Yeah, yeah, I don't use Raycast AI at all. I just go straight to cloud for everything basically.

Chris Gmyr (15:56)
Yeah, so I was looking into AI more because if you don't know or anyone else doesn't know, they have like an open Slack community that you can join. I think it's like at the bottom of their homepage on recast. You can join their Slack community and in there they have like tips and tricks. They have like bug tickets that you can submit. They have questions and answers. They have stuff specifically now for like iOS. So I've been

just creeping in there and seeing if anyone has any good ideas, which they do. The tips and tricks are actually really good. But a lot of them are specific to the AI implementation or stuff for iOS that you would need the Pro plan for to sync things across. So one of the things that I was looking into yesterday is, because like I said, I just used the Cloud extension with the API key direct to Cloud.

But you can do some really cool things within the Raycast AI. So you can set up a prompt where it's like, given this selection, do all these things, like make bullet points, summarize whatever in a very specific format. So you can have that as a template. And then you go into your browser, you select things, and then you can open up Raycast and say, make this into bullet points. But that all goes through.

Raycast AI, and there's no way to actually set up that same prompt for Claude, which is kind of a bummer. So Raycast adds on all these abilities that you can do custom prompts for different AI commands, they call them. So it was kind of a bummer that I couldn't use Claude via their AI by just using my key. It's totally complete different systems.

TJ Miller (17:18)
Mmm.

Chris Gmyr (17:39)
So I don't know if they close that off for some reason. They put an additional layer on it or just want people to buy their AI version. But I'm like, ah, it's such a bummer that I can't make AI commands with my key for Claude because that's the only thing I really care about using. So that was kind of a bummer. So iOS, not for me yet. But everything else has been really great.

TJ Miller (17:58)
Yeah.

Chris Gmyr (18:08)
So yeah, I can definitely go through some workflows or if you have any other questions or anything to say about the AI or iOS.

TJ Miller (18:16)
No, ⁓

I haven't used any of their AI stuff because I don't pay for Raycast at the moment. And I think most of their AI stuff is at Paywalled. I don't even have the Cloud extension installed. just, like, Cloud Desktop has a hotkey to pop open a prompt. And so I just use that. So I just use the Cloud Desktop app. And with that, too, I have several MCP servers configured for Cloud.

I just, I use that because it's kind of got my whole thing set up and Claude's iOS app works great too. I just, while you were talking about it, I installed the Raycast iOS app. I'll probably play around with it a little bit. Maybe I'll get pro for a month and toy around with it, but I don't know. We'll see. But yeah, dude, I'd love to hear a little bit more about some of your like power workflows and kind of like how you're using it.

Chris Gmyr (19:07)
Yeah.

Yeah, definitely. Just real quick back on the iOS app. Alfred also has an iOS app, and you can use it as a remote for certain commands on your computer. So what I would do a lot of time is you could eject disks. You could restart the computer. So typically, I restart my computer on a daily basis, usually in the morning. First thing I do is just restart it.

TJ Miller (19:14)
Really?

Chris Gmyr (19:32)
So what I would do, because it takes usually a few minutes for all the apps to quit out, restart the computer, show the login screen, whatnot. So when I'm about to head upstairs, or previously when I was using Alfred, is I would go onto the Alfred Remote iOS app, click Restart Computer, double tap to confirm it. And then by the time I walked up, it would be like the fresh login screen that I could just log in and.

TJ Miller (19:57)
Nice.

Chris Gmyr (19:59)
of a fresh instance of the laptop. But can't do that. I was hoping for some sort of workflows like that into Raycast, but I don't think they have as many system kind of hooks. They do have some, but not available in the iOS app yet. So that was kind of a bummer, because when I first opened up that iOS app, I'm like, yeah, there's not much here that I'm actually going to use. So.

TJ Miller (20:13)
Yeah.

Yeah,

I'll poke around, but my hopes aren't really high right now, I'll be honest.

Chris Gmyr (20:25)
Yeah, totally. So

yeah, workflows. I have a couple set up right now for, like I have virtual desktop set up. desktop one is basically all like Slack, browser, any sort of utilities, things like that. Desktop two is all dev stuff. So like IDEs, terminal, Docker, desktop, things like that.

And then desktop three is just for calendar. So I can have a big view of that. So I have commands that are like D1, D2, D3, and clicking those aliases just open up all the apps that I need. So it starts up like little Mac utilities, like bar apps, the full application. So it like spins up Arc, it spins up Slack.

any else that I need for that. And it's just like one keystroke and basically done. And that's been like super nice. Yep, still on, still in arc. I don't know. I like it. I don't know. Don't keep up on all the things as fast. But maybe that could be like another conversation topic in the future.

TJ Miller (21:17)
Ooh, you're still on the arc train.

Mm.

Hmm. Interesting.

No,

it definitely is going to be. putting it on the list.

Chris Gmyr (21:33)
OK.

Yeah, so and then at the end of the day, it's just a lot to close down because with the work laptop, I shut it down after every work day. And it's just a lot of apps to click. So I have this shutdown command that will basically go through individual terminal commands and just select each app that I have open and do a quit on that, which is also connected to my Slack.

API in connection to the work Slack instance. So I have this Slack status, so SS and then you space and then you have a command there and I have specific commands doing certain things. like SS back will reset my status, like set me to green, remove any like status messages that I have on there. And then we talked to.

I think way back at the beginning, I have this Luxa 4 light that I can change colors outside my door to green and red and whatnot. So that has a webhook API attached to that. So within the script, depending on which command that I choose, will set the light to red or green. So SS back will reset my slack status to green. It'll make sure that the light is both turned on and set to green.

TJ Miller (22:24)
Yeah.

Chris Gmyr (22:45)
And then SS Meeting will change my Slack to animating, be back soon, leave a message type of thing. It'll turn off notifications. And then it'll change my light to red and open up Zoom automatically. So that's been.

TJ Miller (22:59)
Dang, fancy ya.

Yeah, man, that is, that's a pretty fancy setup you got going on there. Like, I feel like I'm leaving a lot on the table every time I talk to you about this stuff, because I don't do like, I feel like I should be a power user of this stuff. And I'm just, I'm not like, the biggest automation I have set up right now for any of this is like, I can go into my terminal and type lights on and lights off, and it turns on and off my like,

RGB strips and lights in my office. Like that's the most I've got going on,

Chris Gmyr (23:28)
Yep. Hey, it's

a start. I mean, that's how I started. was just like, oh, add one little thing here, or hey, I continue to do this every day. So let's see how we can systematize it and make it into a command. So same thing with the Slack status. I have a lunch one. So I do SS lunch. I pre-picked some food emojis. So it will pick a random one in that.

And then it will set the status to like that icon and just be like, you know, at lunch, be back soon type of thing. ⁓ It'll turn off the Slack notifications, put me as offline, and then it'll automatically start my screensaver. So I don't have to do anything with that. It'll automatically lock. And then I can just basically do like SS lunch and walk away. I don't have to do like anything else with the computer or anything like that. So.

TJ Miller (24:01)
Yeah.

Mm.

Chris Gmyr (24:20)
Just like little things like that.

TJ Miller (24:20)
I also find it

really interesting that you're so diligent about restarting your computer every day. That's crazy, dude. I restart my computers once a week. Every Monday, I have the same thing. I've been doing it for years. I sit down, I do homebrew updates.

Chris Gmyr (24:27)
every day.

TJ Miller (24:40)
I do all that stuff, sync my .files and everything. So just make sure everything's nice, tidy, put together. And then after everything's done updating, then I'll do a fresh reboot. everything's fresh on Monday, ready to go. But man, I am not diligent enough to restart every day. And I think if I did, I'd probably do something similar. You have automate opening everything back up.

Chris Gmyr (25:03)
Mm-hmm.

TJ Miller (25:04)
making sure the right things are up and running. But that's cool, man.

Chris Gmyr (25:08)
Yeah, yeah. And then because I'm switching laptops, I have, I usually use laptops in the clamshell mode. have an external trackpad, keyboard, know, the mic webcam set up all the things. So every day, like I'm switching laptops and because the trackpad is Bluetooth, it's kind of a pain. have to like open up Bluetooth. You can't un-pair it. You have to actually go into the little like information icon and forget it.

from the device so you can actually connect it to a different device. And I've been doing that for a little over two months now. I'm like, this is not fun to do every day, because then you have to do the opposite on the laptop that you're switching in to reconnect it to the Bluetooth device. So I was looking into this a little bit the other day and started a new Switch laptop script. So it's just like Alias SW for Switch.

And what it does is make sure everything's closed again and then finds the Bluetooth device and deletes it from the Bluetooth registry on the laptop. And I'm also ejecting all the disks attached. Because when my personal laptop is attached, it has an external drive that doesn't run on the work laptop because it's blocked.

On the personal one, I want to disconnect all the drives, disconnect Bluetooth. And then when I plug the work laptop in, then everything just connects as it should. So that workflow was kind of a pain. I'm like, I'm just going to throw a command on this. So did a little bit of digging. There isn't a direct command that you can use easily for Bluetooth interactions. But there's a, you can download it through Homebrew. I think it's like.

TJ Miller (26:37)
Yeah.

Yeah.

Chris Gmyr (26:55)
blue util or something like that, where you can see all your paired devices. It will show you the MAC address for all the devices. So you basically can do blue util dash pair or unpair, and then the MAC address. So because the MAC address doesn't change across devices, then you just hard code that into the script. And then now I have an automatic pairing and un-pairing, depending on which way that I'm going on which computer.

So just cuts down on, I don't know, like 10 different mouse clicks and things like that. And it just saves so much time. Because those 10, 15, 30 second little tasks just add up throughout the days and weeks and months.

TJ Miller (27:23)
That's cool,

Yeah.

And it's just like, I don't know, a bit of a pain. like, I don't know, I've got a low pain threshold for that kind of stuff. which is why my track pad doesn't get used a whole lot because it's the same problem. Like it's such a pain to like go back and forth, or I think you can avoid that by like hard wiring it. So just like, but I don't want to do that either. Like Bluetooth, it's nice and clean. ⁓ the only thing I wish is like, I really wish it was like USB-C that would make my life.

Chris Gmyr (27:57)
Yeah. Yeah.

TJ Miller (28:04)
So much better. ugh, I'm so sick of these light-lighting connectors. Whole other story, though.

Chris Gmyr (28:08)
Yep, totally.

So yeah, that's kind of like a quick walkthrough of kind of the custom scripts and things like that. And you're going to attach aliases, which is just kind of short codes for those. So instead of typing out the full command names in the recast bar, you can just do like little two, three character shortcuts, which is nice. And also,

TJ Miller (28:29)
Mm-hmm.

Chris Gmyr (28:30)
using the hyperkey more. So hyperkey is built in as an option. You can turn that as optional. So I just have that mapped to Caps Lock, which I think a lot of people do. And then seeing what other workflows that I have that can utilize that. So I used Todoist a bunch. And they have a little automated window that comes up to add tasks.

similar to Raycast, but I do that as HyperKey A to add task. HyperKey T is to bring up Todoist. I used Fantastic Cal. They have a little menu bar window, so it tells me what's coming up next and how many minutes. And then you can expand the whole bar to see the full calendar view. But they allow you to attach a keyboard shortcut to that. So that's HyperKey C. So I can see the calendar.

TJ Miller (29:17)
Nice.

Chris Gmyr (29:19)
And then within recast more, let's see, I set up the.

clipboard history. So that's like hyper key V so I can see like all the clipboard history for the last, I don't know, 30 days or something like that. And then started doing some things with obsidian extension. So hyper key N will create a new node and automatically open that in obsidian. And then hyper key D will append

to a specific section in my daily note if I just want to throw something in there. So I've been starting to work those in my workflow a little bit slowly because I just enabled not too long ago. So yeah, just trying to set up all the little niceties with all the tools and seeing also what's available in the extensions because depending on how good the extension is, know, well, you're mild.

We'll vary a little bit more with that.

TJ Miller (30:22)
Yeah, dude, that's cool, man. I actually recently just switched back to bare notes because I fell off and I've just been using some custom Vim script to manage my notes and stuff. But the bare extension for Raycast is great. can search notes, web capture, create notes. And then with the AI extension, you can ask questions to your bare notes, which is pretty cool. ⁓

Chris Gmyr (30:45)
Yeah, that's cool.

TJ Miller (30:46)
Yeah, digging that. like the amount of extensions and I feel like the caliber of the extensions, like every extension I think I've installed has been like super high quality and has just like worked out of the box. So like that's been like a really cool experience with Raycast too.

Chris Gmyr (31:02)
is really cool and something that was kind of lacking as the years went by in Alfred because there was only a very select few of very good extensions or plugins and all the rest were community stuff and I know the recast ones are a lot of community based too but they were just kind of left and forgotten and as Alfred got updated in the future

they just weren't kept up. And I would have just Alfred extensions just stop working. Or they were keying off of stuff that you had to have installed on the computer itself. So different versions of PHP, while you update your version to PHP, the RIGCAST extension or the Alfred extension isn't up to date with that. Or they made it five years ago. So now it just stops working.

TJ Miller (31:49)
Yeah, right.

Chris Gmyr (31:51)
So yeah, it was just all sorts of problems. So so far so good with all the raycast extensions. Those have been nice.

TJ Miller (31:57)
Sick man.

I dig it. Like, yeah, like I said, it's always so fun to hear about how you use this stuff, because I know you're such a power user of it. it sounds like I got a few things to pick up on, and I got to step my automation game up.

Chris Gmyr (32:09)
Yeah, it's

been fun. It's like, how can I automate this and make this into like two characters or something like that?

TJ Miller (32:16)
Yeah, yeah, it's always, uh, it reminds me of just like playing like code golf with people, right? Like, how can we like whittle this down to like the absolute smallest thing possible? That's Sick man. So I, uh, moving, moving forward a little bit, um, I just snagged myself a copy of native PHP, uh, for iOS this yesterday. Um, I'm, I'm getting pretty excited about it. And think they just hit a milestone.

Chris Gmyr (32:27)
Yep.

Thanks

TJ Miller (32:45)
Like really recently, I think they passed like a hundred K and gross revenue like that's that's wild man. Like what it's so cool

Chris Gmyr (32:50)
Mm hmm. Yeah.

That is so cool. Yeah, I was just listening to the bucket podcast. I know we've mentioned that before, but Simon, Shane and Stephen talk about this and their recent episode from a few days back, I think, walk through it and it just wild like the progress that they made. And now that Shane is working on the Android side of it. So Simon is on.

TJ Miller (33:00)
Yeah.

Yeah.

Chris Gmyr (33:17)
The iOS chain's handling the Android side, and now it's open for purchase. You can jump in and start using it. I believe it's a private composer package, so really easy to add into your projects and just download once you have access and your API key and whatnot. But yeah, kudos to them. It sounds awesome.

TJ Miller (33:38)
Yeah, I cannot wait to slam Prism into it. Like, I'm definitely starting to get the juices going about like, what's maybe something cool I could build with Prism and native PHP for iOS. So I know, man, I think after PHP tech, we're going to cook with it a bit. I'm pretty excited. just found out also yesterday that, I mean, it may have

Ben talked about sooner, but like I just realized it. Like Shane's going to be at PHP Tech and talking about native PHP there. So I'm very excited to like, you know, pick up that license and then like get a, get a nice jumpstart coming out of his talk and ⁓ build some stuff. So yeah, it's going be really cool, man. I still can't believe they pulled it off. Like, yeah, for sure. Like I can't believe they pulled off like running Laravel and PHP, you know, with iOS like.

Chris Gmyr (34:14)
Sweet.

Yeah.

That's awesome. Tell him I said hey.

I know.

It's pretty amazing. Yeah.

TJ Miller (34:27)
Mind blowing. Mind

blowing. It's so much, I think the last time I built anything for iOS was like Cordova, PhoneGap, Iconic. You know, it was very painful, very painful experience. ⁓ I made like early on in my like messing with AI.

Chris Gmyr (34:39)
Yeah, way back in the day. Yep.

TJ Miller (34:48)
I really wanted to build my own chat thing. And so I started messing around with SwiftUI, but then realized I don't have the bandwidth to learn a whole new language and way of doing things. So this will be great. I think this is where I'm going to start coming up with all sorts of little utility things and be able to do stuff where it's like, can utilize Cloudflare tunnels and maybe build some automation in my computer where can just like,

call webhooks or scripts and stuff and be able to do cool things like, yeah, I can trigger a restart from my phone from wherever, right? So I think that'll be really cool.

Chris Gmyr (35:22)
Mm-hmm. Yeah.

That'll be cool.

TJ Miller (35:27)
Sick man, another piece of news that I think came up yesterday that I would love to just touch on. I don't have a ton of talk about it, but like, dude, as someone who's like messed around with ops and just like has fun in that space and like sysadmin stuff, Franken-PHP just got added to the PHP foundation. So it's like a legit official thing now. And that has me so excited.

Chris Gmyr (35:49)
Yeah, that's awesome.

Yeah, that's really cool. I haven't really messed with it too much, but I've heard good things about it. But it's just really exciting for that to be in the PHP foundation and being supported by that org. It's really nice.

TJ Miller (36:02)
Yeah.

Yeah, it feels like, I don't know why, but it feels like a really big step forward for PHP. think for such a long time, it's been that just like, well, Apache or NGINX, pick one of the two, and now we've got this new big third option that's bundleable and can do async. I don't know, man. I'm...

actually really excited for like what this means for like where PHP could go and I'm super stoked about it.

Chris Gmyr (36:30)
Yeah, yeah, that's really awesome. Good for them, man.

TJ Miller (36:32)
Like I said, I don't have

a ton to go super in depth, but like I said, was like day old news at this point. So like really fresh and I'm very excited to see what this, see where it goes, where it leads to.

Chris Gmyr (36:43)
Yeah,

all sorts of positive funding in the PHP in Laravel space. It's nice to see.

TJ Miller (36:49)
Yeah, yep,

yeah, for sure, man, for sure. So I don't know about you, but I think we can probably wrap it here.

Chris Gmyr (36:55)
Yeah, let's wrap it up. So thank you for listening to this Lightly Caffeinated podcast. Show notes and all the links. Social channels are down below and also available at slightlycaffeinated.fm. Thank you for listening and we'll catch you all next week.

TJ Miller (37:08)
Yeah, thanks, see you.

Creators and Guests

Chris Gmyr
Host
Chris Gmyr
Husband, dad, & grilling aficionado. Loves Laravel & coffee. Staff Engineer @ Rula | TrianglePHP Co-Organizer
TJ Miller
Host
TJ Miller
Dreamer ⋅ ADHD advocate ⋅ Laravel astronaut ⋅ Building Prism ⋅ Principal at Geocodio ⋅ Thoughts are mine!
DynamoDB, Raycast workflows, and NativePHP
Broadcast by