[00:00:00] Intro: Welcome to Syntax. Welcome to a brand new episode of the Front End Happy Hour podcast. Welcome to this week’s JS Party. Live from Ship Shape Studios, this is Whiskey Web and Whatnot. With your hosts, Robbie the Wagner, and me, Charles William Carpenter III. That’s right Charles. We drink whiskey and talk about web development.
[00:00:27] Intro: I mean, it’s all in the name. It’s not that deep. This is Whiskey Web and Whatnot. Do not adjust your set.
[00:00:36] Robbie Wagner: What’s up everybody? Welcome to Whiskey Web and whatnot with your host Robbie the Wagner, and Adam Thomas Argyle, the nerd.
[00:00:44] Adam Argyle: Yeah.
[00:00:46] Robbie Wagner: We have a special guest with us today. Adam, would you like to tell the folks who’s here.
[00:00:51] Adam Argyle: Oh, you know, I would, we have David k piano, AKA David Korshe hailing from Florida, where bat salts make people ravenous. We have David, [00:01:00] who is a key framer tweet banger, enemy of the ex state advocator. Speaker hacker, flipping animator, Alex Theia says, Husky creator. React heckler if statement hater. And most lately, an LLM powered finite state machine Agent Slinger, welcome to the show.
[00:01:15] Adam Argyle: David. Haven’t seen you since you were in Seattle a few years ago. What’s up?
[00:01:18] David K. Piano: That’s true. That’s true. Good times. And also that was the best intro I could have asked for.
[00:01:25] David K. Piano: was
[00:01:25] David K. Piano: amazing.
[00:01:25] Adam Argyle: quit having such a cool history, uh, and then, you know, I’ll, I’ll ruin it next time.
[00:01:30] Robbie Wagner: Announcing our new product, uh, intros as a service. Adam will be doing these for uh, anyone that would like one for anything.
[00:01:38] Adam Argyle: Hype. I got you.
[00:01:40] Robbie Wagner: Yeah. Alright. So a much less interesting thing to mention. The whiskey. I don’t have as many fun facts for you about this, but it is a fun one. you can’t see you guys, you can see some ones a single malt. let’s see. Miyako,
[00:01:57] Adam Argyle: I thought that was pretty good. Yeah. Ika, Yaki, go.[00:02:00]
[00:02:00] Robbie Wagner: Miyako.
[00:02:00] Adam Argyle: Oh, I think I screwed it up a little bit too, but yeah, you’re close.
[00:02:04] Robbie Wagner: yeah, yeah. So it’s single malt. That means it is a hundred percent malted barley and it is, I believe 90 proof and from the mountains of Sendai. I don’t know anything about if those are real mountains.
[00:02:21] Robbie Wagner: I.
[00:02:22] Adam Argyle: I.
[00:02:22] Robbie Wagner: But yeah. And it’s, uh, lightly peed and aged in sherry casks. So let’s give it a, a whirl.
[00:02:29] Adam Argyle: Let’s give it a shot.
[00:02:31] Robbie Wagner: I was surprised that it’s twist off. Maybe that’s a Japanese thing. ‘cause they like the efficiency because it’s not a cheap whiskey.
[00:02:40] Adam Argyle: It was not. I’m looking forward to it.
[00:02:42] David K. Piano: too. Never tried this one before.
[00:02:44] Adam Argyle: Ooh, the color’s nice. Uh, I just always think of like Jurassic Park looking at this. Like, one day there’s gonna be a, uh, mosquito in there. You know, I’ll be like, oh, that’s cool. Maybe it’ll turn me into a dinosaur when I drink it. Well, I have a toast before we have [00:03:00] our first sip. I mean, you’re welcome to sniff it and all that good stuff, but here we go, two 10 great years of state machines. May they one day reign supreme over if statements and save us from the hell that is. If spaghetti. To David K piano.
[00:03:14] Robbie Wagner: Here, here. So I’m smelling. , Have you guys had HAI chew?
[00:03:21] David K. Piano: Yeah. Bless
[00:03:21] Adam Argyle: Totally.
[00:03:24] Robbie Wagner: they have an Apple one and it smells a lot like
[00:03:27] Robbie Wagner: this.
[00:03:28] Adam Argyle: Whoa. So much apple flavor.
[00:03:30] David K. Piano: Mm-hmm.
[00:03:30] Robbie Wagner: I don’t know if it’ll taste like that, but it smells very bright like that.
[00:03:34] Adam Argyle: Oh no, you stole it right off my tongue. It was sitting there and you said, apple. And I was like, dang.
[00:03:38] Robbie Wagner: Ooh,
[00:03:39] Robbie Wagner: ooh. Okay. That is not how I thought it would taste after that. Smell a little smokier. , Maybe, you know, that slight peat.
[00:03:49] Adam Argyle: It did say lightly petered and sherry casks double distilled. Ooh, I should triple distill and then charge more.
[00:03:56] David K. Piano: I was gonna say, that’s the thing with the Japanese whiskeys is [00:04:00] like, it’s like sort of not the opposite, but just contrast to the super peed, you know, whiskeys like Irish whiskeys, things like that.
[00:04:07] Robbie Wagner: I was gonna say this is one of the most flavorful Japanese whiskeys I’ve had. I feel like. ‘cause usually they kind of, I don’t know if it’s on purpose. I feel like it is ‘cause they’re trying to be so efficient. Like they do a lot of like stuff with concrete and like, like trying to have like no flavor, almost it just is like drinking water that’s not bad.
[00:04:28] Robbie Wagner: It’s just also not super flavorful. So like this one much different lot, lot of flavor.
[00:04:36] Adam Argyle: so smooth too. It’s got a good burn, but man, it’s smooth and the, the way that it hit my tongue just spread across it. Maybe it’s the sherry too, so it’s got that really good kind of sweetness to it. Yum.
[00:04:46] Robbie Wagner: Alright. We have a very complex rating system on this show. It is zero to eight tentacles, zero being the worst, eight being the best, four and a half ish, somewhere, middle [00:05:00] of the road. Like, eh, it’s fine. I drink it again, but wouldn’t seek it out. Adam, what do you think?
[00:05:05] Adam Argyle: I am a big fan. I’ve been having that Glen Fit since we had, , our last guest, well, it’s last guest to me, but you had lots of, uh, but Neman Neman was on, and I’ve been really enjoying that. But this is going to overtake it for me. What a good sipper. I don’t need any water. I don’t want any chasers. I would like to enjoy this to its fullest.
[00:05:26] Adam Argyle: I’m gonna have friends over and share this. This is super good. Somewhere in the sevens. I’m gonna give it a 7.1257 and one eighth just to be weird.
[00:05:38] Robbie Wagner: Nice. David, what do you think?
[00:05:40] David K. Piano: so I actually don’t drink whiskey too much anymore, but my wife introduced me to Japanese whiskeys, , and it, it’s just such a different flavor profile from American whiskeys and honestly, Japanese whiskeys are really underrated. But yeah, floral, citrusy, fruity, those are the defining characteristics.
[00:05:58] David K. Piano: And I, I really like [00:06:00] this one actually. The flavor sticks. I would go solid seven. I know that’s an amateur score, so maybe 7.1 just like Adam, but
[00:06:08] David K. Piano: yeah. All right. Yeah, I don’t really have anything bad to say about it. , I feel like a lot of times when there is a flavor to a Japanese whiskey, it’s what I wish a scotch would actually taste like. , So I feel like they’ve like. Gotten the scotch flavors that I like and not the ones that I don’t.
[00:06:25] Robbie Wagner: With that in mind, I’m gonna be kind of the same as you guys. I’m gonna go flat seven. I’m not gonna do point anything, but we’ll say seven.
[00:06:32] Adam Argyle: I like that comparison. Yeah. The, the light peed is nice ‘cause you’re not giving a heavy, a heavy peed.
[00:06:38] Adam Argyle: but it’s, there is a good influence shared with the floral and the sweetness. Man, I’m, I’m a big fan right now. Well, uh, should we dive into a hot take or should I ask you a provocative question? What would you rather, what would you rather do?
[00:06:51] David K. Piano: Let’s start with the hot take. Then we will go into the questions.
[00:06:54] Adam Argyle: Hot take. Hot take. Okay. Is you state still dead to you or has it [00:07:00] zombied and kind of, you know, somehow found life in your workflow?
[00:07:04] David K. Piano: So here’s the thing with my conference talk titles. I, a few years ago, I had goodbye use effect, and then more recently I had a talk called Goodbye Use State, and I’m actually talking about that in November at React Summit. And so the point of these talk titles is basically to bring attention that these hooks might not be needed as.
[00:07:28] David K. Piano: Frequently, as you might think, like people tend to overuse use effect. And the same thing goes for use state. So with use effect, it is more understandable. It’s like, okay, why are we using this to fetch data or to update derive states or anything like that. But with use state, people are like, wait a minute, this is a really fundamental hook.
[00:07:47] David K. Piano: Why are you saying like, let’s get rid of it. And there’s actually a lot of good reasons for it. Um, and I, I could talk the entire time about it, but I won’t. But the point is that you should know [00:08:00] when and where you should use these kinds of hooks because overusing, even these basic primitive hooks can really, , just mess up , your application where it makes it very hard to maintain.
[00:08:12] David K. Piano: Like you’ve seen apps that have like 10, 20 use dates in a row. You don’t know which ones relate to which. And same thing with change, use effects. It causes a huge mess. You have an infinite loop, cloud is shut down and you have no idea why. it becomes really hard to debug. And so basically I’m just bringing awareness for when the appropriate time to use these hooks is,
[00:08:34] Robbie Wagner: Would you say that, uh, class-based React was better?
[00:08:39] David K. Piano: ah, man, not really. , class-based react was a little bit awkward, honestly. It was, it was a huge step up from like the, the days of angular and backbone, but it still had a lot of awkwardness. I personally think the lifecycle hooks were a little bit awkward and people tried to shove logic into there where it didn’t really make sense.
[00:08:59] David K. Piano: Where it’s like, [00:09:00] you’re doing critical business logic in components did mount, and it’s like, what does a component mounting have to do with this? But it’s just like, oh, well this is just an, an opportune time for this logic to run. So, yeah. classes are awkward in general. I wouldn’t say they’re bad.
[00:09:15] David K. Piano: They’re just awkward when over applied. And so reacts class-based components were, I don’t know. I it’s a nets positive that we have hooks. Now hooks are weird in its own rights, but I understand the trade-offs made to have hooks instead of class.
[00:09:31] Robbie Wagner: That’s fair. I just wish the naming like I actually did, like component Dim Mount tells you exactly , like when that’s gonna run,
[00:09:39] David K. Piano: Yeah,
[00:09:40] Robbie Wagner: use whatever. I don’t know. It’s gonna happen sometime.
[00:09:43] David K. Piano: that’s true. And, and, and people try to like just shove that logic into the callback of a use effect. And that’s wrong for many reasons too, because that’s not exactly the same thing as components will unmount or whatever it was. yeah, it’s just awkwardness all the way around.
[00:09:59] Adam Argyle: I keep thinking [00:10:00] about stupid jokes while you’re talking. I’m so sorry. But like the first one was I was like all the hooks. I was like, someone for Halloween should be Captain Hooks. You know, you got a React shirt on, you got, and then, but you have to have too many hooks. So it’s almost like the video, like too many cooks.
[00:10:16] Adam Argyle: Too many cooks, but you got like too many hooks and you’re just like, like how many hooks does that Captain Hooks have? Like, does he need more? I think he’s misusing that one called state, And
[00:10:27] Robbie Wagner: need like a big basket that you like can’t hold. It’s so heavy. You’re like dropping hooks out of the
[00:10:34] David K. Piano: I should
[00:10:34] Adam Argyle: Oh, the other one was
[00:10:35] David K. Piano: hook.
[00:10:36] Robbie Wagner: Yeah.
[00:10:38] Adam Argyle: ooh, they, well there’s how you could have a special little follower or something that’s like the, the hook fairy. , If we could have one hook, it would be that hook. I don’t know. And then you said Component did mount, and I was like, components ride horses. You know, like, when did that happen?
[00:10:53] Adam Argyle: Like, it’s that funny. Thank you. I thought they were stupid, but I’m gonna
[00:10:58] Robbie Wagner: I never thought about the terminology [00:11:00] of it mounting. That is kind of weird, but
[00:11:02] David K. Piano: Yeah.
[00:11:04] Adam Argyle: And yeah. What did it mount? I said horse, but that’s just a guess, you know.
[00:11:07] Robbie Wagner: yeah, who knows. Okay.
[00:11:12] Robbie Wagner: Yeah, I don’t know what this next question is about, so I’m gonna let you say that.
[00:11:16] Adam Argyle: Oh yeah, this is my provocative one. David, you wrote a tweet and it says, don’t sleep on child. And I was like, you sleep on children, but really it’s ‘cause I’m doing the stupid thing, you know? Or like the newspaper takes a segment of what you said. And so he, David says, don’t sleep on children. And it’s like, Hey, hey, hey.
[00:11:33] Adam Argyle: That’s not the whole thing. I said, you said if you’re using tailwind, don’t sleep on child selectors. They clean up your styles and eliminate repetition. Where did you see that And like when did you use it and you were like, I’m gonna go tweet about this tailwind thing. ‘cause it’s been
[00:11:46] David K. Piano: All right, so gonna take you behind the scenes of like. Why I come up with some of the random, like shit post tweets that I do.
[00:11:54] David K. Piano: It’s because I’m working on like three or four side projects at a time, and I’m working with [00:12:00] all sorts of, you know, technologies right now. Lots of reacts, lots of ai yeah, so, so I, I just run into weird things.
[00:12:07] David K. Piano: And so there, there was one instance where I’m like, Hey, my, you know, Claude, LLM, whatever, it’s doing this stupid thing where it’s like, you know, just adding the same padding to all the children, which is correct, it’s visually correct, but I’m like, you know what? I want the padding to be a little bit bigger.
[00:12:23] David K. Piano: And then I’m like, ah, man, now I have to go through and, you know, do it for each of those things. This is really annoying. Oh, and also, , because Claude Code and all of these, you know, LLM things, they love tailwind. they don’t really like writing CSS, but that’s probably because of the system prompts of whoever created these things.
[00:12:41] David K. Piano: They’re just all in on tail. I used to be anti tailwind for a while, but, and you know, I was big on CSS, still am love CSS love SaaS, love doing as many things as possible that I could do in it. , But with the age of LLMs, you sort of have to embrace tailwind just because it’s just the [00:13:00] way things are. , I was
[00:13:00] David K. Piano: like,
[00:13:01] Robbie Wagner: it only has one color.
[00:13:03] Adam Argyle: It’s purple or
[00:13:04] Robbie Wagner: Yeah.
[00:13:04] Adam Argyle: I don’t know. It depends if you’re color blind or not. I don’t know.
[00:13:06] Robbie Wagner: Yeah.
[00:13:07] David K. Piano: of gradient. ‘cause if this were CSSI would just, you know, write a descendant selector and then just apply the same style to all the children. There has to be something like that in tailwind. So I dived into the docks, stove, whatever the verb is.
[00:13:21] David K. Piano: and I saw that and I’m like, this is obscure, but I’m really glad that it exists. I’m gonna tweet about it because whenever I find something that’s unique. But potentially helpful to at least one other person. I’m like, I’m just gonna tweet it out to the world if someone finds it helpful. I’ve done my job.
[00:13:39] David K. Piano: I don’t care if people attack me or whatever. And trust me, I did get attacked for that tweet because they’re like, oh, you’re bringing back CSS, this is anti tailwind. I’m like, no, it’s not. I’m literally sharing a tailwind tip and you’re saying it’s anti tailwind. Like it’s something that exists in the tailwind, API for a reason.
[00:13:57] David K. Piano: and yeah, got a lot of hate for that, [00:14:00] but so basically all my, all my tips come from me just coding and being like, that’s interesting. Let me post about it.
[00:14:06] Adam Argyle: That’s the way that is how, viral tweets generally happen. I think if you sit down and try to write a pop song, , you write a garbage song. But if you sit down and you’re like, I’m going to explore this weird little thingy and hey, that brought me joy. And then you post it out, those can be some of your best ones.
[00:14:20] Adam Argyle: And plus you never complain it, you know, you never know. Some hit, some don’t. So cool. So you’re slinging from the heart is what you’re saying. You’re in the trenches, you know, you’re covered in mud and you’re like, I’m gonna use my muddy fingers to make a tweet. And it maybe someone will, you know, hear this.
[00:14:36] David K. Piano: Yeah. Trust me, if I were garbage posting, I’d post like, what is your favorite JavaScript framework or something and yeah, just that it tweets.
[00:14:45] Adam Argyle: I don’t think those work anymore.
[00:14:46] Adam Argyle: Yep.
[00:14:47] David K. Piano: Yeah.
[00:14:47] Robbie Wagner: So something that is for sure not controversial and has a 100% correct answer is H-T-M-L-A programming language.
[00:14:56] David K. Piano: It’s a good question. It’s really, really good question.
[00:14:59] Adam Argyle: [00:15:00] Deflection
[00:15:02] David K. Piano: I, I loved that question. Yeah.
[00:15:05] Robbie Wagner: Yeah.
[00:15:06] Robbie Wagner: No
[00:15:07] Adam Argyle: guess what I I have you on record here and I have a tweet. It says, CSS is not a programming language that should be underestimated, which to me says CSS is a programming language in between the lines,
[00:15:19] Adam Argyle: you
[00:15:19] David K. Piano: It depends. If you do the CNN thing, you could , say, oh, wait, no, he said it’s not a programming language. So
[00:15:27] Robbie Wagner: Yeah.
[00:15:28] David K. Piano: I mean,
[00:15:28] Adam Argyle: that’s what I mean. I’m choosing.
[00:15:30] David K. Piano: to be fair, CSS is becoming more and more of a programming language. And depending on how you define it,
[00:15:36] David K. Piano: I define it as a spectrum. A programming language is , you’re instructing the computer to do things, whether that’s fully declarative, fully imperative, somewhere in between.
[00:15:45] David K. Piano: You’re programming it to do something, to do some behavior. And CSS with HTML sort of works like that. Now, people can argue like, oh, CSS is not a programming language because it needs HTML alongside [00:16:00] it. But you know what also mostly needs HTML, JavaScript. Now people could say, wait, I can make a note app with just JavaScript.
[00:16:08] David K. Piano: Technically, no. You need c plus plus behind the scenes in order for it to work. But still, you know, they’re like, that’s why JavaScript’s a real language and CSS is not, but, I think that CSS and HTML are languages for programming some sort of behavior and desired functionality in the web.
[00:16:27] David K. Piano: So it fits within the spectrum of programming languages. I also think that the question is dumb. It’s like, it, it doesn’t really matter.
[00:16:36] Robbie Wagner: Yeah. Yeah. I mean, I think everybody like, you know, has always tried to make websites with no JavaScript, but yeah, try to make one with no HTML or CSS, like good luck. So, you know, if you’re trying to say bad things about either of them, like you need them, like, sorry.
[00:16:53] David K. Piano: Yeah.
[00:16:54] Adam Argyle: I am trying to think of a comparison where like, could you build a house and say like, the instructions , are [00:17:00] real programming and just the wood and the planks and the paint like shit. You know, that’s just, that’s, that’s just a means to an end of my execution of awesome instructions. You know? Is that like, what’s a good comparison?
[00:17:12] Adam Argyle: That would just make it sound so silly. Like,
[00:17:14] Adam Argyle: you
[00:17:14] Robbie Wagner: Like the architecture plans are the real construction, not the putting the wood up yet.
[00:17:21] David K. Piano: I mean, E even with whiskey, like some people might argue, oh, Japanese whiskey is not real whiskey. It’s not like our Kentucky Bourbon or like Irish, Scottish whiskeys, but yeah.
[00:17:35] Adam Argyle: They could try to say that, couldn’t they?
[00:17:37] David K. Piano: Yeah.
[00:17:38] Adam Argyle: They’d be wrong.
[00:17:42] Adam Argyle: I referenced you in a, in a previous episode, because you tweeted, I’ll give my honest opinion about Tailwind. It’s by far the worst state management library I’ve ever used. Now this caused a lot of contention and I’m still torn whether or not you are just saying X State is [00:18:00] great and Tailwind sucks.
[00:18:01] Adam Argyle: Or if you actually are making a comment about Tailwind being a bad state management library, which is it, answer it for us all.
[00:18:09] David K. Piano: I was honestly just shit posting at that point just because I didn’t realize how much attention my post on, , child selectors in Tailwind would get and how offended people would, you know, get at it, quote, tweeting me being like, this is the dumbest thing I’ve ever seen, , saying I have skill issues, et cetera, and I had no idea.
[00:18:31] David K. Piano: So it was funny like when I posted that what I predicted would happen. Would be that the CSS people will get angry at me for posting about Tailwind and saying, Hey, you could use this Tailwind stuff instead of CSS. But they were actually by and large, very civil. It was the Tailwind people who came after me, , not the Tailwind team.
[00:18:51] David K. Piano: Tailwind core team is awesome. I’m talking about people who live, eat and breathe tailwind every day. They’re diehard Tailwind [00:19:00] fans. , yeah, so I’m like, wow, I didn’t realize that posting about Tailwind would just be so controversial. So I’m like, what is the stupidest thing I could say about Tailwind?
[00:19:08] David K. Piano: And so it was that,
[00:19:11] Adam Argyle: Nice. I did. I extrapolated. I’m such a dork. I was like, he’s saying something super intelligent and
[00:19:17] Adam Argyle: no. You
[00:19:18] Adam Argyle: were like, no.
[00:19:18] Robbie Wagner: good reason.
[00:19:20] Adam Argyle: Yeah. Do you want to hear my made up? Shit I made about like what you said.
[00:19:23] David K. Piano: go for it.
[00:19:25] Adam Argyle: I’ll try to remember. It was basically like, , okay, so if you’ve got, got a logged in state or not logged in, you have basically, you have states of an element and when they have to change more than one class, it becomes a pain in your ass.
[00:19:36] Adam Argyle: Hey, that rhymes. but that was kind of the deal, like, hey, you know, like it’s not a very good state management library ‘cause if you have to do five states, you have to manage five groups of classes. And it was already kind of hard to read. And now you’re in nested class swapping scenarios where you have to swap many classes that change all these different properties and that’s just a terrible state machine.
[00:19:55] Adam Argyle: and that was just not what you said at all.
[00:19:57] David K. Piano: no, but I, I do get what you’re saying. [00:20:00] and honestly, with the kind of stuff that I’m working on, like with my side projects, the class names get really, really hairy because you have classes, then you have classes for dark mode, then you have classes for if it’s mobile or not. And granted, you have to do all these things in CSS anyway.
[00:20:15] David K. Piano: And then you have state-based classes. So for example, , I’m making a standalone stately editor, basically just redesigning the current stately one. And so there’s different, yeah, there’s different states. Like a node can be selected or it could be highlighted, or it could be dragging, et cetera. And obviously there’s no built in CSS properties for that.
[00:20:35] David K. Piano: So you could either go the react way and use variables or whatever. Or you could use data attributes, which is really nice because you could visually test those in the browser. So I use data attributes. Tailwind does work with that, but if I post that, it would be controversial, like, where are you using data attributes, blah, blah, blah.
[00:20:52] David K. Piano: Doesn’t matter. Obviously tailwind’s not meant as a state management library, but I feel like more developers should know [00:21:00] about how states affect styles. And to just stop polluting it with Boolean and, you know, finite states really help CSS styling too.
[00:21:09] Robbie Wagner: But then how can I have a super nested turnery? that’s what everyone wants.
[00:21:14] David K. Piano: No, just leave it at that. I
[00:21:20] Adam Argyle: That was the hell I was talking about earlier in the toast, where I was like, the hell that is, is spaghetti. And it could be worse. You could be in ary hell, uh, which actually sounds like a place that evil developers, we should, that we should send them there. We should make this place. Let’s have a religion that if you’re a bad developer, you go to turn area.
[00:21:36] Adam Argyle: hell Where you can’t even, you know, decipher whether or not it’s a question mark or semicolon, like, where am I in this? Hell, they’re like, we don’t know, but you’re deep.
[00:21:45] David K. Piano: Where you good
[00:21:45] David K. Piano: developers go? You have to finish Iterary.
[00:21:49] Robbie Wagner: Hmm.
[00:21:49] Adam Argyle: oh shit. Where does a good developer go? somewhere where, there’s not very much indentation. Everybody uses tabs [00:22:00] and, , you can only rebase.
[00:22:03] Robbie Wagner: Oh,
[00:22:03] Adam Argyle: I have no idea.
[00:22:05] David K. Piano: Okay. It’s a
[00:22:07] Robbie Wagner: I was gonna say, uh, any Astro website is where they go to.
[00:22:11] David K. Piano: Hey, Astros. Great.
[00:22:13] Robbie Wagner: Yeah.
[00:22:14] Adam Argyle: this is astro heaven, you know. Hey, whatever floats your boat, bro. You can just have an island over here and island. Hey, you get islands. Yeah. So I wanna go to the place where I get islands. Sounds like astro. Is it?
[00:22:24] Robbie Wagner: Mm-hmm.
[00:22:24] Adam Argyle: That’s funny. , I was thinking about you the other day ‘cause we had a component at Shopify and it was, supposed to be simple and it’s just like the image is loading in an avatar.
[00:22:32] Adam Argyle: So you have an avatar and ,, maybe it needs to load an image if there’s an image provided. So first off, you’ve got like, is there an image or not? Then you have to wait for it to load. And so at first it was just a Boolean, like you’re saying, huh? Is it loaded or not? And then the amount of like nested states that showed up.
[00:22:51] Adam Argyle: I was just chuckling to myself. So like we had like, has it loaded yet? Which was an amount of time you need to wait because if it hasn’t loaded yet and it’s [00:23:00] exceeded a certain amount of time, we wanna fall back to something. ‘cause clearly it’s taking a long time and you need to see something.
[00:23:07] Adam Argyle: So then, okay, so now we have like, has it, has it been 200 milliseconds? Then you should show the initials of their name over the circle. That way there’s like something, okay, cool. Oh, but crap, it just loaded the image like 50 milliseconds after we put the initials there and that looks like shit.
[00:23:22] Adam Argyle: So now we need to add a deep bounce. So now after 200 milliseconds, deba the actual loading of the image so that it doesn’t interrupt this initials that we just showed. And it’s just like the amount of states that needed to be handled was this little tree that just kept growing and it was just like, this is supposed to be as the image loaded or not yet.
[00:23:39] Adam Argyle: and I loved it. It was just a classic scenario that I could hear you whispering over my shoulder. You shouldn’t have started with Boolean.
[00:23:46] David K. Piano: Yeah, honestly, as you were saying that I was visualizing the state machine, like even that part’s the most interesting where you show the initials and then it immediately shows the next thing. , Obviously when you’re in that [00:24:00] state, that’s when you should have sort of that grace period of like, Hey, let’s wait a second.
[00:24:03] David K. Piano: Before like, man, I see so many apps that just have that jagged UX where it’s like, it’s not there just getting, it’s there like Reddit all over Reddit,
[00:24:13] Adam Argyle: Yeah, in a state machine, how would I deba and guard? So I know there’s guards, so it’s like, in this state you can only go to these other states, but how do I guard it on a certain amount of time? So I’m like, if you’re in this state, never allow you to exit this state until this other timer has gone off.
[00:24:27] Adam Argyle: that it, it all of a sudden unlocks the gate. And so you’ve got a state that’s waiting to change, but it’s like a horse wanting to mount and run. Okay, wait, that was just a stupid try to call back. But anyway, you see what I’m saying? Like how would I guard and time a state change like that in state?
[00:24:43] David K. Piano: Yeah. Yeah. So, so you would have like a state where it’s like showing initials and then when an image, you know, finally loads, that’s an event. So you would go to another state, or it could be a state inside that state, depending on how you wanna organize that. And in that state, let’s just say [00:25:00] pending image or something.
[00:25:02] David K. Piano: You would have is called an always transition. It’s basically a transition that no matter what, it’s gonna happen after some delay or whatever you want. Actually just, just kidding. It’s called an after a delay transition. so after the delay transition, then it goes to, you’re showing the image state.
[00:25:20] David K. Piano: So it’s literally just three states. So you’re here, image shows now you’re in the waiting state. After a delay, you go to the image state.
[00:25:27] Adam Argyle: Awesome.
[00:25:28] Robbie Wagner: Let’s see. Rails or Laravel?
[00:25:31] David K. Piano: I’ve never used Rails. Actually. I, I’ve seen code examples. I’ve never tried it. I have used Laravel or Laravel, however you want to pronounce it, in the past. Even many, many years ago when I tried it out, I was like, this is such an awesome framework. Like it’s all batteries included, like there’s a module or whatever you call it, a package for everything.
[00:25:54] David K. Piano: Like they’ve thought about everything, and I really do love the whole batteries included [00:26:00] aspect of it. You know, we also have Django for Python, there’s Phoenix for Elixir. There’s just all, and of course there’s Ruby on Rails, there are frameworks like that in JavaScript.
[00:26:10] David K. Piano: They’re just not as popular as next, which is so bare bones compared to, you know, all of these other frameworks that I mentioned. So,
[00:26:19] Robbie Wagner: Yeah.
[00:26:19] Robbie Wagner: Why aren’t they more popular?
[00:26:21] David K. Piano: I honestly don’t know all the money has gone to this meta framework stuff,
[00:26:26] Robbie Wagner: Tom Preston Werner has been doing Redwood for, I don’t know, a long time now, like six years, seven years more maybe, I don’t know. It’s basically a rails or something, batteries included, but for React. And it’s like, why do people not want that? Why do they like the pain of like, I could put my files anywhere.
[00:26:48] Robbie Wagner: I can do whatever I want. Like I guess the freedom maybe.
[00:26:51] David K. Piano: think that’s it. I think that we have a lot, I mean, obviously there’s a lot of PHP developers, but we have a lot of JavaScript developers and they [00:27:00] all have lots and lots of different opinions, so you can’t really build a one-size-fits-all thing that will get super popular because the minute someone says it includes something that I don’t like, then they’re just going to, you know, dismiss it or be like, I’ll build it myself, or I’ll move to something else.
[00:27:18] David K. Piano: The state of things is like. Let’s say that you want to prepare a simple dinner. So you go to the grocery store, but it’s only a grocery store for vegetables and fruits. So now you have to go to a different kind of grocery store, pick the stuff you want. And it turns out that all of the different stuff, the best packages are ones that are SaaS so you have to pay a subscription for them.
[00:27:40] David K. Piano: it’s all just very fragmented. It is possible to have a really good, like, not batteries-included but you include everything that you need experience, but it’s gonna be costly and it’s going to be just lots of fragmented pieces that are trying to work together. , I guess the closest, I would say, the closest I’ve seen to [00:28:00] like this semi-popular, like batteries included framework is convex.
[00:28:05] David K. Piano: I’m not sponsored by them. In fact, I was pretty opposed to them when I first heard about them, but I’m using them now and I love them they do include a lot out of the box and I really hope to see the JavaScript ecosystem move towards that. Where it’s unashamedly, here’s my opinion, you could adopt it or not, but trust me, your life is going to be a lot easier if you defer your opinion making to this framework rather than trying to, have opinions.
[00:28:33] CTA: This just in! Whiskey.fund is now open for all your merch needs. That’s right, Robbie. We’re hearing reports of hats, sweaters, and T-shirts, as well as a link to join our Discord server. What’s a Discord server? Just read the prompter, man. Hit subscribe. Leave us a review on your favorite podcast app and tell your friends about our broadcast. It really does help us reach more people and keeps the show growing. [00:29:00] All right, back to your regularly scheduled programming.
[00:29:06] Robbie Wagner: Yeah, so couple of things about that. I wonder if both. Opinionated frameworks being easy for AI to follow because they’re so opinionated is going to be helpful and make people want to move toward them so they can build stuff way quicker with ai. Or if, because AI is getting better and better at doing whatever you want, if it will make people do more of just random shit that they’re putting together because like, you know, you can just tell it, ah, I wanna use all these services.
[00:29:37] Robbie Wagner: I want you to time ‘em together. I want you to figure it out. I don’t need a batteries included thing ‘cause I want you to do it all like, but what do you think about that?
[00:29:43] David K. Piano: That’s a really interesting question because it’s sort of a double-edged sword right now. You have basically two sides of the coin. The first is let, let us like just go down a well trodden path where, for example, let’s do everything in next or everything in Laravel, [00:30:00] the problem with that when it comes to AI is that it is basing all of its code and all of its knowledge on the average developer.
[00:30:09] David K. Piano: The point is that AI doesn’t produce good code because it wasn’t trained on good code. It was trained on your code.
[00:30:15] David K. Piano: And so by that I mean, it’s average developer code.
[00:30:19] David K. Piano: So what is going to include the common foot guns and mistakes that developers make? And those are very, very present in the well trodden paths. So your typical React app, you ask it to make, react anything, which seems to be very popular with, app builders. It’s going to include your use effects, your use dates, and all of these anti-patterns that Advanced, you know, more senior React developers would not do because they know better because they actually read the docs. But the AI is more biased on the average code than the actual documentation, and it doesn’t like keep up to date with the docs as well as it should. On the other hand, [00:31:00] you have code that it’s like you’re trying to piece together different things.
[00:31:04] David K. Piano: You’re trying to do something unique and that’s going to get better as AI progresses, but it, it won’t be as good as your standard. Like, well-traveled path of, we’ve made the same, TicTacToe or to-do list app millions of times before in react, so I could just regurgitate it to you in my sleep.
[00:31:23] David K. Piano: so yeah, I, I, I think there’s trade offs with either approach. I am. Bullish on the second approach of AI getting smart enough to actually combine these services. But there’s still a lot of work to do there. Like I said, AI does not have like the most up-to-date knowledge of documentation when new versions are released.
[00:31:43] David K. Piano: It even does silly stuff like manually update, like package do js ON. So you know it’s gonna go for a lower version than it should. yeah, so there, there’s trade-offs all around and I think that any good developer should be well aware of the trade-offs of either approach. So I think that [00:32:00] hopefully developers are going to go this path of trying unique solutions, not going down the same path every time and just exploring what there is out there just because nowadays it is a lot easier to try new things like remix just came out, , with their new like whole anti react, pure dom approach, pure events approach, and.
[00:32:21] David K. Piano: LLMs, like they already know the dom, they already know all of these events, so they could write that code pretty easily, even though remix is a completely new framework. so I just think that developers should not shy away from new stuff.
[00:32:34] Robbie Wagner: Well said. And leaning into native browser things is also, uh, helpful because yeah, AI will know how to do those unless you’re interviewing right Adam?
[00:32:44] Adam Argyle: Yeah. They, they don’t want to hear that. They wanna know, uh, well, they want Captain Hooks to show up is what they, it’s like, I got eight tentacles. Each one knows the hook code really well. Oh, that’s funny. Uh, you keep calling it the well trodden path. And I was [00:33:00] listening to, oh Man, A celebrity names. I suck at them so bad.
[00:33:03] Adam Argyle: Who’s the, uh, famous artist guy who’s helped tons of people with the, he’s a producer, Rick Rubin. Oh, shit. I remembered the name Rick Rubin was talking about, , AI the other day. And he, he was like, remember, , punk rock? And it was, it was like so approachable in like a day you could pick up an electric guitar and learn a few chords and start a band.
[00:33:23] Adam Argyle: And he was like, that’s what AI has done to, , web development is he’s like, you can sit down in, in a day. Play a song and you’ve never been able to do that before. And sure it’s a mainstream song and sure it’s not creative and sure it’s not piecing together historical orchestral remnants into a new modern masterpiece.
[00:33:44] Adam Argyle: That was a pretty good made up phrase right there. I’m gonna write that down Anyway, whatever. but I like that, like you keep explaining that. it’s just the current state of where we are. It’s almost like AI right now is only good at power cores. Occasionally it makes a solo and you’re like, dude, did you see it go, I had to really work for that.
[00:33:59] Adam Argyle: Robbie knows this. [00:34:00] He makes amazing, , art for each of these episodes. And if you look at the art, you’re like, that was not a one-shot prompt. That is a crafted prompt. And so you see people like taking power cords, taking these things and then saying, well, here’s how I express myself with these.
[00:34:13] Adam Argyle: , And so it’s like democratizing web development through the sort of use of power cords. And as much as I don’t like Rick Rubin, , I thought that was a pretty good, uh, description. So. I
[00:34:24] Adam Argyle: don’t know. You kept reminding me of that as you were describing what was the state of things.
[00:34:28] David K. Piano: Yeah. And react and tailwind are the power cords of the web right now of the, of the AI code generated web.
[00:34:36] David K. Piano: I should
[00:34:36] Robbie Wagner: Yeah. People will either love that you said that or hate that
[00:34:39] Adam Argyle: yeah, that’s
[00:34:40] Robbie Wagner: I like power cords personally, but, you know,
[00:34:44] Adam Argyle: Uh, speaking of ai, I’ve been, uh, I’ve been like really conscious of, so I, I, I’ve got cloud set up, I have all sorts of AI agents set up and skills just came out. Have y’all, uh, seen skills that came out with Claude last week or just a few days
[00:34:57] Robbie Wagner: skills? No, I don’t think [00:35:00] so.
[00:35:00] Adam Argyle: David, do you wanna describe skills or do you want me to.
[00:35:03] David K. Piano: I want you to, but I’m going to try to explain it. skills are basically a markdown file that gives Claude domain specific knowledge on how to perform certain things. I haven’t tried them out yet, but that’s just the , what I’ve gotten from their announcements.
[00:35:19] Adam Argyle: It’s great explanation. It’s almost like where you give an agent a, a role. You’re like, you are an expert web developer who always writes perfect TypeScript, but this is more specific. So that was kind of a generic role. And this is saying you are good at. whimsical animations, and you would go give it not only just this description, but like what it’s good at, but it examples, it says like, here’s three amazing, uh, animations.
[00:35:43] Adam Argyle: , You produce these, , in your sleep or whatever. And so we have these skills that are sort of competing with MCP servers, where an MCP server might’ve taught an LLM something on the fly. But that requires an endpoint, requires hands shaking and conversation back and forth. [00:36:00] Lots of tokens. And at this point, they’re basically like, what if we took an entire MCP server and squished it down into this little markdown file and rapidly condensed it and then had it, it’s an ability to invoke these specific, attributes when a specific skill is needed.
[00:36:15] Adam Argyle: So then you extrapolate a little bit more, and people have already created these, like skill slrp. And so like, if it doesn’t know the skill, it’s like the matrix, where if you don’t know it, it jacks it into the back of the head and all of a sudden, like you’re, you can fly a helicopter. And so people are making Claude now, connect to the internet, go learn a skill on the fly.
[00:36:33] Adam Argyle: Like literally creating the markdown file. So it’ll go to a website, turn the entire documentation, summarize it into a skill, and then use that skill, uh, in the moment. And so I’ve been following all these things. It’s, it just sounds so cool for something to be able to learn on the fly.
[00:36:47] Adam Argyle: And then I’m reading about the latest AI hacks that are happening right now and all of the really interesting ways people are hacking ai, especially through these AI browsers.
[00:36:59] Adam Argyle: And I wanna list a [00:37:00] few of them here because they’re so interesting. Like one of them is, , hacking you through your CSS file. So the CSS file just has a comment block. Yeah, it’s a programming language. , You know, an LLM reads, it’s like anything in LLM or read. People are like gonna start nesting little prompts into that.
[00:37:16] Adam Argyle: Steal your stuff. And if you’re in an AI browser. You’re not only just stealing what’s on the page, you’re stealing the credentials that that AI has, , across all of the tabs. It could, it can open tabs in the background and do things without you even seeing. ‘cause that’s just how it works right now. It hits 20 websites and then goes and finds the results and gives you the answer, right?
[00:37:35] Adam Argyle: But what if it goes and hits 20 websites and buys 20 things? , And you don’t even know. It’s like a completely invisible thing. So I just like wanna read a few of these ‘cause they’re. , Really wild. So malicious pages embed instructions in their HTML. Your agent processes the page with your cookies and your session tokens, and when it follows those hidden commands, it acts as you bypassing same origin protections entirely.
[00:37:57] Adam Argyle: Uh, here a hidden prompt in a comment made the [00:38:00] agent read a user’s email, OTP, and hijack the session by making cross site requests. Even after patches and mitigations attack vectors remain zero click attacks. Listen to this one. Your AI agent reads your emails automatically. An attacker send you a document with embedded commands.
[00:38:15] Adam Argyle: The agent extracts your data. It just reads the document. It’s like, Hey, let me read this document to give you some context about this email, that document, you didn’t even click it, you did nothing. It’s full of malicious prompts and it just starts stealing your shit right off the bat. So like we have basically, like we have years of the, of browsers and learning to protect us as we browse the internet and AI browsers are showing up and hitting the reset fucking button.
[00:38:40] Adam Argyle: Uh, just an entire, like bink and everything we’ve ever learned now needs to be retaught to LLMs because they just take prompts at face value and they don’t really know when and where a prompt and there’s no protocols to say that this prompt was user generated versus you scrubbed that shit off a fucking webpage.
[00:38:56] Adam Argyle: It’s all the same in a lot of cases. And so, [00:39:00] especially when it’s trying to be proactive. and Then the real tension here is like, in order for all of this stuff to be good. It has to know everything and, and when it knows everything, that means when you get proned, you get proned everywhere.
[00:39:13] Adam Argyle: All of the things that you’ve logged into just became accessible to this thing and it knows what they are. It’s not even a mystery. It doesn’t even have to crawl to discover it. There’s a history. It could go into the tabs you currently have open and just be like, mm, I smell a victim. You know, like,
[00:39:30] David K. Piano: Yeah.
[00:39:30] Adam Argyle: and it’s just like reading this stuff in this month of October.
[00:39:33] Adam Argyle: And I was like, this is the scariest thing I’ve heard this, this month is the creative, uh, and there’s just like a list. I’ll put it in the show notes. There’s just a list of creative, terrifying ways that the browser has been protecting us for 25 years that LLMs just unwrapped and gave to people on silver platter.
[00:39:50] Adam Argyle: Was that scary y’all too? Or is this conspiracy theory shit and I should like, cool down. What do you, what do you think?
[00:39:55] David K. Piano: I mean, it is scary, but at the same time, it doesn’t scare me because these kinds of [00:40:00] things have, I don’t wanna say they’ve always existed, but they’ve existed for a while in the context of browser extensions. When you install a browser extension, you’re implicitly giving trust to that extension to do a lot more things than a normal webpage can do.
[00:40:15] David K. Piano: I’ve worked with browser extensions for, for years now, and they can do a lot that normal people, even developers don’t realize that they can do. They could, you know, read cookies, read your other tabs, just read the. page contents everything. So basically, yeah. When, when you have AI controlling your browser, like, at the time of recording, , I think it’s OpenAI Atlas came out.
[00:40:38] David K. Piano: So, you know, we, we have that new, I mean, there’s also dia and comment and whatever, and probably just numerous other browser extensions that are AI powered. Like, there’s always that risk of like, Hey, the website is going to inject some of the nefarious stuff into the prompt, and then that’s going to leak into the agents and read all of your stuff.
[00:40:59] David K. Piano: But that [00:41:00] risk was always there with extensions too. It is scary, but you just always have to be cognizant of that.
[00:41:06] Adam Argyle: Nice. How about you, Robbie? How you feeling?
[00:41:09] Robbie Wagner: Yeah, I mean I feel like it’s like anything else where if you’re a little bit educated on the problem, it’s easy to mitigate, but it’s like the people that it’s gonna get is like you. Like tell your mom, yo, go get , this new AI browser. Nope, not a good idea. Like, able to like notice things that like could be a problem and not fall into that trap.
[00:41:31] Robbie Wagner: But yeah, I think the wider population, if this starts to be a thing that everyone has, is going to have a lot of problems for sure.
[00:41:39] Adam Argyle: So the reason I brought up skills in the beginning is because it’s easy for us to assert that the browser, an AI browser is
[00:41:46] Adam Argyle: more generic and problematic for our moms and our, family or whatever, right? But the skills issue that I, so I just last night was looking at a GitHub repo that’s like skills on the fly.
[00:41:57] Adam Argyle: That’s what I was telling you. Skills on the fly sounds super dope, [00:42:00] right? That shit is naively visiting the site and slurping it up and stick ITing into a skill which you run on your command line. Okay? So now you are the dork, okay? It’s not just your mom, it’s you trying to slurp and sidetrack or, or sidestep all sorts of stuff.
[00:42:16] Adam Argyle: And you, you just did that like the tool. Are we gonna ask all these tools that are slurping up and creating skills and writing MCP servers to also make sure that they have security inside of them? just seems like a.
[00:42:26] Robbie Wagner: It is a
[00:42:27] Robbie Wagner: big industry that will be coming up.
[00:42:30] Adam Argyle: yeah. and I just, uh, I’m trying to be very conscious of it, because a, ‘cause it’s interesting.
[00:42:35] Adam Argyle: Hackers are always interesting. What a creative field and just to think outside the box like that. But anyway, that’s, uh, that’s my little story.
[00:42:42] David K. Piano: Can I tell you what I love about state machines? I know it seems like a non-sequitur, but it’s actually related
[00:42:49] Adam Argyle: I love this dude. Bring it back.
[00:42:51] David K. Piano: alright. No, it, it, it’s very, very related, like.
[00:42:54] David K. Piano: All of the stuff you’re seeing is very valid with like security concerns and also like just prompt injection in [00:43:00] general. Ever since, you know, GPT-3, two or three was released, people were saying, oh, how can I get around it?
[00:43:06] David K. Piano: How can I spit out the system prompt or make the AI do stuff? People are even just going on website chat bots and being like, oh wow, it issued me a 1000% refund, so I am entitled to money. Like stuff that should be impossible. And so people are they’re sort of Ewing the whole deterministic nature for this non-deterministic LLM that’s just like, Hey, I’m gonna do whatever I want, but since I, you believe that I’m smart, it’s probably going to be the right thing.
[00:43:36] David K. Piano: But of course, with prompts, you could trick it to do the wrong thing, which has been proven time and time again. And so that’s why. I’m still bullish on state machines. So you could think of state machines as the dumbest version of ai just because it’s deterministic. Like what that means. People throw those words around.
[00:43:54] David K. Piano: But with determinism, you know, given the same inputs, you’re always going to get the same outputs. [00:44:00] Non-determinism, you’re not going to, you’re not gonna get that. And also with state machines, when you’re in the states, there’s only a certain number of possible actions that you could do. So apply state machines to LLMs and now you have something where it’s like, even if someone was suggesting, oh, hey, this prompt says do something nefarious.
[00:44:20] David K. Piano: The agents which could have an underlying state machine can say like, Hey, I know you want me to do this, but I have three possible actions to choose from. And even if I wanted to give you the bank accounts information or whatever, that’s not possible. There’s only three things to choose. So you have that extra mathematical layer of protection.
[00:44:42] David K. Piano: And by mathematical, I mean it’s mathematically impossible to do something that’s outside the state machine. All it, it’s sort of like railroad tracks. You could only go in those unless something really bad happens. But, , you could only go down one of those paths and so you could actually control the nature [00:45:00] of something non-deterministic like LLMs by saying, Hey, you’re restricted to only these actions.
[00:45:05] David K. Piano: And that’s something I really wanna see more of, especially from a security standpoint. It’s just saying you’re only allowed to do these things in the states.
[00:45:14] Adam Argyle: That’s an awesome answer. a quick follow up is that, , anthropic just came out and announced Claude can now run in sandboxes. So it’s not a state machine solution, but they are constraining, outta the box. This reminds me of Node versus Dino
[00:45:29] Adam Argyle: Node, , is a free spirit. You can give it mushrooms and it will trip.
[00:45:34] Adam Argyle: Dino will be like, no, I won’t take those mushrooms unless you said it’s okay. You know, like, did, did you spin me up and say it’s cool? Then that’s cool with me. so like you have these like, kind of like opposing mentalities. So just in general it’s the same thing. It’s like, again, like ai, in order for it to be as marketable as it needs to be, it needs to be unfettered.
[00:45:53] Adam Argyle: And so you’re suggesting that it’s on rails and that it can’t make decisions outside of its current perspective that you’ve pre-programmed. [00:46:00] Which by the way, I think is a, a brilliant comparison and a very effective thing that could really prevent a lot of security issues. However, you’re gonna have marketing and UX people show up and be like, well, if we start to make people choose to allow stuff, it causes extra clicks and extra abrasion in the experience.
[00:46:21] Adam Argyle: And we already see that with clot and shit and people hit yellow mode. So many people. Run. And yo, I’m sure I have, I, I’ve, okay, I’ve run my stuff in yolo. I’m like, you know what? I’m so tired of a disa allow list. I’m like, just do it all. I trust you. And then I’m like, I need to stop trusting, because the more I read about this stuff, I’m like, I, I cannot, yo they should take out YOLO mode.
[00:46:42] Adam Argyle: I don’t know.
[00:46:42] Adam Argyle: It’s as, as convenient as it is. It’s asking for issues, right? But this is the tension that we have to deal with, which is like, I’m a lazy butthole and I want to hit go and then have it go, versus I wanna babysit this thing and be a dad. Be like, oh, I have two agents running right now, and you’re misbehaving.
[00:46:59] Adam Argyle: You know, I need to tell [00:47:00] you again. I want, so it’s like, I, I get both sides of this and as a user, I want one, but I have to respect what I’m en enabling. And I don’t know if there’s gonna be education or UI or state machines that protect people from this, but it’s a real problem. I.
[00:47:15] David K. Piano: Yeah. Uh, honestly, it’s like autopilot. even right now with, uh, autopilot on Tesla or cars like that, they still want your eyes on the road. They want you paying attention fully. They want it to be supervised, even though it is smart enough to just navigate like situations that you might have never encountered in your life.
[00:47:33] David K. Piano: And so. I know the desire to be lazy. Trust me, I, I have like, let Claude go loose and be like, yeah, yeah, just edit it. Do this big feature and then just tell me when it’s done. And then I go and I see the feature. I’m like, okay, I need to revert this entire thing. I don’t know how much money that costs me.
[00:47:50] David K. Piano: It just sucks. So now that, that’s why I really wanna post this on Twitter. Like it’s sort of a, you know, the mid width curve you have the, like [00:48:00] the, the bell curve, so Yeah, yeah, yeah, yeah. So, so you have the people on the left side who are like, oh yeah, I use AI too. Tab, tab, tab, and press enter. And then you have the people in the middle where it’s like, I have teams of agents and sub-agents and deep agents working together and doing all sorts of things and controlling my desktop.
[00:48:18] David K. Piano: And then you have the people who are deeply working with AI where they’re like, yeah, I just tap, tap tab, use it for autocomplete and small tasks at a time. In fact, uh, I don’t know if you’ve seen the car Pathi interview. Really, really good stuff. , But Carpathia is like one of the top AI researchers yeah, that, that’s exactly how he uses AI too.
[00:48:38] David K. Piano: He uses it in small parts and he uses it mostly for auto-complete, and that’s how I work as well. I don’t know all of these agent clusters and subagent stuff that people are doing. I don’t do it. I don’t need it. I just like having a little bit more control.
[00:48:54] Robbie Wagner: Yeah, I’ve been lazy recently and I’m glad that there are actually a little bit of [00:49:00] guardrails because I was using, , open code to work on a VE plugin earlier. I was building the v plugin in the context of an app because it needed to use it. And then I wanted to split it out and like publish it to NPM as a separate package.
[00:49:13] Robbie Wagner: And I was like, oh, cool, dope. Just move that to another folder and like publish it for me. And it’s like. I can’t. And I was like, oh wait, you actually have guardrails where you can’t just edit the rest of my system. That’s kind of good. so you do have that small, small little bit of help there. But uh, yeah, we had a guy on, , the guys from Friday deployment spirits.
[00:49:32] Robbie Wagner: I don’t know if like how serious he was about this product, but he said he was making a thing called maybe not AI or something like that, and it was like just security for ai. It’s like, maybe you shouldn’t AI on that. Like here’s the guardrails you need for like, how to do that. Right.
[00:49:48] Adam Argyle: What a tough problem. It’s like we need something at the network level. ‘cause the file system level is, , people are giving access to folders really quickly. I don’t even think people read the long path. It’s like, [00:50:00] Hey, I’m trying to do this thing, blah, blah, blah. Is that cool? And people are like, allow, obviously get on my face watching Netflix while you work, fool.
[00:50:08] Adam Argyle: You know, like,
[00:50:09] David K. Piano: I think that’s such a bad habit that AI is training us, Unknowingly training us to do just like the days of like, oh yeah, that’s a really long pr, they probably know what they’re doing. I’m just going to approve that.
[00:50:21] Robbie Wagner: Mm-hmm.
[00:50:21] David K. Piano: it’s so bad.
[00:50:23] Robbie Wagner: I think it’s similar to gambling, honestly. Like you’re, it’s the dopamine hits of I’m auto doing. I’m just hitting go, go, go, go. And I want, like when it works, you’re like, oh
[00:50:33] Robbie Wagner: yeah, that felt good. Like it did it
[00:50:35] Adam Argyle: just a slapper. Oh my goodness. That’s good call, dude.
[00:50:38] Robbie Wagner: Yeah. So we’ve talked a lot about tech. Tell me about pianos.
[00:50:43] David K. Piano: Pianos. yeah. I, I have one right here. It’s my Lego piano. That’s another one here.
[00:50:49] Adam Argyle: It’s awesome. I love it.
[00:50:51] David K. Piano: I, I still play piano. , It’s my favorite non-tech thing to do, like just when I’m done working or [00:51:00] even in the middle of the day. Working on some Christmas tunes right now. I know it’s a little bit early, but
[00:51:05] David K. Piano: like, yeah.
[00:51:06] David K. Piano: Just, just for fun,
[00:51:08] Robbie Wagner: Nice,
[00:51:08] Adam Argyle: call. I need to remember, uh, Christmas on like jingle bells on banjo. I learned it a year ago. I’m sure I’ll pick it right back up if you’re good call. I need to start ramping that practice back up.
[00:51:18] David K. Piano: yeah. Yeah. And I, I feel like it’s important to have just some sort of completely non-technical hobby just to let your brain reset. it’s sort of like doing clear context from Claude where it’s like, yeah, you have all this junk. Just forget about it. Go touch grass. Come back to it. So for us, that thing for us is just, you know, whatever it is outside of the computer.
[00:51:42] David K. Piano: So that’s, that’s piano for me.
[00:51:45] Robbie Wagner: Nice. So possibly related. If you weren’t in tech, what other career would you choose? So this can also be, if you wanna, like, sky’s the limit. If you want to just gain a skill without like having to do any work. [00:52:00] Like what’s your ideal thing to just do all the time?
[00:52:04] David K. Piano: I mean, I, I went to college for piano, so it was sort of my dream to just, I dunno, play piano all the time, but now it’s like, just sort of a post tech goal where it’s like, once I’m done and retired, all I do every day is practice for a few hours. And
[00:52:21] Adam Argyle: That sounds dreamy, man.
[00:52:22] David K. Piano: be
[00:52:22] Robbie Wagner: does piano help you with typing? if you’re learning to play really complex piano things, does that make your typing speed faster?
[00:52:31] David K. Piano: I think I have pretty fast typing speed. but yeah, like just with certain combinations of keys and stuff, I guess I have more of a muscle memory or I, I don’t know if it’s more than the average person, but I, I do have a lot of muscle memory for just. a ton of like vs code keyboard shortcuts.
[00:52:48] David K. Piano: to the point where I can’t tell you exactly what the keys are. I just know if I need to do something, like go to a reference or like move this up a line. I know what buttons to press, but I [00:53:00] cannot tell you exactly what they are. it’s in there, and I, I, I think that that’s some of the piano coming out and
[00:53:07] Robbie Wagner: yeah, yeah. I haven’t played piano in a long time. I did lessons for like three or four years growing up, I could, like, if I tried to do anything now, like the thing I remember being hard, like learning is like. Doing like a, a beat with one hand, like just playing a chord and then doing like notes with the other hand that aren’t like the same, doing that I feel like would open new pathways in your brain that help you with all things that you need to use your fingers for.
[00:53:32] Robbie Wagner: So I feel like there could be a correlation.
[00:53:35] David K. Piano: I, I, I think so too. Yeah. I don’t know the exact psychology behind it, but a lot of good developers I know have also done music or some sort of fine arts. I mean, Adam plays guitar, so
[00:53:49] Adam Argyle: I played piano first. I did four or five years of piano, and I was really weird in that I played a lot of the video game music that I’ve, here’s a fun little dive into history. I [00:54:00] listened, so it’s like a final fantasy. I would go get the midis and a midi was a multilayered, instrument, variant of a song.
[00:54:08] Adam Argyle: And you could go break out various, , instruments from the midi and I would go and I would load them up. It’d be like 10 instruments in this song, in final fantasy or parasite or whatever it was. And I’d go find the two that I wanted to play on piano. And I’d isolate them, I’d delete the rest. And then I found a tool that would convert midi to sheet music.
[00:54:26] Adam Argyle: And then I would print out, I, I made tons of my own sheet music and then would sit down at the piano. , ‘Cause I got tired of playing like, painting along the ocean, like all these songs and like, they were beautiful songs. Right. You know, like, don’t get me wrong, like, I loved them, but it’s just like,
[00:54:42] Robbie Wagner: Oh, the Beethoven Classic painting by the ocean.
[00:54:45] Adam Argyle: I’m trying to remember the name of the guy.
[00:54:47] Adam Argyle: There’s like a couple people that I was like, I played a lot of their songs and they’re like, they were, they were cool. But it’s just like, I was 14 and I was like, I need to get chicks. , Maybe they’re like video game music. Which was wrong
[00:54:58] Robbie Wagner: You know what’s, [00:55:00] what’s, very cool?
[00:55:02] Adam Argyle: check out this SRO song I can play on piano. Like, holy. Anyway, um, that, that was what I did and I had a lot of fun, , like creating my own sheet music and, uh, piano. I, I just wanted to comment on like, muscle memory is so cool. Like how cool, how cool is it to sit down and be like, my brain is not gonna do the work right now.
[00:55:22] Adam Argyle: My muscles are, ‘cause I don’t know what the hell’s going on. But for some reason when I go brain that song from 25 years ago, and it goes, do, do do do do, do, do. And I’m like, I don’t even know what’s going on. Like, my head is somewhere else and my hands, they know it all. Like, what a cool thing. Yeah. So cool.
[00:55:40] David K. Piano: Same thing with code two. Like sometimes when I’m refactoring it’s like I know exactly where to go, which files to go to, and it’s just sort of mindless. And I, that’s why I love refactoring. I think it’s like piano or it’s like that road to practice. or doing scales.
[00:55:55] David K. Piano: Like that’s refactoring to me. Like I, I won’t let AI do [00:56:00] refactoring. I want to do it myself. I might let it tap, tap, tap, but otherwise, I don’t know. I just find joy in it.
[00:56:07] Adam Argyle: Did you ever play live music and do this thing where, like I remember it was so hard to even get good at playing guitar and singing at the same time. But then after I’d played a bunch of shows I would be playing and singing and I would be, , somewhere else, like my mind would be like looking at people and thinking I would even process shit I needed to do after the show.
[00:56:27] Adam Argyle: I’m in the middle of doing something extremely complicated. Yet, somehow I’d done it so much, it was a mindless activity. And now I could spend my brain power doing something else entirely like bodies and the humans are fucking cool. It’s kind of the thing here, like we are incredibly powerful units on this planet, and music is like one of those things that like, somehow we can conquer this very complex, very emotional, very, like the planet doesn’t want us to play music.
[00:56:59] Adam Argyle: And we’re [00:57:00] like, guess what? I’m gonna play you song Earth. And it’s like, I didn’t ask you to do that. And you’re like, I’m gonna do it anyway. And it’s like, but we do it. And then we like are somehow, elevated into this next state. And it’s just what a cool little thing to exist, to get mindless doing something wildly come.
[00:57:15] Adam Argyle: It’s like when people are doing three Rubik’s cubes. Ha ha. And they’re probably like writing a poem to their girlfriend at the same time because they have a girlfriend when they’re doing Rubik’s cubes anyway.
[00:57:27] David K. Piano: I, I know exactly what you’re talking about, like when I’m playing covers or improving or something like that, like I’m thinking about my day or whatever. But it’s just so awesome to just let your fingers go on autopilot
[00:57:38] Adam Argyle: Yeah,
[00:57:39] Robbie Wagner: All right, we are at time here. , Anything you would like to plug or, uh, where can people find you, et cetera?
[00:57:45] David K. Piano: so people could find me anywhere online. David k Piano. So GitHub, Twitter or X Now Instagram. It’s on private though. ,
[00:57:55] David K. Piano: LinkedIn if people go, no, no, don’t go there. Um, LinkedIn, even though [00:58:00] I think LinkedIn is just slop, like more so than Twitter, but
[00:58:05] Robbie Wagner: Ooh, that’s the hot take.
[00:58:07] David K. Piano: yeah. I’m sorry. Are you posting this on LinkedIn? I hope you’re not.
[00:58:10] Robbie Wagner: No,
[00:58:11] Robbie Wagner: I mean, not, not, right now, but,
[00:58:14] Adam Argyle: Just
[00:58:14] David K. Piano: um, I’m also the founder of State lead.ai, so it’s something we’ve been working really hard on. If you want to visualize state machines and you know, just make cool state machines, export them to code or go the other way around, then just go to state. Actually state.new, we got that domain. You
[00:58:32] David K. Piano: could
[00:58:33] David K. Piano: just create a state machine just from there.
[00:58:35] Robbie Wagner: Nice. Very cool. All right. Thanks everyone for listening. If you liked it, please subscribe. Leave us some ratings and reviews. We appreciate it, and we’ll catch you next time.
[00:58:43] Outro: You’ve been watching Whiskey Web and Whatnot. Recorded in front of a live studio audience. What the fuck are you talking about, Chuck? Enjoyed the show? Subscribe. You know, people don’t pay attention to these, right? Head to whiskey.fund for merchant to [00:59:00] join our Discord server. I’m serious, it’s like 2% of people who actually click these links. And don’t forget to leave us a five star review and tell your friends about the show. All right, dude, I’m outta here. Still got it.