Changelog & Friends – Episode #89

Vibing into the vibe

with Nick Nisi

All Episodes

Nick Nisi joins us to confess his AI subscription glut, drool over some cool new hardware gadgets, discuss why the TypeScript team chose Go for their new compiler, opine on the React team’s complicated relationship with Vercel, suggest people try Astro, update us on his browser habits, and more.

Featuring

Sponsors

RetoolThe low-code platform for developers to build internal tools — Some of the best teams out there trust Retool…Brex, Coinbase, Plaid, Doordash, LegalGenius, Amazon, Allbirds, Peloton, and so many more – the developers at these teams trust Retool as the platform to build their internal tools. Try it free at retool.com/changelog

HerokuThe Next Generation of Heroku “Fir” is coming soon — Fir is built on a foundation of cloud native technologies and open source standards, ensuring portability, interoperability, and a vibrant ecosystem for your applications. Cloud Native for everyone, for the next decade and beyond.

DepotBuild faster. Waste less time. Accelerate Docker image builds, and GitHub Actions workflows. Easily integrate with your existing CI provider and dev workflows to save hours of build time.

Notes & Links

📝 Edit Notes

Chapters

1 00:00 Let's talk! 00:38
2 00:38 Sponsor: Retool 01:51
3 02:29 Metaphors & Friends 01:27
4 03:55 Godwin's Law 00:38
5 04:33 Still TypeScripting 00:35
6 05:08 Git ingest 01:47
7 06:55 Coding has changed 02:26
8 09:21 Nick's big confession 02:34
9 11:55 Raycast vs Spotlight 03:04
10 14:59 Nick, the AI junkie 03:45
11 18:44 Sponsor: Heroku 02:40
12 21:23 Managing AI relations 02:48
13 24:11 That trust threshold 04:50
14 29:01 Maybe it's a me problem 01:36
15 30:37 It's come a long way 01:48
16 32:25 A failed segway 02:41
17 35:06 BUSY Bar 02:41
18 37:47 Vapor hardware 00:32
19 38:20 The Flipper 02:30
20 40:50 Toy nostalgia 02:15
21 43:05 Sponsor: Depot 02:20
22 45:25 Back to BUSY Bar 01:32
23 46:57 TypeScript compiler on Go 06:17
24 53:14 Facebook's engineering prowess 01:18
25 54:31 React and Vercel 03:51
26 58:22 Nick likes Astro 01:07
27 59:29 Slightly too obscure 01:17
28 1:00:47 Content-driven sites vs 02:38
29 1:03:25 Eleventy is cool 03:12
30 1:06:37 Use long flags when scripting 04:41
31 1:11:18 Who is paying attention to this podcast? 00:20
32 1:11:38 Revisiting browsers 01:59
33 1:13:37 1Password love/hate 01:24
34 1:15:00 Adam on Windows 06:04
35 1:21:05 What we're excited about 01:17
36 1:22:21 Golf! 02:56
37 1:25:18 Disc golf! 03:03
38 1:28:21 Long Peleton 01:25
39 1:29:46 Bye, friends 00:12
40 1:29:58 Coming up next 01:29

Transcript

📝 Edit Transcript

Changelog

Play the audio to listen along while you enjoy the transcript. 🎧

Nick Nisi, Nick Nisi, making Vim look easy…

Hoy-hoy! Still rocking Vim.

I wrote you a poem, but it’s as far as I got.

[laughs] I it.

Do you feel special? Do you feel sort of special, because I wrote you a poem, but also not so special, because that’s as far as I got?

I – it’s perfect. Things don’t have to keep going if they’re perfect.

I think that’s a metaphor for our entire relationship, you know?

[laughs]

Well, if you would continue, it would go to TypeScript, and that’s just not possible.

That’s right. The longer we talk… It’s – what’s that rule about Nazi references on the internet?

What?! [laughs] I don’t know any rules about Nazis…

Nick knows it. Don’t you? What’s it called?

I’m thinking of Microsoft Tay.

What’s that? Tell me about that. [laughter]

Oh, my gosh… The water’s getting hot in here.

This was a chatbot. You don’t remember this story? This is a chatbot that Microsoft released on Twitter years ago, but before Open AI and ChatGPT and all that. And it only took 24 hours for it to go full Nazi.

Oh, that’s right. It was called Tay? Spell that.

T-A-Y.

Okay. Alright, this is Godwin’s Law. See, I just wanted Nick to tell that story long enough for me to get the answer for the previous thing. So thanks Nick for that par-tay. Godwin’s Law is an adage from the early days of the internet that says “As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.” So this is Godwin’s Law, but for TypeScript, and Nick. The longer we talk to him, the probability that he brings up TypeScript approaches one.

It wasn’t even me. I don’t even have to do it anymore. That’s how you know you’ve made it.

Your reputation precedes you. Yes.

[laughs]

Are you still TypeScripting? I think last time we were hanging out you were writing PHP, and stuff.

I was, and I am. But I’m still writing a lot of TypeScript, and I’m really liking it.

Okay. Are you using that new, fast compiler?

Not yet.

So fast.

How big is the codebase you’re working on? Is it fast enough for you?

Oh, it’s small enough that I can fit it into a paste into Claude, the entire codebase.

Oh, nice.

How big is that? How big is Claude’s context window?

Oh, I don’t know… It starts getting mad at me when it’s around 200K.

I use this cool site called GitIngest…

Oh, yes.

And so you just go to github.com slash whatever, but you replace the hub with Ingest.

That’s right. Did I teach you about that?

Maybe…

Changelog News, man…

Yeah, maybe.

I logged it a couple of months ago. It’s cool.

Ah. I liked it so much that I had Claude write me a Bash script to do all of that for me. Vibe-coding.

I feel that’s similar to me writing you a one-line poem. It’s like, I liked it enough not to write my own Bash script, but to have somebody else write it for me, you know?

[laughs]

Yeah. It’s appropriate.

Well, that’s how you write Bash now.

But what exactly are you doing with this GitIngest Bash script?

This is for when I’m making a bunch of changes locally, and it’s not all out on a public GitHub repo that GitIngest can get at. I can just type – I called it Digest, for some reason… Then I can just run Digest and it’ll throw it on my clipboard and tell me how big it was… So I can see “Oh, this is 200K”, or 40K, or whatever.

I feel there already was a digest command that does MD5 sums, or something.

You know, I have three Mac computers, and one of them has a Digest… [laughter]

I thought there might be a namespace conflict there…

It’s an old Linux command, or something. Who knows.

But not the one I use every day. My work computer, for some reason – at least my Digest is higher on the path, or earlier in the path, so it gets that one.

Why don’t you name it Ingest? I mean, isn’t that what you’re doing?

Because I was creating a text digest of the repo.

Okay. Fair enough. And how’s that working for you?

Eh… My script kind of sucks, but Claude wrote it, so what can you say…? [laughs]

At least you don’t have to personally identify with the crappy code anymore. You’re “You know what? Claude wrote that, so…”

Exactly.

No big whoop.

It’s wild how much coding has changed in a year. Not even a year.

Describe. Say more.

It’s a lot of – well, I don’t know. It’s also – I joined a new team a couple months ago, a new company, and left Meta, which was totally different…

Yeah, you had to use Llama. They made you use Llama, probably.

Yeah, and it was really bad.

[laughs]

“It was really bad…” [laughs]

I laughed when – I don’t listen to Rogan, but I saw that clip of Zuck talking to Rogan about how they’re going to replace mid-level engineers with AI, this year… That’s his version of self-driving in three months. It’s not happening.

Not with Llama, at least.

Not there. Yeah, Llama 4 was disappointing to folks. I didn’t even try it, because I saw – it was like, they dropped it on a Sunday or something, and it’s “By the way, Llama 4. Go play with it.” He’s trying to be kind of cool. Zuck, always trying to be cooler than he is… And then the initial benchmarks - I think even the ones they published - were very impressive. And then people actually tried it, and it’s “No, it’s not better”, or not as good as Gemini, or whatever the… Although I’ve found Gemini currently - this is Google’s latest - to be disappointing. But I’m also disappointing, so you know… Who am I to judge…? [laughter]

[08:20] I have not used Gemini even once. But I did download the app – I just haven’t signed into it. I downloaded the app on my phone. But I was interested in it because I heard their context window was way bigger. But I haven’t tried it, because I can’t figure out, am I using 2.5 Pro, or whatever they call it?

Right.

I’m so sick of picking a – just use the best one. Why do I have to pick and tell you to use thinking, and all of this? Like, just do it.

I know. that dropdown on chatgpt.com, it’s “Pick your…” I’m like, “You should just know which one I want to use based on the question I ask you, shouldn’t you?”

I mean, you’re smarter than me anyways, right?

3:[laughs] So my AI today, now, post-Meta, working at a new company, working on a lot of different languages that I’m less familiar with, like, Go, Python, PHP, all these other languages (that are terrible), that are not TypeScript… And it’s great. I can just ask all these questions, and I – I’m going to say something embarrassing. This is embarrassing.

Okay. Please do.

I pay for ChatGPT Pro, Claude Pro… Or not ChatGPT Pro. It’s Plus, I think. Because the Pro is the million-dollar one.

200 bucks a month, right?

No, I don’t pay for that. I pay for the $20 one.

Yeah. I pay for Claude Pro, which is $20 a month… Perplexity, which I’m paying for and I didn’t realize for months, because I use Raycast, and Raycast gave me a six months free of Perplexity Pro… And then it just charged me and I forgot about it and didn’t realize for months. But then also I’m paying for Raycast AI, because it’s just that convenient to have a little – and I’m using them all, and I’m using them all differently. And - and - here’s the worst part. Like, this just… I don’t know, I don’t even want to admit this, but last week –

No one’s asking you. Okay…

Okay, nevermind.

No. You already said you’re going to. I didn’t ask you to, but now that – you actually do have to now.

Okay. Last week, Claude came out with a – okay, before that, a couple of weeks before that, I was running into this thing with Claude where I’d be asking it questions, and it’s “Hey, you can’t ask anything more until after 4 PM”, because I hit some limit internally.

Oh, wow. Sure.

And I’m “Dang!” And then I’m “Should I just pay for another?”

Rate-limiting.

Yeah. I’m “Should I just pay for another account and keep going, or what?” And I didn’t, because I’m not crazy. But then last week they came out with “Hey, instead of paying $20 a month, you can pay us five times that and get five times the usage. Or you can pay us $200 a month and get 20 times the usage.” And I’m “That sounds reasonable…” I haven’t done it, but it sounds reasonable.

Which one did you go with? The 10 or 20? Or neither?

When I do it - because it’s probably a when - given the state of things - I’ll go with the hundred-dollar one. A hundred dollars a month.

So you’ve got ChatGPT, you’ve got Claude - that’s 40 bucks, right?

Don’t add this up for me…

Then you’ve got Raycast, which I believe –

He’s not doing it for you, Nick. He’s doing it for the rest of us.

Is it 20 bucks a year? What is Raycast’s AI version? 200 bucks a year. 100 bucks a year, I believe it is.

It’s like, you have Raycast Pro and then you have the AI stuff on top, which is another $4.

Yeah. So you have to have already paid them a hundred bucks a year to pay them another hundred bucks a year to get the AI.

Yeah.

So that’s 200 bucks a year, let’s just call it, for Raycast Pro plus AI.

Sounds reasonable.

That’s 240 bucks in, but I guess you’re also getting Raycast.

Right.

Raycast is indispensable at this point. I love it.

[11:59] I can’t live without Raycast either. Okay, this is not a paid ad… Raycast for life, okay? Raycast for life.

For sure.

Almost lost it there.

I’ll have to disagree, in order to make it not a paid ad…

Look at Alfred over here…

There’s our – Alfred? No, [unintelligible 00:12:15.21] man.

Yeah, old Alfred’s… Old Alfred’s over here…

[laughs]

Raycast just ran circles around you… Ha-hah!

Default macOS software for the win.

Nick, let’s play –

What can Raycast do that Spotlight can’t do?

Nick, what’s your favorite Raycast feature?

Oh… The AI.

Claude… [laughter]

“Oh, the AI…” Okay, non-AI feature. Like, serious Raycast feature.

Okay, um… I’m just – that’s so hard to say. If I have to say…

Launching apps? Do you launch a lot of apps with it?

I launch a lot of apps with it.

Oh, let me tell you about a little thing called Spotlight.

[laughs]

Spotlight… [laughs]

This is a feature that it just does, that there’s a million apps that do it, but I that it’s just one app.

And that’s Clipboard Manager.

Oh, yes…

I love having this pretty much unlimited clipboard that I can just constantly refer back to.

Yeah, the clipboard history, I believe, is unlimited. I believe it’s unlimited. It does not sync across devices. So if you have a MacBook Pro and an iMac or something that, they’re not going to sync those clipboard histories.

Ah, but built-in macOS does do clipboard sharing, so then it does.

Well, I think this is by design. I think you can do it, but I think by default it doesn’t do this.

Yes, premium feature…

I that feature. Dude, what I most about the clipboard feature is that when you conjure it, I guess, whenever you elect to have this interface pop up with your history, you can search your history and paste it immediately. And that’s five days ago history. And it fuzzy-searches the whole thing. So it’s not only just front or back, it’s all over the place in this thing. And so it’s pretty accurate.

Well, let me use this opportunity to mention a little piece of freeware… Open source freeware called Maccy, M-A-C-C-Y, which is a clipboard history management tool that lives in your menu bar, and does everything you guys are describing. But it’s built by an individual who just loves software, and just wants to put out free stuff into the world. And I use that for clipboard history. One thing well, guys. One thing well.

I was once you.

[laughs] Okay, tell me how you’ve become enlightened.

I’m already going to run Raycast to open my apps…

Why? Spotlight opens apps for you.

Yeah, but it can’t do other things.

[laughs] the clipboard management thing that I can use Maccy for. Claude, which has their own desktop app surely. You’re not selling me, fellas. You’re not selling me.

Well, the good thing is we’re not here to sell you.

I know you’re not.

We’re here to enjoy ourselves.

Well, I did kind of set that up as the [unintelligible 00:14:54.10] But fair.

[unintelligible 00:14:55.01]

You know what’s funny to me, is that in our shared doc of potential topics for this conversation, near the bottom it says - I don’t know who wrote this - “Are we contractually obligated to talk about AI?” And the answer is no. However - I didn’t realize this, but Nick’s more of an AI junkie than he is a TypeScript junkie, because… I mean, what did we go? Five minutes, and he’s already confessing all of his subscriptions…

“Listen, I didn’t want to tell you all this. This is so embarrassing… However, we’re on a podcast, listened to by the world, basically… Here’s all my stuff.”

I’m just – you know what? You embrace or you die.

Ooh, I it. Embrace or die.

This is worse than streaming services, though. You’re probably paying more for –

Yeah, that’s why I had to add it up. I was “This is insane.”

…these models than you are for your streaming services. I mean, is your wife okay with this? Or your employer – hopefully, your employer is helping foot the bill…

Listen…

Listen… [laughter]

Listen out.

We don’t need to talk about that. Right?

Okay. Fair. Sorry to – I didn’t want to get too personal.

I get some benefit out of it, and it’s real good… And I am not a person – I would not say that I’m a day to day vibe-coder. Like, for one off things a digest script - yeah.

[16:14] Now, are you just using the term vibe-code because it’s fun? Or are you really referring to the practice of vibe-coding, in which you don’t even look at the source code that’s been produced?

That is what I’m saying. Yeah.

You don’t even look at it. The digest script - I barely know what it is.

Oh, man.

You don’t even know.

I mean, it’s Bash. Nobody knows what that does.

Did you hear about the latest security vulnerability?

[laughs] Yes, actually.

“Yes, I did. But I’m still vibe-coding. I’m still not even looking at the code.”

For day to day stuff, I don’t, – I don’t use it in that way. I’m a team of one right now too, so I’m using it as literally another coworker. Like, this is somebody that I can bother… And yeah, they’re an idiot, but they’re helping me to formulate my thoughts before I go talk to somebody actually smart, any of my other coworkers.

It’s a warm-up method, right? Is that what it is?

Yeah. I can knock off some low-hanging fruit… And I’m not just copying and pasting code from them. I will give them the repos that I’m working on, and everything I do is in open source, so I’m freely able to do that, which is a privilege, I’m sure, where I’m at… So it has the context, and then I can ask it questions. And hopefully it knows “Hey, that method that you’re telling me to call actually exists.” And even when I give it the entire repo, 80% of the time it’s correct. It’ll make up methods the other 20% of the time, or things that don’t exist. So I totally don’t trust it. But it’s better than staring at a blank screen and wondering what to do… I can ask it some questions – and I mostly keep it at a high level, like architectural style thing… My favorite thing in the world is to talk through “Here’s how I want to do it. Okay, now let’s create a mermaid diagram and just visualize how this is going to fit together.”

Right. So now I’m understanding a little bit more why you’re paying money… Because it’s not so much the utility of the tool that you want. It’s just that you’re really lonely.

Yes…! [laughter]

Because you’re a team of one. You need someone to talk to. And these things just fill that void. You’re like “Let’s make a diagram while I think through this.” So you’re rubber duck debugging, basically.

Exactly. “Tell me –” And who else is going to tell me how OIDC works, to the tune of Lil Wayne rap lyrics, you know?

[laughs] Yeah, exactly. It’ll play along with all your stupid games, like I used to, on JS Party. Oh, funny…

Break: [18:45]

So how do you know? Do these various – does Claude and ChatGPT - do they know about each other? Do you keep them completely separated? Is there any sort of weird, awkward relationship vibes going on? How do you know which one to turn to, and when?

Oh yeah, this is a great question.

“Oh yeah, I’m glad you asked me.” [laughter]

Alright, tell us.

I’m prepared.

This is mostly vibes, I think, honestly.

Okay. It’s how you’re feeling.

You have to vibe into the vibe.

That’s right. It’s like pre-vibe coding.

That’s right. [laughter]

The vibe I got is just – I don’t really use ChatGPT much for work.

Okay, it’s more of a hangout, after work, kind of a chill…

I have it because I play with it, and my kids and I have been doing a bunch of image generation stuff, which has been fun… But then also, sometimes – my daughter and I are halfway through the first Lord of the Rings book, after having just read The Hobbit… So we read actual literature. But sometimes we just goof around too at bedtime, and we have – I’ll just ask my kids for a list of things that they want to hear, and then I’ll throw in a message about not fighting with your brother… And then have ChatGPT generate a story, a bedtime story for us that has all of that. And every single story that my kids create has “Dad fell in the toilet”, or “Dad turned into a butt”, or you know, typical things that a six year old and an eight year old would be talking about. And that’s a lot of fun. But that’s primarily how I use that. And then occasionally, for writing - although I kind of Claude a little bit better for that… But Claude is the workhorse here. I really like Claude for code. I like the interface for it, I like being able to set up projects for it, and you can give it a bunch of context in those projects that it’ll just share each time… And then as of yesterday – I’m in this, but I’m also very slow to adopt things… But yesterday I integrated GitHub’s official MCP server into it… And wow, that’s so nice.

So what did that do for you?

It can do a bunch of things. I can have it respond to pull requests and issues and stuff for me. I’m not letting it go that far yet… There’s a trust that has to build up before I do that. But an issue comes in, and I can just be like “Hey, issue 44 on this repo… Give me a summary of what you might think.” And it already knows about all the code, because it’s in a project. So “Give me your thoughts about where I might start looking for what could be the issue here.” And it can just go fetch that. And it’s saving me the steps of having to go copy and paste, is basically it. I’m getting less use out of my favorite tool of Raycast, my clipboard manager.

You copy-paste.

Yeah.

That is cool. So how close do you think you are to that trust threshold? And you can just tell it “Go comment on this for me.”

Oh, I don’t know. I’m scared of that, because as much as I use AI, I don’t want anyone to know that I use AI for [unintelligible 00:24:26.25]

Well, you’re telling everyone right now… [laughter]

Wait, this is the show?

“Ooh… Listen, as much–”

Don’t send this to your manager…

Cut this out… Cut this part out…

They’re actually really cool about AI, too.

Like, I was playing with Devin for a little bit, the $500 a month AI coder… And I don’t think that it’s very good, but yeah. But yeah, I don’t know. It’s cool. And the main thing that you’re always doing with all of these is managing the context. I’m constantly thinking about when Claude’s going to give me the little purple message that says my chat’s running a little long, and how succinct I should try and make things… I’ve got some preset scripts that I’ll throw in there. Preset, uh – what do you call those, prompts? That’s like “Going forward –” There’s one specifically that I use right now that’s really good, and it’s like “Going forward, don’t assume that anything I tell you is accurate”, because the worst thing about any of these is when they’re a yes, man. They’re just applauding everything. You’re right, and it’s going to tell you that you’re right. I want it to challenge me and tell me what are the things I’m not thinking about? I’m crafting prompts that help me, that I can just paste in when I feel it’s getting a little, I don’t know, kiss-assy… And then I can set it straight.

But then, you’re managing those contexts, and that’s where Raycast AI comes in for me. Because Raycast is – I have it set to Option+Space, and that pops up in a little window, and that is reserved for the queries that are one-offs. Like, I’m having a conversation over here with Claude about this, I don’t know, feature of Next.js. I’m talking to it about Next cookies. And I want to go deeper on Next cookies, but I don’t want to screw up its context. So up pops a Raycast, and I have a discussion over there about Next cookies, and then I go back.

[26:25] And what are they using? They’re using Claude also, but it’s a different session?

They’ll use whatever you want. But yes, I use Claude 3.7 mostly in there.

He’s so excited about this, Jerod.

He is.

Look at his face.

That was like me in temporary mode the other day, when I just wanted it to be a temporary conversation. Except for it didn’t work, but… It’s like that.

Yeah. Are you managing the context, or is the context managing you…?

That’s too deep for me. Stack Overflow… [laughter] Oh, gosh… You know, I’m still a Neanderthal with these things. I’m just – I have it set up in Zed. I also just use ChatGPT.com, and then I have Ollama, which I had open in a terminal session, and I just talked to it… But I don’t have the patience to wait for a lot of these things, unless they’re going to be right… And I just find ChatGPT is right more than any of the other ones. However, with Zed, which is still my daily driver editor, I can just switch back and forth constantly between different models, and see which one I like the best. And I just don’t like any of them, honestly. I get angry, their code sucks… I’m just like “I can write this better myself.” I don’t mind.

I don’t like a blank screen when it comes to creativity, but when it comes to software, I’ve just got no problem with it. I know I just start writing. So I’m still trying to find where it fits – I still have it write functions and stuff for me, I just am always like “This function sucks”, you know?

Yeah. Oh, yeah.

And I don’t want to think that. I want to be like “Good job, little guy. That’s a great little function you wrote there”, you know?

It sounds like you’re in the same boat as me, though. I don’t use it for – I’m going to say, I don’t like how long it takes for responses, and things like that, when I’m in the flow of coding. It’s more like pre-coding where I’m using it the most. It’s having the conversation and making sure that – like, validating my thoughts on the approach before I go and waste a bunch of time.

Yeah. And I’ll actually use it now to – Adam said this on the show a few times already… Just to replace Google, basically. I just don’t google anything anymore. I just ask an LLM. And I’ll even honestly ask it for the docs. I’m like “How do I use this function? Give me the API and a couple of examples.” And that for me is faster than going and finding the docs, in some cases… Especially for obscure libraries, and stuff. Although the more obscure, the less accurate it happens to be… But that’s just part of the game. And so I’m basically just using them at that level.

Once I have it generating code for me, I’m just – I think maybe I’m just too controlling in particular about code, and it might just be a me problem…

Yeah. Same.

…you know, where I need to get over it.

Nope.

But I just don’t like what – no, it’s not? Okay, good. Thank you. [laughs]

There’s a place for us, too.

Thank you. But I’m okay with it, and I continue to do more… Just slowly, slowly, slowly more. And I told Adam this on the last Friends where it’s just him and I talking about – I’m not sure you heard the one where I turned him into a walrus, and all that… But –

It was good.

That feature inside of ChatGPT has been a little bit of an eye-opener for me, of like “We don’t got long, man. We don’t have very long.” Because that was a huge improvement all of a sudden in the image generation land, where it’s like “Why would I hire anybody almost ever? Almost ever, at this point. Whereas last year I was like “Yeah, this is not going to actually produce anything I can use.” It’s great for ideas and stuff, but then you’ve have to go hire someone to actually produce the final logo or whatever. And I just feel like that ship is sailing very quickly, and I don’t see any reason why… Except for maybe just the intricacies of the software development platform, and all the different things that can go wrong, maybe, might just give us a longer hedge… And the subjectivity of creative work, versus the objectivity of “Does it work? Does it work?”, that kind of thing. But I don’t think we have too much longer left. Do you think, Nick?

[30:35] I go back and forth, for sure.

When I let it vibe-code for me, it’s real bad.

It is.

So that’s why I don’t do it much. But – I mean, just think of where we were a year ago, two years ago, right? It’s come a long way… So I don’t know.

Has it come a long way in prose? Because I feel like it’s so average at writing. It’s never impressed me the way it has with these images. And I wonder if it’s actually gotten better, if they’re still testing that… Maybe you’re better answering – Adam as well, because… Don’t you use it to generate some stories and stuff as well? Bedtime stories, and things, Adam?

I have before.

So Nick’s story of the bedtime story was very familiar, except for it was not exactly the same. Definitely have had fun around that stuff. Image generation has been something we’ve done before… Conflict resolution, how to respond to a certain email even… What I don’t ask it for is what to say, I ask it for “Okay, here’s all the context. What am I missing from this scenario?”, to maybe establish more empathy, or just word salad them a little bit more than I should, kind of thing… It’s really iffy. A lot of, a lot of communication type stuff, a lot of framework thinking, a lot of ideation, sort of evolution… Stuff like that. Math… I love doing it with word math. That’s the best. Hypothesizing a scenario with multiple inputs, or multiple scenarios, and which one plays out to have the greater outcome… I don’t know, you name it. It’s kind of wild, honestly, to even have that as a tool.

Well, let’s change subjects, since we are just now doing what we do on every episode, just talk about AI… And let’s talk about –

We’ll be back…

Yeah, I mean, it’ll work its way. It’s just weaving its way into every part of life. I’s like COVID, you know? COVID weaved its way into every aspect of life there for about two years, maybe 18 months… And I remember thinking more about the mind virus than the virus virus. Because it’s like, “Can we talk –” I remember one time I was at a meal with friends, and of course everyone’s just talking about this, and… All the things. I mean, you can go into all the different things. The social distancing aspect, how it spreads, the vaccines…

“Oh, they’re acting weird…”

…the lockdowns.

“Oh, can you believe what they did?”

“This person had it, here’s what happened to them… This person had it…” And I was like “Y’all, we don’t get very many opportunities to hang out and have dinner, just us adults here… Like, it’s actually infected our minds. We can’t talk about anything else, except for the –” Back then we called it the coronavirus, you know?

Oh, yeah.

The coronavirus…

And I was mad, because it was like “The novel coronavirus.” I’m like “Can we talk? It’s like a mind virus more than it’s a virus virus.” Anyways…

Can we pause for a second and talk about how Corona beer was actually hit by that initially?

They were, weren’t they? They’re like “Wait a second, guys…”

It was like a small bounce back. I was like “Whoa, hang on a second… Corona beer and coronavirus. Different things, okay?”

[33:50] Right. If you don’t want to get it, don’t drink Corona. That would have been really bad for their branding, for like only three months or so, and then we moved on, called it all sorts of things…

I’m not sure if that says something good about humanity. Like, are we just that stupid?

Are we just that stupid?

[laughs] No hesitation. That’s why we’re afraid of these AIs. They don’t have to be that smart to outdo us, you know? It’s not much.

To manipulate us, for sure.

Well, for sure. Yeah.

It doesn’t take much, really. I mean, a couple yaks in and you’re shaved, you know? I mean, come on…

That’s right.

You’re on a whole different subject thinking it’s real, you know? And meanwhile, it’s all simulation.

Have you seen the – now we’re getting way upstream, but… Oh well. It’s nice up here.

Doom and gloom… Of course.

Have you seen the ones where there’s people that were posting on Instagram and TikTok and other places, where they’re skeptical of mirrors? Because how can the mirror actually see the reflection?

Yes…! “How can it see me over here?”

And I’m just like, “This is wild.”

“Do you not understand how mirrors work?”

This is wild.

“How does it see behind the towel?”

Right. And it’s not just one kooky person. There’s a whole. I mean, there’s probably a website with a forum on it at this point.

Maybe we do need to reinvest in education…

Alright. Busy bar. Let’s get busy talking about something else.

Lame… Busy bar…

Busy bar. I thought, let’s talk about some hardware. Or you think the bar is lame, or what do you think?

I’m just messing around. Going from that to BUSY Bar…? Come on.

It was not good –

Can they compete? We’ll see.

What is it? What is the BUSY Bar?

Okay, TIL today on this - I had no idea it existed. It seems to be a hardware device that’s programmable in some way, shape or form. It’s got an SDK or an API that you can program against it. You can tell the world you’re busy, you can do a Pomodoro, you can tell somebody you’re on air for podcasting… It’s like an LCD pixel display that does all sorts of cool stuff. It automates into home assistant, and other things… It’s like the hardware meets the ideation software, you know, event change…

You’re making it sound pretty cool.

It’s actually pretty cool.

Yeah. So here’s why I thought we could talk about this… Because you guys love hardware. I mean, Adam’s always buying stuff. Nick buys a bunch of stuff. Don’t you?

I just like spending money.

He does buy a bunch of stuff. And he has opinions…

He just likes spending money… [laughs]

Software! A lot of software!

Yeah, a lot of subscriptions. I’m sure there’s probably a subscription play in here somewhere.

They’re all consolidating down into Raycast.

That’s true. Now, could you integrate Raycast with BUSY Bar? Probably.

Yes, you could. Yes, you could.

Because this thing is like – it’s about the size of an alarm clock, wouldn’t you say? Maybe a larger alarm clock. It’s supposed to sit on your desk, or somewhere. I think it can even mount on your monitor…

…and face the other way for people, if you’re RTO’d already and you’re back in the office. It’s got a big – it looks like it really is satisfying to push start/stop button. One big button on top.

A massive button.

Yeah. And then one dial…

Like, imagine a button and then triple the size.

There’s a dial and another knob, and that’s about it. They call it a productivity multi-tool, and the thing is just programmable to the hilt. And I thought “This is the kind of thing that Nick would super-want to buy.” So I just thought I’d ask you, do you want one of these?

[laughs] I did see this before you posted it…

…and I kind of shrugged it off. But then I saw that you put it in here, and then I was like “Let me go look at it.” And then I was like “Ah, fine. I’ll buy it.”

“Fine, I’ll buy it.” [laughs]

But you can’t buy it yet, [unintelligible 00:37:36.02]

Did you actually put a purchase down?

Oh no, you can only give them an email and they’ll let you know when it’s ready. And I did do that.

Yeah, it’s probably vapor hardware at this point.

I know. And I hate that.

There’s so many of these hardware projects that just don’t come to fruition, you know?

Okay, but the saving grace of this one is that I think that it’s by the people who do this, the Flipper.

What have you got there?

Uh, this is the Flipper Zero.

Oh yeah, sorry. I had to expand to see your whole screen.

Oh, gosh… You have this thing?

[38:07] I do.

What is that thing?

Tell the world what this is, Nick. It’s like the coolest little device.

Nick buys stuff, okay? You’ve got all the hardware stuff.

Nick is now an official staple, “Bring your hardware wares.”

That’s right. Alright, so what’s the Flipper?

I don’t know, but it looked cool.

“I don’t know…” [laughter] It looked cool. “They had a sign up form, so I signed up.”

It’s like a little tool that you can use for some lightweight hacking of various things. It’s got some antennas in it, and different sensors to make physical hacking kind of cool, I think… Although it’s not super – I don’t know, everything’s encrypted, so it’s not going to break that encryption on this little tiny device. But things that aren’t encrypted, it can do.

You mean like old WiFi networks that aren’t –

It might be able to.

Hotel keys?

Hotel keys, yeah. It can do that.

Okay. Good call.

I’ve heard – I’ve never tested this. I’ve heard that it can open the gas tank of a Tesla.

So yeah, that’s cool…

Wait a second, Tesla’s don’t have gas tanks.

I mean the charging port.

[laughs] Oh, you’re trying to pull a quick one on me? I’m dumb, but I’m not that dumb.

He did get me for a second. I didn’t even catch that part.

Maybe I’ve been duped on that.

Yeah, the charger… You’re talking about the charger container button thing?

Yeah.

Now, why would you want to hack the charger – to charge it up for somebody before they know?

Listen, I don’t condone terrorism, I guess, but…

I was going to say, do you vandalize? You’re not one of these Tesla vandals, are you?

Oh no… Not yet.

Not yet.

No. No. [laughter]

He’s got a hacker tool and he’s saying he’s not a vandal yet.

I have done nothing with this thing.

I got it and then I got too busy to play with it. And just for you I plugged it in, so [unintelligible 00:40:00.13]

So it’s charged up.

No. The red light is on it, saying that it’s – because I just did it a minute ago.

So at best case, you bringing out this Flipper Zero solidifies the fact that BUSY Bar may actually ship, because they’re the same people.

Good point. They [unintelligible 00:40:17.14]

They did. And that’s pretty cool.

And this is world-renowed, too. This Flipper Zero is really sought after, does well… I’ve seen some demonstrations of it. It’s pretty cool.

Yeah. There’s some really cool things. If you’re a Switch player, like a Nintendo Switch, you can set up your Flipper to be all of the [unintelligible 00:40:37.11]

Oh, that’s cool. So you don’t have to go grab them.

Yeah.

I might actually think that’s cool. You’re selling me on it.

Did you ever have – when you were a kid there was this toy. It was called a Casio Secret Sender 6,000.

It was like a little PDA, before PDAs were really a thing. But it was totally a toy.

Public displays of affection?

Like a personal data, personal –

[laughs]

What does that stand for…?

I don’t know.

Personal Digital Assistant.

There you go. Fair.

Yeah. Well, it was one for kids, and it had – you could have a little journal in it, and it had some games. And if somebody else within 20 feet of you had one, you could send messages back and forth over its IR port. But it also had an IR port, so it could be a remote control for any television.

That’s cool.

And you know me, being the hacker in second grade when they’d wheel in that giant TV…

Oh, yeah.

Oh, it turned off randomly once every time, and nobody knew why.

Just one time.

[laughs] They never knew it… “Until this podcast right here, when I tell the world about my AI infatuation.”

This is like Taxi Cab Confessions with Nick Nisi.

Gosh, Nick…

[41:56] Oh, that’s cool. I didn’t have one of those. I did have a Game Genie, though. Did you guys have a Game Genie?

No…

I wish I did.

Game Genie was so cool.

What was the fundamentals of the Game Genie? What did that do?

Well, it was basically like mods for your NES games. You know, modding is cool, and so with Game Genie, it would – somehow you’d plug your NES game into the Game Genie and then the Game Genie into the NES. And it would be a middleman. And you could basically turn on different superpowers, and cheats, and all kinds of things to make games easier… Because games were really hard back then.

They were.

Especially some of them. And so it’s just a way to make the game kind of more fun. Any serious gamer wouldn’t use it, of course… And I was only a serious gamer on a couple of games, like Zelda and Mega Man… But everything else, it’s like “I don’t care. [unintelligible 00:42:50.13] you know?

Mm-hm…

So Game Genie was cool. I don’t know how it worked, or why it was a thing, or if the game companies were happy about it… I’m sure there’s probably a YouTube history of Game Genie out there I should go watch. But it was a cool device.

Break: [43:07]

But this BUSY Bar does some cool stuff. So for instance, it’s smart home-integrated. So anything that works with Apple, HomeKit or Google, whatever the competitor is called, you can connect everything up. And so this thing, this one button could – like, you’re busy, you’re recording… Bam. Your whole house could respond. Pause the music that’s playing out of your home device… What are they called? Your Alexa?

HomePod.

Yeah, HomePod. Thank you. Turn off all the lights in case it’s one of those kind of shows… Lock the door, perhaps… Close the garage doors… Start your laundry… I don’t know what else you want to do when the show goes on, but… Connect it all. Connect it all.

[46:11] That’s cool. I would really that if I had that button and I’d push it, and then in this ominous voice throughout my house, it just goes “Dad is busy…!” And it just plays that on repeat, over and over again.

Yes. Like an announcement. And it just plays it nonstop until you touch it again.

Mm-hm. But my room is insulated somehow in this magical world, so I don’t hear it.

Right. Yeah, that would get me to buy one. And it’s developer-friendly. So out of the box, Busy Bar comes with an Open API ready for integration into your project… So you could probably get your CI/CD involved, you can probably get your Raspberry Pi’s involved… It looks like it’s taking Golang, JavaScript, Python etc. None of your languages, except for you said you’re writing some Go now, right? Is it because the TypeScript team likes it?

I’m not that basic, am I?

[laughs] I don’t know, just wondering… People were up in arms because they picked Go, you know? This was a big controversy.

It makes sense.

Did you read any of the back and forth?

Oh, no. I watched some interviews with Anders Hejlsberg.

Why does it make sense, do you think?

From my understanding - and I could be totally getting it wrong, but my understanding was that they want to do a one-to-one port… To the point where they basically wrote codemods that would take a line of JavaScript and spit out a line of Go, and went that far.

And switching over to another language like Rust, that is not a garbage-collected language like Go is and JavaScript is, would mean that memory management would be handled differently, which means it wouldn’t be a true one-to-one port, which would let bugs sneak in, potentially.

Yeah, it’d be more of a rewrite, a ground-up rewrite in a new language, versus an actual port.

Yeah.

Yeah, and apparently, Go and TypeScript have a lot of the same idioms, I guess. I mean, garbage collection being a huge one in that sense. Of course, JavaScript itself is kind of a C-style language, which Go is also influenced… So that makes sense. Of course, C-sharp was the one that people were like “Come on, it’s Microsoft. Isn’t C# supposed to be Microsoft’s powerhouse, its workhorse language?”

[unintelligible 00:48:34.18]

Didn’t Anders create C#?

Yeah. [laughter]

He did, but he also didn’t write it in Delphi, and he recreated that too, didn’t he? So I thought it was a cool, pragmatic choice by them, versus being like “Well, we are Microsoft, therefore C#”, or Rust, which is also burgeoning inside of Microsoft… It’s like “Let’s actually be pragmatic about what we’re trying to achieve, and just go that direction.” And it sounds like that might have won out, which - pragmatic choices, I think, in large engineering teams don’t always win.

But a lot of people were confused about that announcement, apparently. They thought it was the TypeScript runtime that was 10 times faster, not the compiler… Which would be like a huge win, wouldn’t it? Like “Hey, all your TypeScript code runs 10 times faster than it did.” It’s like “Oh, you don’t know how bad my code could get”, you know? “You’re going to make my code faster? Please.”

TypeScript has a runtime…? [laughs]

Yeah, well… And Edge – that’s the other thing with the C#, is “Well, couldn’t you just more easily work it into–” No, that wasn’t the C#. It was actually the Rust people saying, “If it was written in Rust instead, you could more easily get it into Chromium and Firefox than in Go.” And then you could start to do what your ultimate goal is (isn’t it, Nick?) is just to have TypeScript become the runtime of browsers…?

[50:04] Yeah, I think we’re getting there, potentially. I see signs of that with… There’s obviously the types as comments thing, and that’s what I’m talking about.

Yeah, type annotations.

I forgot what you call it. Type annotations, yeah.

But then in the latest, I think 5.8 version of TypeScript, they also added that erasable syntax-only flag, which is setting you up for success with the types proposed.

Remind me what that does?

That prevents you from using things that would require runtime code. So enums, for example - those get converted into these weird object things… And so it just prevents you from using them. Another place is in – there’s a shortcut when you’re using classes in TypeScript, where you can just say – in the constructor, you can list out all your private methods, and then that way they’re defined as private… Or private properties, I mean. They’re defined as privates, but you don’t have to define them above, then define your arguments, and then have, in your constructor, a setter where you’re actually setting them; you can condense it all into one. Well, there’s a lot of runtime code that has to happen for that to take place, so they prohibit that as well with this.

Gotcha.

And basically, it’s just everything has to be erasable… Which is perfect, because also in the next version of Node I think you’re going to be able to run TypeScript unflagged, which will be great. Run it by just stripping the types.

Run it by stripping the types. Right. Well, these are baby steps in that direction, aren’t they? Do you think it’s ever going to be actually built in?

No. I think that’ll be where it stops. But maybe I’m not thinking –

You think it stops with the type annotations feature, which probably will make it into browsers…

I think so.

Yeah. Do you think that’s good enough? Or do you wish it was actually…

What is it going to get me? Like faster speeds? Is that it?

Hypothetically, yes…

Yeah… I mean, I don’t know. I don’t know. I’ll say something that I’ll regret if I continue. [laughs] Why would we need that? We’ll never more than –

You never say anything that you regret on these shows, Nick…

Right… [laughs] I don’t think the TSC is very slow, when I run it in my editor, but apparently it is.

I think that this was a scratching their own edge kind of thing… Meaning if you have massive codebases, of which Microsoft probably does, that’s when TSC slows down.

I can’t remember what file it is, but one of the files in TypeScript’s codebase is 53,000 lines long. And it’s just because it would have performance costs to split it up.

Is that one that Anders coded up on a bender one time, or something…? [laughter] Do you think he vibe-codes?

Oh, no.

No. He’s significantly gray-haired. The gray beards don’t like the vibe-codes. Well, what else is exciting in the world of TypeScript, so we can poo-poo it and move on?

[laughs] I don’t know… I’m just enjoying writing it again.

It’s fun. Don’t miss Flow.

Yeah… What is it – I mean, is Flow only inside of Facebook? Or is there other people that use Flow? And when I say Facebook, I mean Meta now.

Yeah… There used to be. I think years ago, before 2018, 2017, somewhere around there, I interviewed someone from, I think, GitKraken. I think they were using Flow. But they eventually switched to TypeScript, too. But that was the only other company that I ever knew of that actually used Flow.

[53:59] It’s weird how somebody with the clout of Facebook engineering - which is what it used to be called back when these things came out - was so influential that they were able to get React highly adopted, and GraphQL highly adopted… Not quite as successfully, but still. But Flow just didn’t quite catch on. Do you ever wonder why certain things do and other things don’t?

I do wonder. I don’t know why, but I wonder if that was just a fluke that React did catch on in the way that it did.

You think so?

I mean, React 19 - is that catching on as much as it should be? Is it adding too much complexity? Is it too much – like, two in the bag with Vercel?

That’s my read on it. Those two things took too long, too hard to explain… People were starting to get the ick because of the tightness of that relationship. And even when we talked with Dan Abramov - a couple years ago now you and I talked to him and somebody else, I can’t recall who, on JS Party…

Joe Savona.

That’s right. Even then, I was like “Isn’t it weird that you all’s official stance is you should use this in Next.js, but that’s a project that you don’t have any control over?” Like, that’s a weird thing. The React team’s official stance was “Don’t use this directly. Use it via frameworks, of which Next.js is the only one that does it”, back then. And that just seems like not a good situation to be in.

Why is that? Why was that the recommendation?

Because there was no framework. I mean, because Meta doesn’t have its own framework. React is just a piece of the puzzle, and Next.js was a widely-adopted framework that stayed pretty much in lockstep with React’s previous releases, and using the new technology that – and, I mean, they’re simpatico, or they were simpatico, I’m assuming they still are… They collaborated tightly – you know, there’s a lot of friends between the two teams. That’s my take, Nick. Why do you think? Anything else why that might be the case?

Yeah, I think that – like, when Facebook introduced Flux, the Flux pattern… Remember? They didn’t introduce a Flux library. That came later. I think it was Dan Abramov, actually, who came out with Redux. There was an implementation of that.

Right.

And I think in the same way, Next was the one to adopt Server Components as an implementation of this theory of how this could be done from the React team, or in collaboration with the React team. But for the longest time – honestly, I don’t know anyone else who’s doing Server Components in that way. I’ve been playing a lot with Remix.React Router and TanStack Start, and they all have their own ways of doing server things, none of which are really Server Components in the way that they’re described or used within Next… Yet, at least.

Mm-hm. Yeah, that whole messaging is just kind of a ball of wax that was very unattractive to me as a guy who’s in the industry, but not in the daily mucky muck of the React ecosystem. I’m like “This just doesn’t seem attractive, whatever’s going on here.” And I think a lot of people feel that way. It doesn’t mean they’re not using React… And React was a game-changer, and so I’m not here to poo-poo on it like I am TypeScript, by any means. And it’s still a great choice, I think, as a standalone library… And I think that you can get React features in smaller ways, or different ways… But I think the RFC stuff has made it just too complicated, and the Next.js relationships made the whole thing muddy. Because now you’re getting in bed not just with Meta, which already doesn’t feel amazing, but now you’re also in bed with Vercel… And I don’t have anything personally against Vercel or anything like that, but some people do… [laughs] Some people are like “I don’t know about this…”

[58:23] Yeah. My recommendation, if anybody asks, which nobody ever does, but my recommendation is to go with Astro, until you’re absolutely positive that Astro can’t solve your problems.

Okay. Why do you recommend that?

It’s just such a delight to work with. I originally switched to Astro because I was like “I really React…” And I was using Eleventy before, and – this is for my personal blog, so it’s a nice playground for stuff this. And I thought, “Oh, I’ll switch to Astro because I like their component model, and I can just use React, and it’ll be great.” And then I set it up and I never used React. I think I use React now for one or two things, but their Astro components are amazing. They do so much. And then built-in support for – with the server island stuff now, you effectively have that way to dynamically reload pieces of the page from the server, from a running worker or whatever, and it’s super-nice and so easy to set up. And then when you need React, you can literally just inject React and build a SPA on that page, so it’s great.

Do you think it falls into that category of slightly too obscure?

Maybe.

Because for a lot of people that decision, that is a major aspect of their decision-making. We were just speaking with Anthony Eden of DNSimple, and he talked about how he likes Erlang and stuff, and he’s built some of their core infrastructure in Erlang… And eventually, a lot of it is Go now, and just the reason was like “Well, because nobody really knows Erlang” - I mean, not but him, but just, the numbers aren’t there for Erlang people. And it’s like, what about Astro? Is there Astro jobs out there to be had? You know, that whole thing; is it slightly too obscure? I mean, Elixir is kind of in that middle ground as well, where it’s like “Yeah, the people who know Elixir are few and far between.” They’re generally good developers, but this also makes them expensive to hire, because they are rare, and usually good engineers… Whereas Ruby devs are a dime a dozen, so to speak, and same thing with TypeScript folk…

How dare you…?

…and React people. And Next.js. Everybody knows Next.js.

Yeah.

And so does that make Astro slightly too obscure to be worth investing in?

To that point, I’ve never seen an Astro job listing, but I also haven’t looked…

Yeah, same.

I think at that point too it seems like, from my perspective, that Astro is focused on these content-driven sites, versus - I’m not sure what is not content-driven, but marketing is content-driven. So if you’re building a marketing site, it’s going to be content-driven, not just… You know, you think about what are those kinds of sites being used for? So it’s probably a frontend to a new tech company - probably great for that. And then you get into this - just careful now - is the world where you might want to say “What about Framer instead?” So you’ve got Astro, which is non-vibe-coding, and you’ve got Framer, which is kind of vibe-coding, in a way, taking this design tool and turning it into a developer tool. Now, John Long here on this show a couple weeks back talked about Framer, and he’s a frontender. He’s a developer. And he was reaching for Framer in the case of his works scenario. I think if it was a personal project, maybe he would choose probably a Ruby-based project, but probably something more like Astro, more like an actual developer tool versus Framer, which is design turned website. And I don’t even know how it works, but he’s singing the praises of Framer. So… And I haven’t used it personally.

[01:02:11.08] I’ve never used Framer. I’ve just gone to the website for the first time, and it looks pretty sweet.

So there are Framer jobs out there, though. You can be in marketing, or be in let’s say product marketing, product management, and there will be listings that say “Has experience with building out frontend websites with Framer.” So I’m not sure if that matches to Astro or not, but they’re in similar camps. A Framer site is usually a content-driven site or a marketing site; probably similar for Astro, where it’s either a personal blog, a personal portfolio, or somehow content-driven.

Yeah. And I think to that, their first class support for Markdown and MDX and all of those content pieces does work to their detriment to being considered alongside a Next, or React Router, or a framework like that.

Well, you know, a lot of options out there… How do you choose is really, I think, the thing that has driven me crazy my entire career. Like, here I am as a personal person just using Eleventy for its principles of “Hey, it’s basically just HTML and CSS with a little JavaScript if you need it.” And in that case, I think – what was I using that for? My personal site is in Jekyll. I think it was the CPU website, Jerod, actually; the very first one was Eleventy. Keeping it simple… Simple page, but keeping the code more simple than literally an HTML page, with CSS sprinkled into the style bracket or something like that.

That’s where I used it. It’s cool, though. keeping it simple.

I’ve been using Eleventy a little bit myself lately, just for a – I’ve been doing this thing called The Developer Dictionary in News, where I’m just defining… Like, just jokey definitions of developer terms. And I thought “Well, I want these to all kind of look similar, but be kind of content-oriented.” And I might eventually actually – as I accumulate these definitions, I might eventually want to put them on a webpage, or something. And I’m not a designer, but I know what a dictionary looks like, so I was like “I can put together enough CSS, combined with my coding assistant in order to have a nice little design.” And I can write – I want to write the definitions in Markdown. And so I’m writing them in Obsidian, and want to then pull those into a uniform-looking website that I can eventually publish. And I was like “Well, Eleventy can do that.” And so I dove into the world of Eleventy. I like how simple everything is over there. Zach’s done a great – not just Zach Leatherman, but him and a bunch of people now have done a great job with their docs, and with making it very approachable. And so as an old school, static site guy, it just all makes sense to me. It was very easy to just do stuff. And I haven’t shipped anything yet, but I just use it to write in Obsidian these definitions, and then each one is a well-formed Markdown file, with the same – I’m using all the YAML front matter as basically data, and eventually I can pull that into a database and write it in an actual CMS somewhere. So it’s kind of like progressive enhancement for a web app, where it’s like it starts off as Markdown files and static stuff, but there’s a very easy path of turning that into a database in the future.

I like that.

It’s cool.

And Eleventy is really great. I think I switched before WebC came out publicly. But I was thinking in Components, and I wanted to continue with Components.

Right. Which Astro has that stuff, right?

Yeah. But now Eleventy does.

Exactly. But didn’t back then. So WebC is Eleventy’s take on Web Components, right?

Yeah.

[01:06:09.28] Yeah. Which I’m touching none of. I’m literally HTML, CSS, zero JavaScript. Because I’m just putting some HTML on a page and prettying it up, you know?

Yeah. I was doing all of these shortcode things in my Eleventy config, which also couldn’t be – last I checked, couldn’t be in TypeScript. So it was just madness, because I didn’t know what anything was.

That reminds me - here’s a pro tip that’s old, but maybe people haven’t heard it… Which is whenever you’re writing a Bash script, or you’re – if you’re not vibe-coding it; if you’re actually writing it yourself. Use the long form of the arguments in all of your commands. You know, there’s always a short form and a long form… And so the long form would be –file=, And the short form is -d, you know? And we get so used to the short forms, because it’s faster. It’s easy for one liners. But if you’re actually writing a script that you’re going to come back to later, it’s self-documenting to use the long form every time.

And so I use the long form in scripts. I’m fine with short form for your one liners and your command history… But force yourself to use that long form, because it’s so much easier to understand, especially if it’s like FFmpeg stuff. I mean, so many different flags, that mean so many different things. And you can come back and be like “Oh, I know what –file means.” Whereas -f, does it mean format? Does it mean file? Who knows? And now you’re in the man page. So… Rando, but you just inspired me to say that. I think there was an old Changelog post about that. Wasn’t there, Adam? Way back in the day.

I was going to interrupt you, because I wanted to mention this exact thing. This is, I believe, Adam Jahnke’s only contribution. He contributed one post, I believe…

To Changelog, the blog.

…to what was the blog, I guess; the newsfeed, at some point. It could have been tips, it could have been prose, it could have been a project… The criteria back then was a little different, but his was advice, and essentially this - if you’re going to write a script, do the long form version of it, because when you come back to it later, it’s – basically rinse/repeat what you said.

I remember him writing that. I remember him writing that, and me being like “That’s so true.” It was kind of something that just is so obviously true when someone says it, but then somebody had to say it once… And then he might have been the first one. Probably not. What year was that? It’s probably like the ‘80s when someone first said this, but… It’s just a good idea.

This would have been 1979.

Wow, so he is the first then.

I’m just kidding with you. No, it was probably…

Mid 2000s…?

…the early days. 2010… Yeah, 2010. I mean, that’s crazy to say that’s early days. That’s early days though. 2010, that’s my guess. Sometime in 2010. J-A-H-N-K-E. Jahnke.

“Use long flags when scripting.” 2013.

Now that we’ve shaved that entire yak –

Anyways…

We’ll link it up in the show notes. I mean, that’s a good deep dive there, because it’s phenomenal advice. I think that was the first –

It’s such a simple little tip, but it’s so obvious. You’re like “Yeah, there’s no reason not to.” You’re going far enough to write a script, you might as well make it more scrutable when you come back, versus inscrutable, which is how they usually are. Now, if you have vibe-coded it, who knows what’s in there? Who cares?

That’s why when I Rsync, I’m always long-flagging it, man.

Are you?

Oh yeah. Long flight for life.

Heck yeah.

I’m just remembering – not that I’ve run the tar command anytime recently, but I know tar-xvf, or tar-xzf… I don’t know what those flags actually do, I just know that one way of doing it will tar something.

Right. And the other one will untar.

Yeah.

-xvf, yeah, it’s like extract… One of them was recursively. Or the folder. F stands for folder?

Oh, yeah.

[01:10:20.21] Whereas if you do it without that, it’s just gonna do a single file. The v I can’t remember… No, that’s the extract. The create is -czvf. I’m not sure what any of those are, except for the c means create, I think.

See, you’d know that if you’d get the – in there, and the full word…

This is all from memory, just from typing that one liner the whole time.

I just asked –

But wasn’t there like extract zfiles? Wasn’t there like a mnemonic device people said?

Oh… Yeah.

I think Kball used to say that. xzf is extract zfiles, and then the other one’s like create z freaking – I don’t know what it was. I’m butchering it, whatever it was.

And who said this?

I think it was Kball. Somebody has this mnemonic device for remembering tar commands. And it was extract zfiles, and the other one’s like create the –

At this point I’m wondering, who’s paying attention to this podcast right now?

Yeah, probably nobody. Well, we’re at the end anyways…

I’m wondering who’s paying attention to this stuff here. Phenomenal advice, though.

This is more than nuggets gold here…

“Phenomenal advice, though…”

Phenomenal advice, yes.

[laughs] Yeah, this is where the good stuff – you know, we dropped the good stuff at the end. So… What else is on the list here? Revisiting browsers? I don’t know, I’m still using the Safari.

Yeah?

You’ve moved on?

I have…

Oh, my goodness.

I was forced at Meta to use Chrome. And it was Chromium for a while, and then they forcibly uninstalled Arc for me. And I was very saddened by that. But they didn’t forcibly uninstall the –

They uninstalled Arc for you?

They didn’t forcibly uninstall it. All of the internal tools would check, and they would just not work. And then they would eventually lock you out of all of them, and you’d have to go ask to get unlocked, and then never use that browser again. It was terrible. But I’m back on Arc, and I hate that…

So what are you up to now?

I want something like that. Something that’s easy to manage, with tabs on the side… And so I’m still in Arc. I tried Zen Browser for a while, but honestly…

Oh yeah, Zen.

…Firefox isn’t it.

So you’re still using Arc?

I am.

Wow. You got hooked.

I did.

Even though it’s dead?

Even though it’s dead. I know. It’s like –

Dead man walking.

Yeah.

So how is Zen that much different than Arc? Isn’t it pretty close?

It kind of is, but it’s super-confusing in its config… And then it doesn’t have syncing.

And that’s a fork of Firefox, or it’s just based off Gecko, or whatever Gecko is called now?

What – does it have no syncing?

It’s basically Firefox. I didn’t know Firefox was still a thing. [laughter]

Zing…! See, here’s the good stuff at the end.

See, now you’re listening. Now you’re listening. Perk your ears up, we’ve got 20 more minutes in us.

[unintelligible 01:13:19.12]

Let’s do it. Alright, slay that Firefox dragon…

Yeah, I don’t know… Things just break in it all the time. You just want – I don’t know, at this point which browser is going to give me the best experience for the 1Password extension? Safari ain’t it, for sure.

Oh, yeah. I’ve been getting really upset with 1Password.

Yeah?

Let me introduce you to builtinpasswords.app… [laughter] Life’s good over here in built-in land.

You know, they just pop up their UI in these places, and I’m like [unintelligible 01:13:56.08] I just want you to be a normal field. Don’t clutter up my interface with your suggestions, and…

Yeah, I get [unintelligible 01:14:05.14] for sure.

This is not an ad… [laughter]

[01:14:12.19] Well, you know, this is where I actually would love to talk to somebody behind the scenes of 1Password, on their product implementation.

Big fans. We’re big fans.

Yeah, big fans… But they must have it rough, because you have to dance around different idiosyncrasies depending upon the browser. So Safari has its own things…

It’s an uphill battle. It’s gotta be a constant uphill battle for them.

Yeah. It’s not native. It’s never going to be this beautiful work of art… Although they’ve done their best.

Except in Safari.

They should just get acquired, because they’re probably too big at this point.

They are too big at this point.

Pixelmator got acquired.

By Apple?

By Apple.

When? What year?

Maybe recently, 2025, or late 2024.

October.

Really? Finally. I mean, it took long enough, didn’t it?

Yeah, it took a long time. They’re not as big as 1Password, though.

I’ve been actually in this really weird world where I’m anti Mac-only software. Thankfully, 1Password is not Mac-only software.

Oh, because you’re a Windows guy now.

Yeah, I’m an everything guy. Linux, Mac, Windows…

I wasn’t aware of this before I decided to come on, just so you know…

What’s that?

I wasn’t aware that you were a Windows guy. I wouldn’t have agreed to come on.

Oh gosh, Nick. You’re missing out, bro. You’re missing out. Windows is where it’s at… [laughter]

For what?

You think I’m kidding around here?

For what? He wants to know where it’s at for what.

Where it’s at for everything. Everything works in Windows. Everything’s amazing in Windows.

Microsoft works?

Yeah, it all works. Linux even works on Windows. I can SSH into my Windows box right now and treat it Linux. With all my cores and all my RAM available, and I can add to it as I want to… I can ZFS, I can do whatever, all via Windows. It’s amazing.

I’m doing some side work, and there’s one person who’s doing it all on Windows. And we’re simplifying with Docker containers for everything, right?

The Docker containers just don’t work on Windows. I don’t understand it. It could be that I don’t know how to use Docker, because I really don’t.

Or Windows…

Or Windows… [laughs]

Well, I have Docker containers running no problem.

It could be –

I would blame the user at that point, Nick. I’m sorry.

No, it could be. But it does work with the other Mac developer that I share it with, so…

Maybe that’s more of a commentary on Windows people than it is on Windows. [laughter]

I will admit that Docker runs via WSL, which basically means it doesn’t really run natively on Windows, it runs natively on Windows via Linux… Which is the Windows Subsystem for Linux. It’s what WSL stands for.

That might be more native than on Mac. So…

Yeah. Well, it’s not native on Mac, that’s for sure.

No… [laughs]

I had an issue with running Plex, and passing through a GPU and all that stuff with Docker, so there’s definitely some…

But that’s going to be common. A PCIe device passthrough to a container is always a crapshoot. It’s always a challenge.

Oh, yeah.

But I really do like Windows a lot. It’s actually really solid.

That’s why you just run everything bare metal.

Just load your operating system, put the stuff on there… It’ll be fine. Everything’s gonna be fine. Write a script. Run the script.

Vibe-code that script.

Long-flag it.

Yeah, I mean, in all honesty, these Bash scripts I wrote for some stuff I do, for archiving and stuff that - they now have been ported to Windows, which basically is nothing. I mean, it’s just moving the file there, making it executable.

Changing the slashes to backslashes.

No, I don’t even have to do that.

You must not be referencing any Windows file paths…

It reads them both. What I do is I hop into Windows, I up-arrow until it says wsl -d ubuntu…

Oh, so you’re talking Linux. You’re not talking Windows.

[01:18:04.15] This is on Windows, dude. Are you kidding me? Last time I checked, the host operating system was Windows…

WSL is a subsystem, for Linux.

Yeah, I hop into that and next thing I know, I’m on Linux. I can do whatever I want.

Yeah, you’re on Linux. Of course forward slashes work on Linux.

I can navigate and traverse the entire Windows file path and run any Linux command against that Windows file path.

So you can type c:/ ?

C:/ Well, you’d have to CD…

Yeah, of course.

Yeah, I mean, it can do either or.

And you can do an LS or a DIR.

Both. LS’es work natively, out of the box, for Subsystem for Linux, and Windows. I mean, what I think honestly is super-cool is that you can have this box with Windows and Linux on the same box, and it acts as if they’re the same. Like there’s a marriage. There’s really no difference between Windows and Linux from the command line, because when you run WSL, everything that is Linux can access the Windows file path. There’s no difference. It’s all just the file path. It’s actually really, really cool. There’s probably some challenges with it that I’m not hitting personally, but I think it’s pretty freaking amazing that you can run Dockers and all this Windows-related stuff, and Linux, and it’s the same box. It’s crazy.

I know people who pay quite the premium to not run Windows, ever.

Yeah, what a shame, though, because – I mean… So here’s an example, is that you can air-cool, obviously, your CPU. You can run a fan or two fans, and have a heat sink on it and keep it cool. But you can also run an all in one cooler, like a water cooler to keep it really cold, like a 60, 70, 80 degrees Fahrenheit kind of thing… Maybe that’s Celsius. Yeah, probably Celsius. That’s my guess for that. But you can do that stuff. If you wanted to swap out an air cooler for a water cooler, you could.

If I wanted to add a PCIe card that adds four NVMe drives and allows me to have a 16+ or 32+ terabyte NVMe-based ZFS drive on this Windows box, I could. Right this instant. My gosh, you cannot do that with Mac. I mean, you can, but it’s not the same. So it frustrates me.

I told you he likes hardware…

Told you.

[laughs] My computers barely have fans.

Yeah, I’m not a fan.

Well, mine can actually heat a room. It doubles as a heater. Or it could if I didn’t cool it well enough.

That’s multitasking right there.

That’s right.

Alright. Well, the nice thing about computers is different strokes for different folks, and we can all do what we like, and we can all support each other, in whatever it is we want to do. What are we excited about? I’m excited about getting outside in the spring, and seeing what the world looks like. What about you guys?

Oh, my gosh…

Yeah. We live in the same place, and every year around this time, I’m like “I don’t think I can last another minute of this cold weather.”

It’s been bad. It’s been rough.

It’s terrible.

It’s been windy. Holy cow. I mean, you’d think we live in Chicago with how windy our city has gotten.

I got up on my roof yesterday, because some cap over the furnace exhaust thing blew off, and I had to get up there to measure it, to buy a new cap, to then go back up there and put it on… And it was like 50 mile an hour winds yesterday, or something; that’s what it felt like up there.

A snowcap.

My dad was holding the ladder and it was trembling. I was so terrified. I’m not afraid of heights –

[01:21:57.29] You picked a really bad day to do it.

I did.

You could have done it today. It’s really nice out right now. But yeah, yesterday was miserable.

You know what I did? I got up there, I measured…

And you fell.

No, luckily. I was very close. [laughter] I got up there, I measured it, and a roofer came today and put it on, because I wasn’t going back up there.

You we’re going back up there. He picked a much better day. What about you, Adam? What are you excited about?

Uh, honestly? Golf, man.

Golf. Okay. You’ve been golfing.

Really getting into the game of golf…

It’s a great time for it, great weather for it.

It’s a great game.

It is a great game. It’s a great thinking game… My brother visited recently and I’d forgotten how much I love golf, and he’s like – he loves golf as well, and so we just spent time on the courses, talking, and gabbing, and riding the carts, and planning our shots, and you know, “What are you gonna hit with?” and this and that… And so it’s just been fun getting back into golf, man. I mean, it really is a fun game to think through. It’s such a mental game, more than it is physical. It’s both…

It’s both, yeah.

Yeah, very much both. I mean, you can’t – I mean, if you had a disability where you couldn’t do golf with legs and arms - I mean, it’s challenging. So yeah, it’s definitely both physical and mental. You have to be able. I mean, I’ve got two arms so I can better swing that club, you know?

[laughs]

[unintelligible 01:23:21.01] if I hit it on the iron properly, and whatnot… But I love golf, I love the mechanics of – I think like a lot of things, you can find the unique details between certain things, and say “Well, if you’re hitting with a wood versus an iron, there’s a whole different way you stand, there’s a different place the ball might lie, there’s a different approach to it…” There’s all sorts of different mechanics that go into it. So golf is such a game to play with friends, and such a game to just tour the world with, too. So you can do a lot, man. The next time we travel, Jerod, I’m thinking “Man, we should hit some golf courses up”, when we travel next time.

Yeah. I always struggle because I’m a lefty, so it’s harder to find clubs. But Nick, what were you gonna say?

I was going to give you a pro tip that I saw on TikTok.

Next time you go and you really want to just show up all the other golf people - you know those cap guns?

Put one on the golf ball, and it’ll just make the most amazing [unintelligible 01:24:28.17] Smoke will come out…

Smoke comes out? That’d be cool.

Yeah. [laughs]

Yeah, you’ll hit that ball really hard, off the tee.

I should do that with my kids. Like, not tell them about it… But just because – you know, sometimes they’ll hit balls in our backyard, and just out into the corn tree – corn trees? That’s not a thing. Corn stalks…

Corn fields…

Corn fields, there you go. And I don’t play very often, because I don’t like to be bad at things, and I’m not very good at golf… But I can go out there and put a cap on it and just explode one, and then just retire, and just never hit again. They’ll be like “Did you see how hard dad hit it? The thing was smokin’.” That’s a good idea. I should get that working.

Well, if you like golf, Adam, let me suggest a close alternative. It’s called disc golf.

Yes…!

Oh, gosh…

Now, here’s the pitch for disc golf. All of the upsides of golf, none of the downsides. Alright? Here are the upsides of golf. You’re outdoors on a nice day. Check. You’re with friends. You get the conversations. Check. You get to have some sort of challenge mentally, physically, and you’re throwing a Frisbee instead of hitting a golf ball. Check. Alright? Here are the downsides that you avoid. It’s not that hard. Golf is very hard. You get frustrated. The ball goes sideways etc. It’s cheap. Cheap as in free. There’s no tee times, there’s no signing up, you don’t have to dress real nice… You can go shirtless, you can go shoeless if you want to. Nobody cares. It’s disc golf.

[01:26:08.29] Do you have to buy discs?

You have to buy discs, but compared to golf clubs, it’s cheap. And a round of 18 on a nice golf course, we’re talking - what? 60, 70, 100 bucks per round.

What are the other downsides? The etiquette’s pretty much gone. You know, golf has all the rules, all the etiquette, you’ve gotta do things right, don’t do them wrong…

Fix your divots… Oh, yeah. Do you know all the etiquette?

I mean –

You better learn some.

It’s called common courtesy, you know…

No, there’s specific etiquette in golf. It’s not just common courtesy. It’s like, you wouldn’t know that if you weren’t a golfer. Here’s the only downside of disc golf, is you’ve got to hang out with stoners pretty much, because they’re the ones out there disc-golfing, you know? [laughs] It’s like you and a bunch of hippies, but… They’re good people. They’re very chill. They’ll let you play through. So… Disc golf. Give that a shot.

It’s like frisbee?

It’s frisbees. Yeah.

What happens if I’m throwing it here and it goes way over there?

You’ve gotta walk over there and – just like golf. You’ve gotta go over there and throw it from there.

See, I’m pretty decent at golf. I can hit it on the fairway. [laughter] I’m not that good at frisbee, that’s for sure. However though, when I was young –

Everyone’s talking about frisbee.

…I’m talking about really young, I wanted to be a pro-fessional. And you can’t say “a professional.” You’ve gotta say pro-fessional.

I thought you said proficional.

I thought too it was gonna to be like a fisherman. Profishional.

Professional.

Professional. Lawyer.

No, man. Frisbee player.

Oh, really?

Like ultimate frisbee?

Skipping it off the ground twice into your hands, you know? Skipping off the ground twice through the hoop.

Now, there is a pro tour –

You know, catching it under the leg.

There’s a disc golf pro tour. This dream could be alive.

No, listen, the dream is dead. The dream’s dead.

Isn’t MKBHD – isn’t h on like a pro…

MKBHD is a professional frisbee –

That’s ultimate frisbee, right?

Ultimate frisbee, right, Jerod.

Yeah. Good game.

Which basically means there’s no rules. There’s no rules, and they put gorillas in the –

Now, he’s also hanging out with stoners, because… Ultimate frisbee is one of those games that –

They’re hanging out in the common area at the university, you know…

What is this podcast?

[laughs]

Alright, let’s call it a show. Let us know in the comments which is better, golf or disc golf? Or what Nick does, which is he just wakes up at 5 a.m. and rides a bike for two hours. Isn’t that your thing?

Yeah, I want to, but I’m becoming such a baby with the cold weather.

Oh, yeah, well… It’s your time, man. It’s your time.

So you go out there and bike in the cold for two hours, or what’s your – you’re a bicycle guy?

Yeah, I try and get – when I’m not being a baby about the weather, I try and get 20 miles in before my kids wake up.

20 miles in.

That’s about two hours, right? Or a little less…

80 minutes or so is what it takes me.

I live right next to a trail, so it’s very easy. And there’s no wind in the mornings I’ve found, so it’s really good.

Interesting. Why don’t you just get yourself a Peloton, or something like that?

Oh, it’s so boring.

Nature.

Yeah, I actually traded my stationary bike for a rowing machine… Much happier.

Yeah, I’m long Peloton. [laughter]

He ain’t lying.

Is that a funny joke, Jerod?

It is funny.

How long have I been long? I’ve been long Peloton for a very long time.

Yeah, you have.

I’ve been so long that they’re like “Nah, we’re just done.”

They said “So long” to you.

“We’re done. We’re done with this. We’ve gotta quit, because this guy’s just not stopping.” [laughter]

Alright. Well, this show’s getting long, too. Let’s say goodbye. Nick, thanks for hanging out, man. It’s always fun.

Yeah. It was a blast. Thank you.

So good, Nick. Bye, friends.

Bye, friends.

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. 💚

Player art
  0:00 / 0:00