Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
defn episode 6ae6acf85d52 Chris Pellets McCormick image

defn episode 6ae6acf85d52 Chris Pellets McCormick

defn
Avatar
0 Plays2 seconds ago

defn episode 6ae6acf85d52 Chris Pellets McCormick

Wherein Chris explains why nobody uses his code, not even him.

References:

PIKU https://github.com/piku/piku

NOSTR https://nostr.com/

Guest

  • Chris The Numinous-Blithe-Believer McCormick

Hosts

  • Josh The Non-BS-Believer Glover
  • Ray The Nebulous-Boggled-Believer McDermott

MP3 SHA

d2ea417902b8ea529799b6f8d9b709d4946bbc211468d5023c5e8dcd392f3038

UUID v5 from SHA + People

dc596b03-d723-5877-b9df-6ae6acf85d52

Transcript

Episode Kickoff & Guest Introduction

00:00:15
Speaker
Ray, are you going to be the kicker-offer today? be the kicker-honor. Kicker-honor. kick your honor Yeah. All right. Well, yeah. Okay. Let's start the podcast. Episode FFF374XY. No, it's no Xs. It's a FF, whatever it is.
00:00:36
Speaker
There are no Ys in hexadecimal. the Always start with an F off. That's for sure. We're looking for that one. ah Yeah, so you see from you see from the name that we've got Chris McCormack, ah the the wonder of the the the the master of Nord.js and all things that Josh detests.
00:00:58
Speaker
So we're goingnna be set off we're going to be set up for an incredible bout today, everybody. in the In the red corner, we've got Josh from Sweden. Hello, Josh. Howdy. Yeah, I'm sharpening my babashka right now, ready to excoriate, as we've said.
00:01:17
Speaker
Which sport are we doing here? I don't know. Just pick one. It sounds like we're in ring. Got my cricket bat. We've got a babashka.
00:01:30
Speaker
I'll sharpen my Node.js. I don't know. and Yeah. Sharpen away. Yeah. And then we'll do a few we'll do a few callbacks later. Wait, then I'll have my finger on that.
00:01:44
Speaker
Was that a joke? Yeah, you get it. Callbacks. Yeah. Okay. Doesn't matter. All right. Yeah. Yeah. This is not good. This is like... Restart. No Jeff's jokes from the very beginning and they're getting they're not landing. this is This is fucking weird. Okay. I get the joke now.
00:02:00
Speaker
Oh, my God. Because we were talking about NoJess and the callbacks. Yeah, yeah. Okay, we have to explain

Life in Australia with Chris

00:02:07
Speaker
it. Fuck. It is. It is probably like... Most people you don't have to explain it to, but in my case, I'm sorry.
00:02:13
Speaker
Well, it's like 1 a.m. one am m in Australia or something, we'll let you off the hook. Yeah, so second, yeah the other person apart from me on the podcast is Chris McCormack.
00:02:26
Speaker
yeah Hello, welcome Chris. Hello. Pleasure to be here, good to see you both again. Yeah, likewise. Well, the last time was at Heart of Closure and that was an absolute blast. Oh yeah, what a great conference.
00:02:39
Speaker
Yeah, yeah, well we can we can we can recap on that in a minute, but ah before we get there, you you were living in London at the time and you were traveling to ah Belgium for the conference, but you've since Brexited.
00:02:52
Speaker
So tell us all about that. You know, it, was a close vote or, um, you know, with, uh, with, with far flung islands or, I mean, has Donald Trump been around to talk to you about like, you know, how, how he can do a trade deal with you.
00:03:09
Speaker
Have you got any tariffs? What's going on? No, look, i mean, I love the UK. Um, But, you know, also love sunshine and... Sick burn. Sorry.
00:03:23
Speaker
No, no, the UK is great. Last time we talked, to you actually had some things to say about Australia that we had to get Welder to cut out of the episode, as I recall. I just installed whichever country I'm not in They're too far a away to harm me now, so um I can say what I want. I've been saving it up the whole time I was there, and now it all comes out.
00:03:42
Speaker
love it. No, no, I mean, we we always intended to do a year in the UK. And, yeah, we've done that. um And we're back now. And, yeah, it's exciting to be home. It was exciting to travel. And, yeah. was it Was it like a trip out for a year, then you're back to base? Or did you move somewhere else from where you left?
00:04:02
Speaker
Yeah, no, we came back to base. So we moved back to our same place where we've been living for the last few years. Yeah. Whereabouts are you? Not precisely. I'm not trying to dox you. Right, right. For the British terrorists, I'm going to come and 32.67 comma.
00:04:19
Speaker
Yeah, there we go. We're We're in a city called Perth in Western Australia. It's oh yeah yeah about two i think two to three million people um and very far away from everything.
00:04:35
Speaker
Sun is always shining here and it's sandy. So if you think of it as like, it's a big beach. We basically live in a big beach. Sounds terrible.
00:04:48
Speaker
So you're on the coast then you're, you're actually, uh, no, I mean, i walk a big cho no, no, no. It's just like a 20 minute drive. Oh, okay. Yeah.
00:04:59
Speaker
I do quite often go down to the sea, you know, like when I'm doing my closure hammock time, um, Yeah, go down to the beach, lie in the water for a bit. Actually, recently at our favorite beach, there was a ah there's a shark net around it, which is the only beach I'll swim around in.
00:05:13
Speaker
I was and about to make a joke about that, and then I was like, no, better not. but you know Yeah, well, so

Economics & Mining in Western Australia

00:05:20
Speaker
this shark somehow got in the net. And so they this beach, which the whole point of it is there's no sharks there, had a shark swimming around inside the net.
00:05:30
Speaker
And there was this, like, 90-year-old guy swimming there as well, and he said... um They couldn't get him out. He was like, well, you know, I've got to go, this is a good way to go.
00:05:41
Speaker
Make the papers anyway. Yeah. I mean, for me personally, I probably i probably would have hopped out pretty quick. Yeah. Yeah. You've got some Node.js left to right in your life.
00:05:52
Speaker
but says so That's it. I don't know if the world needs what I have to write, but I'm going to write it anyway. I love that attitude. I i share that approach. In fact, I'm sure the world does not want what I have to write, but you shove it out there anyway, you know?
00:06:08
Speaker
but We're kindred spirits, Josh. You're talking my language.
00:06:14
Speaker
ah Kindred spirits divided by a common runtime. That's it. Right, okay. so um So, yeah, you're in Darwin. It's all nice. I think Western Australia is kind of like, isn't it? It's Perth.
00:06:32
Speaker
daci so this city Yeah, sorry. I thought you saying that as a joke on purpose. No, no, it's it's called Perth. I thought you were referring to, oh, you're on Linux, so you're not even on Darwin in any way, shape or form, right? No, no, I'm far away from Darwin. I'm thousands of kilometers from Darwin and also from the operating system.
00:06:54
Speaker
Yeah. Okay. but my So my geography is obviously bad. um my Everything is bad. But um yeah so yeah if I remember rightly, Western Australia is like, or it was 10 years ago at least,
00:07:09
Speaker
um looking for immigrants to come to mine coal and to build kind of like infrastructure for fossil fuel. Great.
00:07:21
Speaker
Just what the world needs. Yeah. Yeah. you know there's a lot of so So what's going on over there now? I mean, is that, is that, is that, because I think that on the one hand, Australia was at that point, at least maybe it's 10, 15 years ago, like screaming for immigrants to come and build out Western Australia.
00:07:38
Speaker
Western Australian coal mines and stuff. And I'm guessing based upon the sort of like the, the noises I hear from afar that the Australians aren't so super excited about immigrants anymore.
00:07:50
Speaker
um Look, I mean, I don't, I don't, I don't track politics that much. um Okay. I guess, God damn Yeah. This is a politics show. i No, but you're right. Digging stuff out of the ground is the main ah the main thing that happens in Western Australia. I think it's something like 6% to 9% of GDP. It's like a fairly significant chunk of and ah what's going on here. And it's like certainly money coming in to WA comes from ah digging things out of the ground and sending them overseas.
00:08:23
Speaker
But, ah you know, it's it's since I was a kid, it's grown in size quite a bit. So, like, there's a lot more happening now. Like, there's Clojure programmers, the other two Clojure programmers.
00:08:35
Speaker
Okay, I was going to say plural. How many is plural? It used to just be me, but... No, actually, a friend of mine from here put me onto Clojure.
00:08:45
Speaker
um So, yeah, he was he was into it before me, but... um Yeah, no, it's it's been happening now. You get meetups. Yeah, before it's cool, certainly.
00:08:55
Speaker
um Yeah, no, mining is mining is big here. I think some oil yeah some oil happens offshore. They have like offshore oil rates. I think my cousin works on one of those sometimes. He's an electrician.
00:09:06
Speaker
So coal mining is good for closure. Is that the message that we're putting out now? Is that the fundamental message? You know, I'm not sure if it's actually any coal mining. Fossil fuel exploitation is great for closure.
00:09:18
Speaker
but umm just going to fact check this for a second here. Mining in Western Australia. Let's see. what are What are they digging? Oh, yeah, there was coal mining. Mineral mining.
00:09:31
Speaker
i I don't like... Fact-checking is not on brand for a deafened podcast. Like, we just say shit, you know. Wait a second. I've i've got some statistics here. Oh, shit. Leave the answer on the podcast minute. Come on. People love it. i Accounted for 94% of the states and 46% of Australia's income. So basically, West Australia is bringing all the money into Australia.
00:09:54
Speaker
And all the other states, they're just like... i don't know what they're doing. But... um Not closure, that's for sure. But we're doing all the work.
00:10:05
Speaker
We're exploring. We're bringing all the money in. ah Wait a second. do i I said I don't want to talk about politics, but yeah, anyway. oh I guess this is where we've ended it up. No, no. We've done it now.
00:10:17
Speaker
I don't know. Certainly, immigration is still very high, I think. Right. If you look at it ah in context to other countries and other times in history, I think Australia has an exceptionally high immigration rate.
00:10:30
Speaker
Okay. And um'm I'm not going to make a comment on that, but it is what it is. Yeah. but yes yeah yeah yeah Yeah. Yeah. Okay. sometimes we like it Sometimes people don't like it.
00:10:43
Speaker
I don't know what's going on. i like I don't really listen to other people. so wise Wise policy. Are we able to edit that part out? Yeah, like all of it. The bit about you not listening to other people. No, that has to stay in.
00:10:59
Speaker
Anything that paints me in a bad light, I'm sure you can just like... Let's just stop now. We'll just the podcast. that's for the

JavaScript & Node.js Passion

00:11:10
Speaker
That's for the director's cut. you know We'll just pull out all of the embarrassing things.
00:11:14
Speaker
Well, basically, if I open my mouth, it's it's all over.
00:11:20
Speaker
Read some more from the internet, please. yeah High quality content, yeah. But speaking speaking of embarrassing yourself, so you tell us about the ah code that you write.
00:11:35
Speaker
ah How did you get into closure? Before we go there, before we go there, that's yeah oh yeah, go on now, we'll do the how did you get into closure, go on, yeah. yeah Yeah, how did you get into closure?
00:11:47
Speaker
Oh yeah, so but we can, yeah. yeah yeah Yeah, okay. I mean, very briefly, the way I got into closure was ah during a game jam, my friend k Crispin, um we we were building a game together. We were, you know, about to build a game together. i think it was about 2016.
00:12:02
Speaker
And he said, look, I want to use this new language. And I was like, what what is this? And I had a look at it and felt very confused. And I was like, all right, this looks pretty cool. I mean, I'll learn it.
00:12:14
Speaker
So i I started learning it and I was asking Crispin lots of questions, which, by the way, is a great way to learn a language, having someone there you can just bounce stuff off. And then I dreamed in parentheses for about two weeks. Like literally I was having dreams where there was parentheses.
00:12:28
Speaker
um And then my brain was rewired and I can't program anything else anymore. So it's really a ah disaster for me um in terms of employment and I can't go back.
00:12:39
Speaker
Yeah. It is a problem. i I have a friend like that who curses my name because I introduced him to Clojure, and now he's like, I'm virtually unemployable. So I'm just wandering around begging for Clojure jobs wherever they're doing it.
00:12:56
Speaker
So yeah. yeah Is that like Crispin Wellington? Yeah, Crispin Wellington. So he's done Spire. Yeah. And a few other very interesting things. Yeah, we've seen him around the Clojureverse, I believe.
00:13:09
Speaker
So you wanted to talk about Heart of Clojure, Ray. Oh, i was just going to so we obviously that that's what mentioned at the beginning. That's where we we met each other in person the last time. And obviously we had the 100th episode where you were a guest.
00:13:24
Speaker
um But yeah, let's just ah reminisce a little bit. Do a bit of you know nostalgia for last year's Heart of Closure. Because I thought it was a pretty epic conference, like Josh did.
00:13:38
Speaker
Yeah. So are you going to let us down, Chris, by saying no, it was shit? um now Now that you've left Europe, you know, you can say anything you want. No, it was great, wasn't it? Yeah.
00:13:50
Speaker
I don't think Arno listens to this podcast unless he's on it. So, you know, and even then he's only half listening. So you can say what you want. Fair enough. Yeah. No, no. I mean, it's it's a great, it was a great conference and I can understand it it was it seemed like a lot of work.
00:14:06
Speaker
but for the people putting it on. so i can understand why Arnie doesn't want to do it every year, but I'll definitely be at the next one. um You know, many people said the best conference I've ever been to, and I don't think anyone was exaggerating when they said that.
00:14:20
Speaker
It was just, a yeah, just a great conference. You would even fly, I mean, literally fly around the world for it. I mean, that would be quite an effort. Wow. That's an endorsement, yeah.
00:14:31
Speaker
That's a hell of an endorsement, yeah. Wow. Okay. But it was it was really good. I mean, I think when we we had a kind of like a panel discussion um on the conference, and it was our first ever conference live audience-based episodes. So that was quite fun.
00:14:47
Speaker
And um we had we had a great time with you, Chris. And you know it was a very convivial, very funny kind of show, um which was which was a relief because I didn't know how it was going to go. Just awkward silence.
00:15:03
Speaker
Yeah, exactly. Yeah. ah But and we did say we we'd sort of have a longer conversation with you because obviously it was a fairly short episode and also we had another guest on as well. So, um you know, we didn't get to fully explore all the things that we wanted to with you.
00:15:20
Speaker
But yeah, and and so... Just in terms of your background, you you're doing a game thing there, you're learning Clojure, but I think that you're kind of like, some the thing that you're most passionate about, let's say, or the most interested in is the JavaScript ecosystem universe.
00:15:39
Speaker
So maybe tell us a little bit about what what kind of brings you there. why why why are you so invested in that ecosystem? I assume it's a deep sense of self-loathing, but you know I'll let you answer.
00:15:55
Speaker
Prefigurative comments there.

Exploring Decentralization & Future Internet

00:16:00
Speaker
Yeah, no, I mean, it's just, ah I guess it's just the ah typical thing of like, I was already invested in the ecosystem and I understood it pretty well and package JSON versus ah whatever they do in Java, whatever nonsense they're doing over there.
00:16:16
Speaker
And so... POM.XML. Yeah. POM.XML. As everyone knows. Or what's the Gradle thing? I don't know. Gradle.sh or something.
00:16:27
Speaker
M2. Yeah, I don't know. I mean, obviously, I have Java on my system. Like, ah Shadow Seal Jazz can't run without Java. Right. But, ah and and no, I mean, Java's an amazing, you know, it is what it is. it's an It's an amazing piece of technology. I just happen to know the the Node ecosystem better.
00:16:46
Speaker
And I found that the VM, so a bit of a silly reason, but when I was deploying, so I have this server, right, where I like to build a lot of ah experiments.
00:16:57
Speaker
um ah What is it that Lou said? It was normalized, scrappy fiddles. Yeah, scrappy fiddles, yeah. My version of that is kind of like just deploy whatever crap comes out of my head onto the internet soon as possible.
00:17:13
Speaker
Yes. So I have a server where i push up. Welcome to the show. I don't know what you call them, like code turds or something like that. Wow. Please, this is a family program. Code stools, please.
00:17:31
Speaker
Exactly. can You can bleep that bit. believe that bit Yeah, so no, I had this server where I was deploying them, and i noticed when i I did at one point, because Crispin actually convinced me, like, come on, dude, you've got to do the real thing. You've got to get the JBM on there. You've got to be deploying these ah these Java-based code turds, not JavaScript-based code turds.
00:17:51
Speaker
So I was like, okay, I'll try that. And I tried this, but basically I found that there was overhead. but like Whereas Node.js, if there's nothing if there's not nothing actually...
00:18:03
Speaker
so Most of my sites have zero users, right? Like the vast majority of everything I do has zero users. and Right. Not even yourself. Well, exactly, yeah. I mean, why would I use such an awful person?
00:18:18
Speaker
but but anyway so I have these bits of code, these code turds on a server, a lot of them. so kind like Have you got a code turds.com, Chris? Watch yourself. I mean, have you ever been to whales and to like a sheep?
00:18:34
Speaker
if yeah have you been to like a, into their wilds of whales? Like man, my wife and I went on a trip with whales. And you're out Wales you're walking in a field, there's a castle, and there's always like a bunch of sheep and then the entire thing is just covered in these like little pellets.
00:18:48
Speaker
So maybe that's an that's a nicer word, I'm shipping ah code pellets. So if you can imagine all of these code pellets on on this server. And what what I found with Node.js is because it doesn't consume any resources when it's idle, basically I can just have one.
00:19:04
Speaker
Like have a box with like literally 40 apps deployed on Whereas when I was trying to do it with the JVM, um it was like still consuming resources. um So there was that. And then, ah yeah, I'm just more used to the a JavaScript way of doing things. I also found quite often when I was looking for libraries, I'd like look for Java libraries tend to be, how do I put this, like more, there's lot more enter enterprise-y stuff, but also ah they don't just do insane things.
00:19:33
Speaker
Like people writing Java don't just like build insane modules that do something weird. But most of the things I'm building are an insane thing that does something weird. So I quite often need something from NPM where JavaScript programmers are just like puking out code all the time, like does all kinds of insane things. So, and I need to, I need to, yeah, pellet fest.
00:19:55
Speaker
NPM, they should rename NPM to pellet fest. They do. It's like Nord pellet module. Yeah. I was going to say the probably is answering. Yeah, exactly. The Nord pellet manager. Yes.
00:20:07
Speaker
yeah yeah Yeah. So I was just more accustomed to Node Pellet Manager than your Gradle or M2 what have you. Yeah, yeah Maven. Yeah. I think the Java programmers are required to wear like ties and stuff, right? And spectacles and all of that.
00:20:25
Speaker
I basically imagine that they all look like characters from Dilbert, like when I picture Java programmers. That's what's in my head. Whereas JavaScript programmers, well, you know, I can't even say what they're from.
00:20:37
Speaker
Can't say that on air. Some kind of weird manga. don't know. Big spiky hair. I mean, I've been to Java conferences and I've been to JavaScript conferences and definitely the JavaScript conferences tend towards more kind of, let's say, yeah,
00:21:00
Speaker
yeah ah More tattoos, more piercings, more kind of like yeah more more yeah more young, more youthful, that's for sure.
00:21:12
Speaker
And the Java programmers tend towards yeah a bit more shirts and yeah sort of ah more business casual, norm core kind of environment. yeah So JavaScript yeah programmers don't wear shirts. Is that what you're saying?
00:21:27
Speaker
That's the difference. They wear T-shirts or ripped jeans and T-shirts. It's much more kind of, yeah. um um I don't think hippie is the right word, but more characterful, I would say.
00:21:42
Speaker
Extra. So Java programmers are basic. don't mean that basic extra. Is that extra? Oh, basic and extra. Okay. I mean, I've never actually worn a shirt to a JavaScript to conference. Yeah.
00:21:55
Speaker
You're, you're straight. And no, you just show up in your board shorts and you know, see light say good day
00:22:06
Speaker
ah Lord, where were we though? Like, uh, I've talked to JavaScript conferences, by the way, and this is something we should do in the future. What did you yeah we talk about? True. true I was talking about Node.js, actually, and I was i was and was talking about how when I used to work, a long time ago, I worked at Toyota, and we I kind of like introduced essentially cloud programming there ah via Heroku. And to do that, we used Node.js.
00:22:36
Speaker
And I convinced all of the sort people at the ah website to move away from the.NET infrastructure to the Nord infrastructure. And there was a lot of you know wailing and gnashing of teeth at the beginning, but in the end, everyone liked it.
00:22:50
Speaker
He left after everything kind of caught fire. Yeah, exactly.
00:23:00
Speaker
Well, no, everything everything really worked everything worked a lot better, you know, um because they were able to deliver lot more quickly. Oh, wow. Okay. No. Bad boy. Sounds right.
00:23:11
Speaker
ah Yeah. And so I was talking about how how you can deploy Node.js applications into Heroku with, you know, Git push. and It still feels like that's that's kind of like what... I mean, but to your point about like the the simplicity and the and the sort of lack of formality and the lack of process, this is like was super perfectf super great, in my opinion, about Heroku and about JavaScript and, of course, Clojure and ClojureScript in general, is that you know you should just be able to run these interpreted languages, do a Git push, and bam, you're up.
00:23:48
Speaker
um Yeah, I mean... So I'm a big fan of that. And I've used i use Heroku back in the day. And there's another one, Netlify, I think a lot of the JavaScript programmers use now.
00:23:59
Speaker
Yeah. is Heroku's went horrible recently with the Salesforce stuff. and Right. there's also what Isn't it called application.garden or something that Jack Rusher and some folks are working on, which is, I i think, supposed to be kind of a Heroku experience for Clojure, if I got that right.
00:24:20
Speaker
I think there's something else though. i think that's more to do with closure than closure script. And, uh, yeah, yeah, yeah. It's very small little closure, like easy to find stuff like that. Uh, the, the sort of replay, cause everyone kind of essentially saw the writing on the wall when Heroku started Heroku changed their pricing model.
00:24:40
Speaker
it used to be that you could have like hobbyist plans and stuff like that. And I think they all kind of went away. um So then I think a lot more other ISPs like Netify came along and said, okay, we can we can give you like essentially free free um pretty small application spaces. I don't know if you were in your own box, Chris. Yeah.
00:25:00
Speaker
Yeah. So, i mean, and by the way, just just while I remember it, Jack Rusher, excuse me, I presume that can be edited out. Jack Rusher said something. um Leave it in, Welter.
00:25:16
Speaker
Yeah, just while we're on the topic, before I forget, Jack Rusher said something really interesting at Heart of Closure, which was ah simple's great, but we should try and do easy as well as simple, which I thought was... Really interesting. um And so, yeah, I mean, i when I'm deploying, I'm using this little open source ah thing called Piku, which is kind of like it's basically modeled after Heroku.
00:25:37
Speaker
And it's just a very small Python script, like couple thousand lines of code. You put it up on your server and it sits between ah it sits in front of Git, basically. So SSH, you hook it in.
00:25:50
Speaker
And then you can just do git push to your own server and it deploys there. So that's what I'm using to to deploy all my fleet of pellets of 40 apps or whatever it is, is this Piku.
00:26:02
Speaker
And Piku's great. It's like, it you know, like all the kids now are using Docker or whatever, but Piku is just like bare metal Linux type deployment system. So it's very minimal. Yeah, I'm a big fan of it.
00:26:14
Speaker
I'm quite biased because I'm also a co-maintainer, but... um Shout out to Rui Kamo, who created Piku. well We'll have to left to get a link to that in in the show notes.
00:26:26
Speaker
yeah It's basically just piku.github.io. if you If you want to use this newfangled link technology, you go for it. The semantic web. Gotta have that.
00:26:38
Speaker
yeah I was watching something recently. There's a there's a guy um who I'm hoping we can persuade to come on um in the coming months. um who does YouTube videos about Clojure and stuff like this.
00:26:51
Speaker
um And I'm blanking on his name for the moment. But anyway, we've got him we call him in the list, Josh. We'll edit it in. yeah think it's Andre. Andre is someone. um Anyway, he he's really good. And he he did this ah sort of little dive into deploying Clojure on using Coolify.
00:27:11
Speaker
i don't know if you've heard of Coolify. Right. Yeah, it's another one. Coolifier is a bit like that. you know It's a bit like the some some program that you run on the box. And essentially, it does all of the monitoring and maintenance and deployment stuff for you. And it gives you a dashboard and all these kind of things.
00:27:27
Speaker
So I guess it's Piku and Coolifier in the same space. Exactly, yeah. yeah it's it's ah And it's the same with there's a whole host of them, actually. And there's Docu, which is like the same idea but with Docker containers.
00:27:39
Speaker
Yeah. um Yeah. yeah But it's great. Lots of options these days for people who want to self-host. So people who are completely insane, you know, we've got lots of choice now. Yeah.
00:27:50
Speaker
but I'm doing some self-hosting on another project, and I think it's really it's really nice to have these options, you know. Yeah, yeah. I hope this is a literal server in your closet, though, because it doesn't count as self-hosting if you're using some VM in the cloud. Oh, no. You've added them. No, boy, no.
00:28:08
Speaker
Yeah. You know, like, I mean, we could go down a real rabbit hole here, but if only IPv6 was like a thing, then you could actually, everyone could, people could host websites from their phone.
00:28:22
Speaker
You know what i mean? like Yeah, yeah, yeah, yeah. It's, it's, that's the way the internet should have worked. The internet should be this like distributed system where any computer can connect to any other computer. And we don't have to have these like servers in between. It would be revolutionary, but unfortunately that's not the way it panned out um for now, at least. Yeah. It seems like, it seems like every attempt to do that, like Skype was a great attempt to do that.
00:28:45
Speaker
And it eventually got sort balked out by Microsoft and, and then they put a server in the middle. which is a shocker. Right. Yeah. yeah I mean, that it's almost as if there are mysterious forces wanting to centralize things into, you know, what is it? Five giant websites that each have copies of the other four or screenshots of the other four, whatever the line is.
00:29:10
Speaker
Yeah, yeah, yeah yeah that's so yeah. There is always centralizing pressure. I mean, i think some of it is technical as well because often it's much easier to build ah a centralized thing than a decentralized thing. and Yeah, absolutely. you know, I don't actually think, you know, like nerds tend to be, ah tend to love the idea of decentralization, but I don't think most people, they don't want decentralization.
00:29:32
Speaker
What they want is actually privacy, you know, convenience, things like that. And I think, Although I actually think decentralization will feature strongly in the future of the internet, but I think it's something that will be arrived at because of the other things that people want.
00:29:47
Speaker
Like when bad things happen, you know, ah people tend to look for alternatives. Like, you know, if you've seen that with X and like a lot of people being against the new owner of X. And so there's a big exodus towards, in fact, maybe I should rename it to Exodus.
00:30:03
Speaker
but Yeah, I was going to say Exodus. Nice one. Worthy of Ray there.
00:30:09
Speaker
Yeah, so they, and a bunch people end up on Mastodon. um Yeah. so So those kind of things, yeah. While we're on decentralization and the future of the net, I just have to like plug a book here or a concept from a book called The Dandelion Net.
00:30:26
Speaker
So dandelions reproduce by just like throwing millions of little spores into the wind and they go wherever. And so this dandelion net is kind of a decentralized you know future internet.
00:30:42
Speaker
ah So the the book is called A Half-Built Garden, which is just amazing. So we'll add that to the show notes. It's Josh's Sci-Fi Recommendation. Oh, right. anyway It's a fiction.
00:30:53
Speaker
Is it a part of the show now, is it? The Josh's Sci-Fi Recommendation. Yeah, no now we've got to do that in every episode. Josh's Sci-Fi Recommendation. Throw them in there, Chris. yeah Throw them. Do it.
00:31:05
Speaker
um Yeah, no, but on on the... um the decentralization thing. Maybe we don't want to go too far down a rabbit hole, but like, uh, there is a, cause there's, there's always these new projects. Like I tend to watch this space a bit.
00:31:19
Speaker
And, uh, There's a really interesting one at the moment called Nostr, N-O-S-T-R, which is comes from the root Latin word for our, so our as in belongs to us.
00:31:30
Speaker
And um it's pretty fascinating because it it basically it hasn't tried to go to the full decentralization where you've got like my computer talking to your computer, but they've got this idea of relays, right?
00:31:43
Speaker
And these relays are servers, so still using someone else's server but they're kind of very... um they' They're dumb servers. Like, they don't... All they do is, like, collect data and re-disseminate it. So there's no logic on the server.
00:31:56
Speaker
and And practically speaking, what it means is, like... It's effectively a very decentralized network that no one can really shut down because if you don't like if a relay blocks you or or or gets shut down or something, you you connect to several relays. You distribute your um your posts across multiple.
00:32:13
Speaker
So I've been watching that technology as well. I mean, the space is populated. How does that vary from BitTorrent? So BitTorrent is for distributing files, so like file sharing. So ah me and you both have, so Josh wants to download a file and he can download some pieces from me and some pieces from you. So that's like a direct connection from Josh's computer to my computer and to your computer.
00:32:38
Speaker
And that works with um something called gnat hole punching, which is like where it actually bridges through, it It bridges through Josh's router and opens up a port and ours can connect back and we've all got open ports. So it does some tricky stuff there, but but basically it's still, yeah, so that's like proper decentralization computer to computer, whereas Nostra is more like you've still got servers running in the cloud called relays, and it's web technology. So my web browser connects to one of these relays using WebSockets and it's
00:33:12
Speaker
And I can send my posts there and they're cryptographically signed on the client. So there's there's no, like the server is doesn't do any authentication or anything like that. It literally just takes these like signed posts and keeps them for me.
00:33:28
Speaker
And when someone else says, hey, I want Chris's posts or actually like public key XYZ's posts, it then sends them back to that person. So it's proxy, essentially, for this peer-to-peer network.
00:33:42
Speaker
Exactly, yeah. It's a proxy between different clients talking WebSockets and doing cryptography. Right. So you basically have to subscribe as well, which sounds good. Because otherwise, when I hear Relay, I'm like, oh shit, spam. But it sounds like this is, yeah.
00:33:57
Speaker
you can't get the spam unless you ask for it type thing. Yeah. I mean, they're still spam. So, and I think that's one of the problems the network's going to face because like, i mean, if you think about, so the, if you think about Twitter, you you know, I write a post and then people can write any, any, any, any any person off the internet, trying to think of a better word than person, but anyway, any, any entity off the internet can come and write a reply and fill it with whatever they like. And so this network suffers the same problem, but you know, they're not as pellet posters.
00:34:29
Speaker
Yeah, I mean, basically, to you know you need a pellet shield, and their solution is inna in Twitter or X or whatever, or on Macedon, you've got somebody who owns the service, so they they set up a pellet shield on the server side.
00:34:45
Speaker
the ah The Pellet Shield um in Noster would be deployed like at on the client side. So you'd run like ah similar to email where you know your machine can classify things as spam.
00:34:56
Speaker
And mean... A Pellet filter, yeah. Yeah, a Pellet filter, yeah. yeah Oh, Lord. Yeah, but and this sounds interesting, and well we'll drop it in the show

Blockchain, Crypto, and Their Impacts

00:35:07
Speaker
notes. But perhaps we should veer back into as much as I don't want to veer back toward the Node.js.
00:35:14
Speaker
Oh, but Ray, you put your finger up. Oh, my God. What are you going to say? Well, I going to say it because I Actually, Chris does have a blog. um And I, for my sins, before the closure, I read it, you know. and Wow.
00:35:31
Speaker
Wow. I remember reading a lot about it. It's good to know that I have one reader.
00:35:36
Speaker
Well, ex-reader, but, you know. ah You made the mistake once. Yeah, I've got my pellet shield up now.
00:35:49
Speaker
perfect but But it's it was interesting because, you know, and I can't remember all the details for obvious reasons, and I've tried to blank them out. I do wake up sweating.
00:36:03
Speaker
I do wake up sweating sometimes, you know, remembering some of the posts. ah of Anyway, the... um
00:36:15
Speaker
if We're not doing great finishing the sentence on this episode.
00:36:21
Speaker
Let's just talk about Node.js and then you'll remember this blog post. I was just going to say that but yeah I used to work for a blockchain company so i kind of like was in that space as well and you were doing some things to do talking about blockchain and decentralization and I just, um you know, I've got to say that from from my perspective, at least, i must haves but I feel like we're in a bit of one of these horror shows right now where I thought like crypto was kind of discovered to be a total scam fest.
00:36:53
Speaker
You know, I liked some of the technology and we can we can dive into that if you want to. But, you know, certain aspects of the cryptographic, some of the crypto stuff that came out of it,
00:37:03
Speaker
was really good. but But the general kind of concept of crypto tokens and coins obviously was just a scam. And it was like blew apart with the whole kind of um with the FTX stuff and with the whole kind of stable currency. i mean, it blew apart several times because you had the FTX, you had NFTs, you had ICOs, all of those things like, yeah.
00:37:26
Speaker
I think NFTs and ICOs were just scam fests, but they didn't really, they didn't really collapse the ecosystem. Whereas the, the sort of but like that, the the, the, the stable coin stuff, uh, now what was it called? Terror, um, the, the, the, the terror, uh, collapse, that was really bad.
00:37:42
Speaker
You know, that was like, right and that, that was essentially, but you know, what sort of precipitated the FTX problem. And, um, you know, without getting into the whole, like, like history, but, but there were certain seismic things, which essentially, you know, on the one hand, like revealed it to be full of like scams. And then on the other hand revealed the sort of concepts and the tech to be absolute bullshit from a yeah fundamental, like especially decentralized finance, you know, this whole defy thing.
00:38:13
Speaker
um yeah So, so, you know, that all that kind of went away. And then, and And the Bitcoin collapsed and Ethereum dipped and everything like that. And then suddenly US Treasury decided to allow these EFTs.
00:38:28
Speaker
And now we've got all the crypto bras kind of like funding the election. And it's like, holy shit, what's going on here? it's like It's like a horror movie where the there why like the crypt opened again and all these fuckers came back Yeah.
00:38:43
Speaker
the cryptora yeah you know i mean The Crypto Crypt, yeah. yeah.
00:38:48
Speaker
You're absolutely right. And and I mentioned NOSTA because what really attracted me to it was there's no Web3 in it at all, right? There's Cryptography. And I really don't like the phrase... ah cryptocurrency.
00:39:00
Speaker
because yeah When people just use the abbreviation crypto, it's like yeah crypto is this really important, really special mathematical construct that has helped the world so much. And it's a defensive technology. You know what i mean? like it's It's a technology for preventing bad actors from you know harming you uh and then it's been it's kind of like now when you say when you say crypto people immediately think of this horrible like scam ridden scene yeah but um yeah so nostr doesn't use any like coins or anything like that it is the network is primarily populated by um bitcoin people at the moment uh it's it seems to be it seems to be uh So, yeah, i don't know. Maybe you want to give it a few years, but it seems to be growing usage among other people, which is great. I mean, it seems to be more widely adopted.
00:39:49
Speaker
um and ah But the the great thing about having Bitcoin people in there, the one thing you can say about Bitcoin people is they are absolute zealots about the decentralized thing, right? So, yeah.
00:40:03
Speaker
the reason i The reason I'm interested in Nostra is because it's this open protocol. Anyone can run a relay. Anyone can write a client. um And it's got this really nice way of just kind of dodging around the fact that the internet is not very decentralized with broadcast into multiple relays.
00:40:18
Speaker
And it's got this culture underneath it of these hardcore freedom-loving zealots. um So I'm pretty sure that the relays will stay up through a nuclear war or something like that because these people, there's no way they're going to shut down their NOSTA relay, right? they They're going to keep it running.
00:40:36
Speaker
And so for me, that's ands like I tend to be I tend to try and look at these things like you know Like I said, I don't like to get involved in the politics. So whatever they say, they're talking they're saying some rubbish.
00:40:47
Speaker
Some of the people on there are saying some rubbish. That's cool. It's okay. I don't mind if people say rubbish. I'm fine with that. But I really like the technology itself. That's why I feel so at home here. yeah
00:41:04
Speaker
But yeah, I mean, yeah. So just fundamentally, I agree with you, Ray. There's like a lot of scams, but and I think The technology itself in this case is really interesting, and it's definitely not Web 3.0, and it's using cryptography, not crypto coins, and not not blockchains, interestingly. I mean, yeah, anyway.
00:41:24
Speaker
Yeah, yeah, okay. So I think i fundamentally, I think what we're but were kind of central in agreement around anyway is that cryptography is cool, decentralization is cool,
00:41:37
Speaker
you know, um and that's good. And I think we're all for it, you know? And then the question is yeah like a lot, a lot of the questions are, it turns out like, how do you sustain it?

Programming Habits & Philosophies

00:41:47
Speaker
How do you fund it? How do you do all those things?
00:41:49
Speaker
And those are bigger questions that we still need to work out, I think. um Yeah. But, um but in, in the current situation, I feel like decentralization will get a new boost. I think.
00:42:02
Speaker
hope so. Yeah. I mean, yeah. yeah I can't remember what was going say. Yeah, I was going to say mean things about Node.js. So, you know, please give me the opportunity to do so by by talking about NBB.
00:42:17
Speaker
Or, I mean, we could talk about something if we if if we want a disagreement, which is LLMs. We're coming to them. We covered crypto. All right, we'll get to that in a bit. Yeah, because you mentioned like there there's kind of a natural progression from your addiction to Node.js to your addiction to LLMs. So two two very harmful drugs. So just walk us through that.
00:42:38
Speaker
What happened? How did your life spiral out of control? Well, I mean, you so you but did you want to talk more about Node.js? Did you have questions? Well, yeah, I mean, I'm just like, I want to dive a little bit deeper into NBB and what you're doing with it and why you find it so compelling. Because, I mean, for all the joking you and I see...
00:43:00
Speaker
eye to eye on kind of the reason we're using NBB and BB and bebe and Skittle and all of this. It's just like we disagree on the technologies because I'm afraid of Node.js and you embrace it.
00:43:13
Speaker
And I'm afraid of Java. Okay. Well, I don't use Java either. its well Only Babashka, only Skittle. Yeah, yeah, yeah. Oh, that was an amazing that was amazing. That slide um that was shown from the last Clojure Conj of the BB usage.
00:43:29
Speaker
yeah It was ah Alex... Yeah, yeah Alex Miller's state of closure or survey report. or so but By the way, hot news. I happened speak to Alex Miller last night.
00:43:41
Speaker
This is not a joke. On a proposal? This just in. Yeah, this just in. Apparently, only half of the... response Only 60% of the respondents actually answered that question. So although he said 95%,
00:43:57
Speaker
send it was more like half turns out. But ah this is on the actual question. The question was like, what Okay.
00:44:10
Speaker
one different sure but the question The question was, what was the last time that Clojure surprised and delighted you? um ah Which maybe we can yeah can also ask you. but ah anyway so so And he was like, yeah yeah when I did some local election stuff, I use Clojure for it, blah, blah, blah.
00:44:29
Speaker
And I think, and and and Eric Norman said, okay, well, what about Babashka? That must have delighted you, you know. And he's like, oh, yeah, actually, yeah, it was quite good, yeah. But, and then blah, blah, blah.
00:44:39
Speaker
Yeah, so, yeah, that that was there. But, you know, I'll link to the apropos episode if you like. Yeah, great, yeah. I remember seeing that come up. i need to check out.
00:44:52
Speaker
Yeah, cool. But we were talking Babashka is very popular, that's for sure, yeah. And being on the same page, ah Josh, with all this tech, so like MBB, BB, Skittle, yeah.
00:45:05
Speaker
um Almost the same page. Almost the same page. Yeah. and and And so why do I use it? I mean, fundamentally, like my whole programming experience has been driven by like hardcore laziness. So I'll be, if, you know, I'll have a task to do, like to give you an example.
00:45:23
Speaker
So I just spent maybe five days. I had, ah while I was in the UK, I didn't file a single expense, right? And so I had ah a ah mailbox called Expenses, filled with expenses.
00:45:36
Speaker
And I spent five days building a LLM-driven AI, what do you call them now, agent. I built an agent that can read my expenses, read the PDFs, and then classify them for me as, like,
00:45:51
Speaker
what that expense is for. So then I can file it like in two seconds rather than, because what I didn't want to do was go into every mail, open every PDF, find all the details myself, which probably would have taken 30 seconds per email.
00:46:05
Speaker
and Whereas now it takes three seconds. ah And that's basically laziness. Like I could have spent an afternoon doing that, but I spent five days building. And that just to give you that, I mean, that's like a very typical thing for me. And also why my wife is starting to divorce me.
00:46:20
Speaker
um
00:46:24
Speaker
yeah is that Is that like breaking news or what? ah This just in. We met Alex Miller and Chris is getting divorced. all well wonderfully She's a wonderfully patient person.
00:46:38
Speaker
yeah and when And when she listens to podcasts, she will laugh out loud when she hears me say that. but Oh, is she going to listen to this? We might be able to hear it.
00:46:48
Speaker
um No, of course you won't. Of course you won't. Yeah. um I don't expect anybody to listen to this episode, to be honest. I mean, you know. I mean, if they see Josh and Chris McCormick in the same sentence, it's going to like, oh, hell.
00:47:04
Speaker
Yeah, exactly. okay
00:47:09
Speaker
It's bad enough having Ray there, but now we've got these two clowns as well.
00:47:14
Speaker
ah This has got to be a subtitle, The Pallet Fest, this one. Yeah. Oh, yeah. Yeah. the yeah Death End episode. Back to the Nord Pallet Adventure. Yeah. Yeah, and so the the reason I use these tools is because I find that NBB, you know, like BB, the the the tools that Michel Borken builds, there's less ceremony.
00:47:35
Speaker
They're very fast to get up and running. um Yeah, they're just, ah the you know, developer experience, I guess you'd call it, is great. um And, you know, were talking before about deployment, you know,
00:47:48
Speaker
I'm always trying to eliminate future work for myself. And one of the things is like deployment is often a pain. And so that's why I use that Piku thing I was talking about. But it's also why I like to have everything just in the package.json file. I don't want to have like some external dependency that I've got to pull, which is also actually why I don't use BB too much because I haven't yet figured out a deployment strategy where I can like pull that into my build system.
00:48:10
Speaker
So I'm like strictly NBB, strictly Node, probably way too much. I mean, beebe BB will be one of those things where when I start using it I'll be like, oh my god, you idiot. idiot yeah For the last two years, I obviously should have been using this.
00:48:24
Speaker
But anyway. Yes. what i found was What I found was when I was using NBB, there were certain, to a certain i mean and again, you haven't hit this wall yet, I guess, but I was using NBB for lambdas.
00:48:36
Speaker
Um, yeah so and obvious there's an obvious reason for that is that, you know, it's, it's like, you've got first class support, it's fast to start and you know, you can, you can just drop things in and off you go.
00:48:48
Speaker
um But as you start adding as you start adding certain packages or you want to use certain things um from the SCI kind of ecosystem, I seem to remember that that you there are certain packages in NBB even you need BB for.
00:49:07
Speaker
And so you need to get, you need to deploy, you need to have BB to deploy certain packages. And I guess you haven't run into that yet because, or is that something which you do offline or out of band or?
00:49:21
Speaker
No, I mean, this is going to make people ah cry, but like, I basically just avoid the closure ecosystem largely. yeah. it's for that reason because I just want to stick with JavaScript and so I'm like importing JavaScript libraries and there's just enough of closure you know like Mikiel is bundled in um reagent and he's bundled in uh applied science js interrupt and he's bundled in promesa library so it's like great all the stuff I mean like and I don't think I actually knew about those libraries until Mikiel was like oh yeah these are obviously the ones to use and so I was like oh okay that makes sense and
00:49:56
Speaker
Yeah, so I don't actually have to pull in any Clojure. ah rarely do that. Or any ClojureScript ones either, I guess. No, I mean, I don't. I just ah just use JavaScript stuff. And actually, you know what I mean?
00:50:09
Speaker
You know what? When I'm deploying ClojureScript live, I'm using ShadowCLGS to compile the backend and frontend. So where I use MBB is like a fast script where like,
00:50:20
Speaker
I just want to iterate over the database and and updates of fields or list some stuff or, you know, like these kind of, or or build a static HTML page based on something from somewhere else.
00:50:33
Speaker
You know, it's these like, these things where you want to invoke it very quickly because ShadowCLJS, if you want to use um JavaScript on the backend, it's got this compilation stage. And for every script, I'd have to create an entry in ShadowCLJS shadowcljs.edn, whereas within nbnbbi and with NBB, I could just bang out a.cljs file and run it, and it's right there.
00:50:55
Speaker
So, that yeah, they occupy two different niches for me. Okay, because I guess you're serving out of SiteFox, which is where you use the closure, that the shadowcljs the shadow cljs stuff Yeah, so SciFox runs on MBB and ShadowCLJS.
00:51:12
Speaker
um But yeah, I'm compiling the backend into a server.js binary that I then ship that up to the server. So that's what I Hmm. Yeah.
00:51:23
Speaker
yeah And you deploy, you do that locally, do you? Yeah, I build. There's no CI for you, you know. No, I mean, I do use CI. I use it for client work and stuff.
00:51:35
Speaker
um But i might for me, I like to keep it really lean. And, like, yeah, I'm the only person building it. No one else wants to touch my code. say yeah um So they can F off.
00:51:46
Speaker
Reproducible builds on my machine only. Yeah. Yeah, that's it. Well, I mean, to be fair, like that I think if you're just throwing pellets against the wall, ah you know that is the way to do it. Because yeah you know what what attracted me to that whole ecosystem was like I kind of rediscovered the joy of um like visual programming, and by this I mean programming that does a thing on my screen that I can see, um which is kind of like what I loved about getting into programming as a kid. Like I did a thing and then something moved on the screen and it was like awesome.
00:52:26
Speaker
You know, like now my kind of grown up programming is mainly about like I have read some JSON from somewhere, transformed it into something and put it in some database, and that's kind of boring.
00:52:38
Speaker
But um yeah so, you know, like doing stuff in a web browser, like these days, you know, the web browser can do so much stuff and has like native APIs for all this stuff. And and so, you know, not only can I make stuff move on the screen, I can, you know, ah make record video and play audio and all of this stuff.
00:53:01
Speaker
And like, so that That's kind of the joy of Skittle that I can do all of that stuff and deployment. All it looks like is basically just blasting you know an HTML and CLJS file somewhere. um yeah And then I'm just up and running. So I'm totally behind this you know reproducible builds are for yeah people who do serious stuff and not for me yeah idea. Yeah.
00:53:29
Speaker
Yeah, i mean, there's time and a place for everything, isn't there? And if if if you're building something for a company and, you know, on a team, constraints and trade-offs are very different. Yeah. yeah I'm very fortunate that i that I don't have that situation because I have no friends. So ah i just push pellets by myself.
00:53:48
Speaker
Just a pellet pusher.
00:53:52
Speaker
Yeah, actually, one of the things that, I mean, and again, this is like, I don't know... um how far we're going to take this. But i've I have another project called Content Made Simple where we're actually where where developing a content management system and we're just doing videos right now um of ourselves talking about the things that we're building. um And what we're doing there is having a live REPL on the server and the way that we deploy is basically by evaluating expressions
00:54:27
Speaker
on the server. So we don't push any code even. We just evaluate via a via a remote REPL. Yeah, right. That sounds absolutely pellet-worthy.
00:54:40
Speaker
Yeah, well, I guess I was going to say, I mean, that's sort of like, ah is it's it's pure pellet, I've got to say. But... um yeah the The question is, like i mean to me, that's like an that's an amazing workflow you know that we can just like do that.
00:54:56
Speaker
and um And we've had this rep all up, I don't know, for two months or something. Wow. um Yeah. It's like the original Lisp dream, isn't it? Yeah, yeah. And that was the idea. You know, that was the idea was to see how far we can, like, push the pellets on that one, you know?
00:55:12
Speaker
um And like I said, two months in, we're, like, six episodes into this thing, and, like, it's ah it's still going, you know? Yeah. But bum-ba-dum-ba-dum, what was I going to say?
00:55:26
Speaker
That workflow doesn't seem to be viable in your ecosystem, or am I wrong about that? which Which workflow? Where you're actually using a live REPL? You have a REPL running, and you can like you know just essentially evaluate things.
00:55:42
Speaker
The reason why I mention that is because we were talking to Eric Normand a few episodes ago, and that's what he was saying. that And that kind of inspired this thought, actually, was that he was saying on his own website, he essentially logs in, does it get pull, and then just does a reload all on the running application.
00:56:00
Speaker
yeah um But I guess for you, you do ah you do some sort of restart. When you do a redeploy, you do with some sort of restart. Yeah, Piku manages all that for you. So Piku basically just fli flips the server. Yeah.
00:56:13
Speaker
Yeah. Yeah. as As soon as you get push. Hmm. I think you like the Skittle story, you could do that, but it would require running on your own server where you can open a port so that the REPL can connect to the WebSocket.
00:56:29
Speaker
yeah And I do all of my stuff on S3 hosted websites with CloudFront. So obviously CloudFront is not going to let you connect to an arbitrary port. right so yeah So that limits the kind of production REPL experience.
00:56:45
Speaker
Yeah, and to do it with the stack that i that I'm using, like if you've got a compiled JS binary, basically you would have to um do a build with ClojureScript bundled in there so that it could interpret it. you could interpret brand And this you could do it with NBB though. NBB has an nrepl and you can run that remotely and that'll be quite interesting.
00:57:05
Speaker
Yeah. Yeah. I've just got to do. arch Okay, Chris. Yep. Yep. Experiment. That'll be, that'll be good fun to do. Yeah. So let's move on to the, um, to the next one take topic.
00:57:19
Speaker
Yeah.
00:57:21
Speaker
Yeah. You, so you said something outrageous as we were doing the, the warmup chit chat and you said like, LLMs are the greatest thing that's ever happened to ClojureScript. So like you've got to expand on that.
00:57:34
Speaker
Lies, lies. ah That's like when you told me at ah at a Heart of Closure that PHP was the peak language. like you know There's that famous Paul Graham essay with the, um what is it, the Blob Paradox?

Programming with LLMs & Community Engagement

00:57:48
Speaker
And and oh you said that you said that you've got ClojureScript up there, Clojure up there, and then just one above it is PHP. Yeah, that was definitely what he said. Yeah. um Yeah, so no, I mean, I have been using, I've been tinkering with elements. And, you know, to start with, I was doing the same thing everyone does with, like, ah loading up Claude or ChatGTP and typing in, like, can you produce me some closure code and just getting absolute ah pellets back.
00:58:16
Speaker
And since then, I kind of learned of this tool, AIDER, A-I-D-E-R, which is a Python-based open source tool, which, um It runs on the command line and basically it calls out to... so the good thing about it is it could call out to multiple different LLMs, so you can like run it against Clawed or OpenAI or whatever, and then it modifies files on on disk, and it kind of it's console-based, you're not stuck in this chat window ah inside the web browser.
00:58:46
Speaker
And it also has this feature where you can supply context to it. so um like you could pull in so you could You can create a markdown file and you can pull in ah multiple it sorry you could pull in documentation basically. so You can tell it, I want to write i want my ClojureScript code written using Promesa and here's how you use Promesa and I want to use JS Interop.
00:59:10
Speaker
so Right, right. So it's providing effectively providing state to the LLM. It's like giving it the context. Okay. Yeah, and it does it automatically. so yeah And you can do it on a per project basis. So you know if you've got a directory called pellet1, you can have like some Skittle instructions in there, how to write Skittle code, and you got pellet2.
00:59:31
Speaker
You can have some ah Java, like interop instructions in there for ah to that. And I mean, I have to say, I found that that has improved the quality of the output from the LLM. um And most people, you know, i think most people are quite sane. They know that there's like a lot of rubbish being spoken by these LLMs and coded by these LLMs. And you have to check things. You have to run tests.
00:59:53
Speaker
But me, I'm a pellet pusher, so I just actually just deploy it straight away. Wow. Test and production. Just see what happens. Yeah. And see, my two or three users, they um they let me know pretty quickly.
01:00:04
Speaker
Wow. Okay. Okay. ah well okay
01:00:11
Speaker
but So, yeah, i mean, go on. No, go ahead, Chris. I was just going to say, yeah, I mean, so I think, I actually think there's ah there is a future in in using LLMs to code. I think, obviously, you have to do it defensively and you have to do it, ah what's the right word, like but consciously.
01:00:27
Speaker
yeah have to be You have to be with intent, you know what i mean, and be careful about it. ah Because it can get quite easy to just be like like the five days I spent creating that silly AI that analyzes my expenses.
01:00:39
Speaker
You know, i I really went around in a lot of circles and I was like, yeah, it wasn't a good experience. I should have, ah because what actually happened was about three days in, actually took a look at the code and it was...
01:00:51
Speaker
It was like the LLM was just doing something really, really stupid. And like the architecture of what it was trying to do, like the way it was using promises was just totally wrong. So like basically I so i backed out and I was like, I told it, I said, don't do it this way, do it this other way.
01:01:07
Speaker
um and then And then it's produced a much better result that's actually now functioning and only 50% of my taxes are wrong. So it's quite good answer. And you can blame it on Sam Altman.
01:01:18
Speaker
It was AI. Exactly. It's not my fault. Yeah. Your Honor. It's not my fault, Your Honor. The AI told me to do it. But this is the kind... I mean, let's not get into all that, though.
01:01:30
Speaker
but um The British Post Office. so oh That's what we shouldn't get into. I'm cracking jokes, but that's that's that's that's heavy. Yeah. yeah yeah so I mean, who would trust a computer, like honestly? Yeah.
01:01:43
Speaker
Well, unfortunately, everybody. that It's the worst. I mean, people like us are writing the software. Why would anyone trust what's going on with a computer? Well, and now people like us are not even been writing it, right?
01:01:56
Speaker
I mean, now it's just like people people like us are telling computers how to write code to execute. this is yeah yeah You have piles of pellets, piles of code pellets on the internet. either let's just just so Let's be honest about what happened. You have these massive piles of code pellets written by people who have no idea what they're doing. isn ah There's no guild which you have to join to become a programmer where they go, do you know what the but the f you're doing? like No, you you you you could just put pellets on the internet. So there's all these pellets, then they trade off a statistical model that absorbs all of the pellets, and then like statistically generates more pellets.
01:02:31
Speaker
I mean, what did they think was going happen?
01:02:34
Speaker
Yeah, I couldn't have put it better myself. It's pellets all the way down. like but I see where we're rapidly approaching the the cliff off which my bus will drive. um So we should. Oh, good. I'm glad to hear that.
01:02:52
Speaker
Yeah. Anyway. Anyway.
01:02:59
Speaker
It's a Thelma and Louise moment for Josh. Indeed. Indeed. On that bombshell. Yeah. And sadly, we're geographically distributed, so I will be driving off this cliff by myself and not taking either one of you lovely people with me. but This is a hell of a show, you know. I mean, I'm going to be abandoned here. You're going off a cliff. He's getting a divorce. I mean, this is like this is like the most dramatic show we've ever had, you know? It is. Yeah. Yeah, yeah. We really should be we've got to do some marketing for this one.
01:03:30
Speaker
The first
01:03:41
Speaker
anyway, Chris, ah it do you have any closing thoughts that you want to leave our our zero listeners with? I mean, I would just call call back to what something we were talking about during Heart of Closure, um which was, ah you know, people worried. that There's a lot of, like, angst and anxiety about, oh, like, oh, enough people are using Closure or whatever. but it's like there's 8% that shows up on the charts.
01:04:09
Speaker
And, like, there's enough passionate people involved where it doesn't actually matter. You know what I mean? like And so I'm really optimistic about ah Closure and the future of Closure of closure script and ah Yeah, that's that's basically what I want to say is like to everybody in the community, like producing stuff, like thank you so much.
01:04:29
Speaker
And I hope it keeps on, keeps on going. It's just awesome. It's like, it's I'm very grateful to be a recipient um and hopefully sometimes a contributor to this community.
01:04:41
Speaker
Lovely. Well, we we welcome it because, you know, you are you are very active, Chris, and we see you doing things and that's ah that's all good, you know. Yeah. Some of the things, of course, are offensive to me personally, but, you know, that's that's for another episode, perhaps.
01:04:56
Speaker
Yeah, you have to separate the art from the artist, you know. Or the pellet from the pelleter. The pellet from the pusher. The pellet from the pusher.
01:05:07
Speaker
Oh, God. All right. Did say you're in a peloton? and so yeah
01:05:13
Speaker
Yeah, so we're done here. I mean, you know. Quick, somebody stop this. I'm pressing the stop button. It's gone too far. Chris, so it it's been an absolute pleasure having you on.
01:05:28
Speaker
And hopefully next time you're on, it will be at the next heart of closure on ah on a big sofa with, ah you know, a bunch of other closureists. Yeah, great. Thank you so much. Thanks for having me. And I guess you can't go lower than zero listeners. So please, anytime anytime you'd like to have me back, it'd be great.
01:05:46
Speaker
We get a lot hate listening. So, you know, just angry mumbling. ah that's that's That's the camp I'm in. I'm glad to know I'm looking at it.
01:05:57
Speaker
What are these camps talking about? well Thanks to everyone at home. Thanks, Chris. Thanks, Ray. This has been an absolute pleasure. Thank you for listening to this episode of Def N. And the awesome vegetarian music on the track is Melon Hamburger by Pizzeri.
01:06:17
Speaker
And the show's audio is mixed by Wouter Dullert. I'm pretty sure I butchered his name. um Maybe you should insert your own name here, Dullert. Wouter. If you'd like to support us, please do check out our Patreon page and you can show your appreciation to all the hard work or the lack of hard work that we're doing.
01:06:37
Speaker
And um you can also catch up with either Ray with me for some unexplainable reason. ah You want interact with us, then do check us out on Slack, Closure in Slack or Closureverse or on Zulip or just at us at Deafen Podcast on Twitter.
01:06:55
Speaker
Enjoy your day and see you in the next episode.
01:07:23
Speaker
you