🇰🇪 yield(RC2, 1st GopherCon in Africa, LLMs, Dreams of code, and more) - podcast episode cover

🇰🇪 yield(RC2, 1st GopherCon in Africa, LLMs, Dreams of code, and more)

Jul 19, 202427 minEp. 72
--:--
--:--
Listen in podcast apps:
Metacast
Spotify
Youtube
RSS

Episode description

News this week:

Want to support the show? Here are some ways to do it!

★ Support this podcast on Patreon ★

Transcript

Shay NehmadShay Nehmad

This show is supported by you. Stick around till the ad break to hear more. This is CapaGo for July 1920 20 20 4. Keep up to date with the important happenings in the Go community in about 15 minutes per week. I'm Shay Nehmad.

Jonathan HallJonathan Hall

And I'm Jonathan Hall.

Shay NehmadShay Nehmad

Welcome to release candidate 2. Yay. Go 123 is, moving forward. As usually happens in these sort of times, we're read a bit less focused on new proposals and new things, and everybody's just trying to fix every tiny little bug or typo to make sure that the release is great. So obviously, we don't have proposal news for you this week.

But I do think it's interesting, you know, we're talking about the release candidates. So release candidates, you know, as they move forward in maturity, release candidate 2 should be even more stable for you to play around with. And I found a way you can go into, go dash review Google source com where all the code reviews are. Right?

Jonathan HallJonathan Hall

Mhmm.

Shay NehmadShay Nehmad

And there's a specific, merge list you can take a look at that shows what went into the release branch, what went into go 123. So there's, like, 70 fixes here.

Jonathan HallJonathan Hall

Between r c one and r c 2, you've been. Right? Yes. Okay.

Shay NehmadShay Nehmad

And one of them is, Jonathan's fix.

Jonathan HallJonathan Hall

Woah. What did I fix?

Shay NehmadShay Nehmad

A typo and a comment? Okay.

Jonathan HallJonathan Hall

Sounds like the kind of thing I might do.

Shay NehmadShay Nehmad

So, in database SQL driver actually, now that you're the contributor, do you say SQL? That's all the

Jonathan HallJonathan Hall

I I I don't say it out loud. It's a a word that I will not speak. I only type it.

Shay NehmadShay Nehmad

It's an ancient language. Anyway, there are a lot of fixes here, which when I opened this patch set I was very surprised. I was sure like, oh, it's just 1 or 2 tiny things but I think many of them are more close to your change, like, fix comments and improve error messages, and very very, small edge cases, you know, looking at just the commit, messages here. Right? Make struct comments match struct names.

Clarify that is not exist, is exist, is permission, and is time out work with nil errors. Some things like that. And there are some actual fixes as well. Right? Avoiding multiple records with identical stacks from mutex profile, for example.

So if you're, trying to run a mutex profiling, it will deduplicate, you know, records and things like that. But I think a lot of them are, like, fix a small comment, update help messages, adding some to dos, documenting some stuff, emitting errors, like, very small but very important fixes to making sure that this is highly polished. So at this point, I think it's a good time to get your company, you know, at at least put on the backlog to migrate. And if you can, you know, run your CI pipelines with this new version, and report bugs, that would obviously help the community a ton. Right?

Jonathan HallJonathan Hall

Mhmm. So are you doing that, Shy? Are you running RC 2 in in CI?

Shay NehmadShay Nehmad

No. Not yet. Not yet. But I will. I definitely will. I we're working on, centralizing CI, workflows right now at work. We're setting up a Backstage. Right? Spotify Backstage to, like, maintain all this self serve stuff. So I wanna move some, workflows there, and then I'll do it. We actually have a small Go script in the Backstage implementation. So I might do it there because that's very low stakes.

Jonathan HallJonathan Hall

Cool. I installed RC one on my local machine yesterday, or 2 days ago, actually. What's I'm talking about in a few minutes? And I have RC 2 running in CI on one of my projects.

Shay NehmadShay Nehmad

And how's it working?

Jonathan HallJonathan Hall

No problem so far. Damn. Well, I I should say, actually, it it causes Golang CI Lint to crash.

Shay NehmadShay Nehmad

What?

Jonathan HallJonathan Hall

So Golang CI Lint needs to be updated. I don't know what it is, but it it crashes when I'm running, either RC 1 or RC 2.

Shay NehmadShay Nehmad

Alright. So report the bugs Yeah. To the relevant teams, to make sure that when the full release is out, right, everybody can enjoy it.

Jonathan HallJonathan Hall

That's right.

Shay NehmadShay Nehmad

What are you doing on October 19th?

Jonathan HallJonathan Hall

It's a good question. I'll probably be either in in Guatemala City or in Atlanta looking for a new house. I'm not sure yet which.

Shay NehmadShay Nehmad

You're you'll also be celebrating my birthday.

Jonathan HallJonathan Hall

I'll also be celebrating your birthday. But, unfortunately, I will not be in Nairobi with all these other beautiful, wonderful gophers who are attending the first ever Gopher Con Africa. Woo hoo. So the venue has not yet been announced. So stay tuned or subscribe. You know, go to their website, irobi.gophers.africa, and, sign up to be notified, I guess.

Shay NehmadShay Nehmad

They're open for speakers?

Jonathan HallJonathan Hall

Yeah. CFP closed just a couple of days ago. I think it closed on the day I learned of the conference. Mhmm. So, unfortunately, it's too late to be a speaker this year, but maybe next year. You can still go and meet all the wonderful golfers, October 18 19, at a TBD venue in Nairobi.

Shay NehmadShay Nehmad

I love the pricing, where you have the regular ticket, corporate ticket, which is slightly more expensive, but also student ticket. So if you're a student, and you have a student identification card, you get in a half price, which is really good. You know, students can really use both the lectures and and the networking. Mhmm. So getting in their half price, I think is a good investment. So 18th, 19th October in Nairobi, Kenya.

Jonathan HallJonathan Hall

And since you didn't bring it up, I'm going to. I like their logo. Their little mascot. Their their gopher warrior mascot.

Shay NehmadShay Nehmad

Oh, I haven't even noticed. Oh, it is cute. I don't remember what was the it it's holding up the, like, traditional, vertical shield. That's pretty cool. Although, I'm not used to seeing, gophers, you know, holding up armaments. Usually, they're like, drink your coffee.

Jonathan HallJonathan Hall

I kinda like the juxtaposition between this cute, fuzzy, durable animal and warrior gear.

Shay NehmadShay Nehmad

Yeah. So Nairobi, October 18th 19th. Very cool. So like we said, not a lot of proposals this week. So, that we found a few interesting blog posts and just topics for discussion that people have been talking about. And the first one, was from Reddit. I think it came up like 2 weeks ago. Does Go benefit more from Copilot than other languages? And I'm gonna pull, a Jonathan here and like attack the premise of the question first. Like Jonathan is doing to many many people on, LinkedIn now and then.

Jonathan HallJonathan Hall

I would never. I reject the premise of your statement.

Shay NehmadShay Nehmad

I I think you're doing your work trolling enough people on LinkedIn to keep it keep it honest, Right? Which is a great service, for the rest of us. But my first, like, thought is why does it matter? Why does it matter if Go is super well fitted to, you know, LLMs or doesn't work well with it at all?

Jonathan HallJonathan Hall

Well, I suppose it matters if you're trying to leverage an LLM, to, do your coding, help with your coding. Harvey, go downstairs.

Shay NehmadShay Nehmad

Hello, Harvey. So, back from that break, Jonathan has to take care of his, kid. We actually got a mention on Slack. I don't remember. This is a tangent, but someone was, like, oh, it's good that you're normalizing, like, being with your kid while you're at work. And it's, like, yeah. This is a fun thing we do. This is not a huge super important corporate board meeting. Our kids can come and bother us every now and then.

Jonathan HallJonathan Hall

Of course. They're

Shay NehmadShay Nehmad

cute. Jonathan's kids are cute, and my and my kid is cuter. And it's just a Yeah.

Jonathan HallJonathan Hall

I I reject the premise we hear from you, David.

Shay NehmadShay Nehmad

So let's go back to let's go back to Copilot. LMS. Right? Why does it matter that, Copilot is more useful in language x than language y?

Jonathan HallJonathan Hall

Alright. So answering the question, I I think I think it might matter if you're trying to get full leverage out of your LLM. But but but and this is probably where you're going. That shouldn't be the deciding factor when you're choosing a language. Right? I mean, you use the language that's best suited suited for the job. And maybe that could be one small part of that, the decision matrix, but it shouldn't be the the main thing.

Shay NehmadShay Nehmad

So I think it's the same way that, does, Go have like, you know, Go's LSP is pretty good. Right? It's pretty fast and it has a lot of features, extract method and whatever. It certainly has more tools than some other languages you could think about. Right?

Maybe some really new languages or maybe really old languages that don't have great tooling. Like, it's a lot easier to refactor in Go than it is to refactor in assembly or c. Right? I think this question is sort of going towards that. Like, how good is the tooling?

And if we generalize to, does Go have good tooling? I feel pretty comfortable answering that Go has one of, like, best tooling lineups for any programming languages you might choose. Comes with, like, the testing tool comes built in with fuzzing and race detection and whatever whatever whatever. I think it's a very productive language. Not a lot of people will argue that, like against that.

Specifically, it's inter it is interesting technically to nerd out about why, it has good LLM support as well, maybe better than some other languages. What's, like, your instinct on that? Should it have a better LLM support than other languages or not?

Jonathan HallJonathan Hall

I think it depends on how you define better. I think in general, an LLM is gonna benefit the most from whatever language has the most input available. Or to be even more specific, most input that you want to replicate. If you have tons and tons of, say I'll just pick a random language. Let's say Lua.

Tons and tons of Lua, but it's all really bad code, then you're gonna have a bad experience with your LLM. So how does that affect Go? I think that Go is a relatively young language, at least in terms of popularity. So there's less code than there is, say, Java or JavaScript, PHP out there. It's more often a professional language than, say, a student language.

So you're not going to get people's homework assignments as much influencing the outputs as you would if it was, say, JavaScript or C plus plus or Java or whatever they study in universities these days. So maybe in that sense, the bell curve of what you expect to get out is closer to the end of high quality. But I don't think those are particularly features of the language. It's more about how is the language used, and do you want to to use a copilot that's trained on the data?

Shay NehmadShay Nehmad

So surprisingly, there are some features of the language that impact, like, the how good the LLM is.

Jonathan HallJonathan Hall

Mhmm.

Shay NehmadShay Nehmad

And it does have to do with the input data, like you said. I learned about this from, Natalie, Natalie Pistonovich from, GoTime. So in the latest, Gofer Con Israel, which was about a year ago and the next, Gofer Con Israel is coming up now. Or maybe it was 2 years ago? No.

That's not possible. Never mind. She's, she had a lecture about, Go and AI and how, why Go is a good fit for AI. And there are a few interesting features when you compare it to other languages. For example, Python in the standard is is a white space based language. Right? It has a lot of white space. But the white space itself, is usually spaces. You'll have, like, 4 spaces. Go has uniform formatting, right, which is great for training because all the code looks the same.

So when you auto complete, when you're looking for things, you're you're finding things that are similar semantically and you don't worry about formatting because all code is formatted the same Go fmt. Also, it's formatted with tabs, so it's less tokens. It is physically less input, so you get, a bigger context window for your, LLM.

Jonathan HallJonathan Hall

And we don't have all those pesky, semicolons and braces to get to to take token space either.

Shay NehmadShay Nehmad

Totally. Totally. Although, I've seen recently, new research from, I think, Facebook, like Meta, about, their buildings specialized LLMs that actually, read the language, you know, like get an AST and then do the prediction on the AST to get rid of all that noise. So I assume Copilot will get at least experimental support for that as well. Mhmm.

So Go is, like, very uniform in its format and its styling. All the things kind of look the same, so it's a good fit for LMS. And I also think that a reach a rich, standard library helps it as well. And funnily enough, choosing tabs over spaces for the white space, formatting was a good benefit as well. On Reddit, this is a, like, this was a pretty interesting discussion where people brought up some other things as well, you know.

And the first one is Natalie's lecture. So you don't have a like you said, it's a relatively young language. That's also a benefit because you don't have a lot of deprecated versions. We don't have Python 2 equivalent of go. Right?

Where you can just auto complete code that doesn't really work. So it's gonna suggest code, that's pretty well written, pretty young, and formatted the same way you want. And people overall say that they like using Copilot or, you know, LLMs, especially in unit tests saves them a lot of time. So the qualitative feedback, is also pretty good, at least from this, thread. Right? They're saying it's amazing. I don't have to generate functions anymore. It's really intelligent, especially in Golang.

Jonathan HallJonathan Hall

I don't find that to be true. I I do use it, But I find it most useful, when I'm doing something very, very repetitive. Otherwise, it just and even then, it makes a lot of mistakes. So I I don't I don't trust Copilot at all. So I always verify whatever it

Shay NehmadShay Nehmad

gives me. Yeah. There there is this, feedback here as well. Right? Someone says, Copilot is expletive for Golang. I turned mine off. The code it generates is spectacularly subpar and some people are have concerns already as well. But I think this is again the gen like, the general, discussions are on that. Right? Oh, maybe use Claude's sonnet instead of open AI. Maybe use this instead of that. Blah blah blah.

Jonathan HallJonathan Hall

So which other one do you use? Let us know on, on our Slack channel.

Shay NehmadShay Nehmad

Yeah. For sure.

Jonathan HallJonathan Hall

And if it's just the one between your shoulders, that's cool too.

Shay NehmadShay Nehmad

So does Go benefit more from Copilot than other languages? We reject the premise of the question. Doesn't really matter. Also, Copilots are bad. Also, tabs are better than spaces.

Jonathan HallJonathan Hall

Also, what are these range iterators?

Shay NehmadShay Nehmad

I don't know. My copilot isn't suggesting them yet because there isn't enough data, so I'll never know.

Jonathan HallJonathan Hall

Do do you find these new range generators to be kind of mystifying too?

Shay NehmadShay Nehmad

Well, if only someone would demystify them for me.

Jonathan HallJonathan Hall

If if only they well, hey, I see this post from Zach Musgraves. It claims it's gonna demystify them for us, but we should read it.

Shay NehmadShay Nehmad

Well, how about you explain it for me in this audio format because that seems kinda like a useful use of my time.

Jonathan HallJonathan Hall

So we we all know that Go 123 is coming up with coming out with the new Range Rover Fund. Right? We've talked about it on the show before.

Shay NehmadShay Nehmad

A million.

Jonathan HallJonathan Hall

We've talked about it even a year ago. The the the proposal was written just over a year ago this this week. So we talked about it. If you don't know what we're talking about, listen to the past episodes, stop living under a go rock. You can create a specially formed function with a particular signature, and the the range keyword will will iterate over it. That's that's the TLDR.

Shay NehmadShay Nehmad

And you've been playing around with it this week a lot.

Jonathan HallJonathan Hall

I have. Yeah. So I was curious in in in in large part due to conversation on our Slack channel, the Capacost Slack channel, with some listeners, like, how would this work? I have a library where I think it would be a perfect fit, but Saturday, I had some spare time a couple of days ago. I give it a shot, and I pulled up this post. It was an 8 minute read from Zach. And of course, I skipped through 80% of it.

Shay NehmadShay Nehmad

To get to the code, right?

Jonathan HallJonathan Hall

It went straight to the example code and just plagiarized it blatantly. But the TLDR, actually, so I wrote my own post as well, which links back to this one. It just is talking about my own experience with the range iterators. My TLDR is I love them now. And, most of my fears about how complex they were and the bad naming were totally overblown.

Yes, the proposal itself is complicated to understand, but that's because there's so much going on behind the scenes that you don't have to care about either as the consumer of a narrator or the author of a narrator. It's really easy to use. That's my TLDR.

Shay NehmadShay Nehmad

Cool. I was really worried about the new keyword.

Jonathan HallJonathan Hall

Yeah. I was too.

Shay NehmadShay Nehmad

But but now you say it's

Jonathan HallJonathan Hall

fine? There is no new keyword.

Shay NehmadShay Nehmad

What do you mean? You can say yield now. It's like Python.

Jonathan HallJonathan Hall

There was no keyword, but if you look really closely, that's just the name of a function. That's the a callback. Yeah. That's when the light bulb hit, went on for me too. It was like, Oh, it's just a function.

I can call it whatever I want. Yield makes maybe sense contextually, but, yeah, I was so concerned that this would not compile with old versions of Go. It does. I I'm I am building my iterators in Go 1.17 before generics even existed, and and they compile just fine. They're not useful there. Don't get me wrong. You can't just magically iterate over those functions, but they compile.

Shay NehmadShay Nehmad

And there was one interesting you know, we always, loved to hate on the name, seek 2.

Jonathan HallJonathan Hall

Mhmm.

Shay NehmadShay Nehmad

Right? And I think you sort of had a discussion around the naming as well. Can you name it whatever you want? Should you name it Seek 2 as well?

Jonathan HallJonathan Hall

Yeah. So one of the points in my post was, as I did this exercise of building 5 different iterators from a project, I never once had to write seek or seek 2. So, like, fine then. I don't care what you call it then. Call it whatever you want.

However, there are cases. If if you're writing an iterator that iterates over an iterator, for example, then you will need to use that name. So it's not that the name complete doesn't matter, but it's much less important than I initially thought. You might also want your function to return that type. I don't do that because I want my code to compile for old versions of Go.

But as a as a documentation or a type safety check, you might actually want to return either dot seek or either dot seek2, for example. I still think slight issue with the name. I think they should have called it seek 1 and seek 2 since they reversed the number of arguments being returned. I think that would have been more clear. I think seek and seek 2 just looks asymmetric, but it's really a very minor thing.

It's not nearly as big of an issue as I think you and I thought it might be when we were complaining about it on the show before.

Shay NehmadShay Nehmad

So so that's that's exactly the thing. Right? Talk is cheap, but action is is expensive. We talked about how hard using the range generators and the name and blah blah blah for over an hour, and your proof of concept was already in under an hour. Yeah.

So just a word of warning to any every like anybody here, that listens to us, too carefully. It's like, oh, they said on the podcast blah blah blah. So saying is easy, but the fact that Jonathan actually wrote the blog post and actually migrated, his whatever CouchDB, open source thing. Right? Kvig? Yep.

Jonathan HallJonathan Hall

Mhmm.

Shay NehmadShay Nehmad

That matters a whole lot more. Which is why we try to highlight people that, you know, write the blog post and write the proposals, and our opinions on it is should be a very small part of what you get out of this show.

Jonathan HallJonathan Hall

Yeah. We don't know what we're talking about. We're just a bunch of doofuses who like to talk about Yoh.

Shay NehmadShay Nehmad

Totally. Alright. I think it's time for our lightning round. Right?

Jonathan HallJonathan Hall

Oh, yes. I love that.

Shay NehmadShay Nehmad

Alright. Lightning round. First thing we wanna recommend is dreams of code new video. This CLI component was trickier to build than I thought. They built in a 17 minute super super, storytelly, beautifully shot video, a small CLI loader thing in Go.

And it really goes to the details of, oh, you need to delete. You need to, fix all the bugs. They also developed it pretty well, I think, with TDD and things like that. So some pretty interesting things to learn, and a beautiful setup with amazing keyboards and buttons and things like that, which I like. So go give that a watch. Really good YouTube content if you're into learning from videos as well.

Jonathan HallJonathan Hall

And up on my list, introducing Quartz, a deterministic time testing library for Go by Spike Curtis. What a great name. Mhmm. So Spike decided that he doesn't like flaky tests, and I was sold Open a line, I hate flicky tests. I'm there.

The premise of this package is to make it easier to test code that depends on intricate timing. So if you're if you're testing a ticker or context cancellations or things like that, where timing is critical, I know I have code that does this. And even when I use long timeouts, you know, one second or whatever, occasionally, it fails in CI when something's going slow. This should solve that problem. I intend I haven't used it yet, but I intend to try this library next time I'm writing a timing sensitive test.

Link in the description. Quartz is the name of the library. Check it out.

Shay NehmadShay Nehmad

We should tell dreams of code about Quartz. They would sort of improve their test as well. Finally on my list, new release for OV. OV is a terminal text viewer written in Go. Basically, it's like less or more or like watch or tail.

Just has a ton of features and colors and is, is gonna spruce up your terminal real nice, which will make your, you know, you writing a single word and waiting for your LLM to auto complete it look really really cool, mister robot style. So Ovi has a new release. If you haven't installed it on your terminal yet, you can go ahead and do that now. And that does it for our lighting ground. Boom.

Jonathan HallJonathan Hall

That was fast.

Shay NehmadShay Nehmad

Stick around for the ad break to hear some meta stuff. Welcome to our outbreak. Thanks a lot for people who, sort of volunteer to cohost, towards the end of the summer, where we're planning to take some time off, on our Slack channel. So we'll definitely reach out to you soon and try to set that up. Thanks a lot. Thanks a lot. Thanks a lot. It's really cool. If you do wanna join that list as well, just let us know on Slack, and we'll reach out to you. It's not that complicated.

We're not that big of an operation. We're just 2 dudes who don't really know what they're talking about.

Jonathan HallJonathan Hall

We we are giving preference to those who have not co hosted before. So don't be insulted if we don't reach out to you if you've already been a co host. Yep. We love you. We're so glad you were a co host, but we wanna share the opportunity.

Shay NehmadShay Nehmad

So if you do wanna reach us, capago.dev has all the links you need, links to stuff like past episodes, transcriptions, our email news atcapago.dev, our Slack channel, hashtag cup dashodashgo on the go for Slack. Our swag store where you can buy hoodies, shirts, the hoodie by the way, I was doubtful, but I got some for dev ops days in Amsterdam because Amsterdam is cold when I went to meet, Jonathan. And I've I have used it more than once. It's very comfortable. So where I work, Orca, they really we have 1, AC Tyrant.

Mhmm.

Jonathan HallJonathan Hall

Do you

Shay NehmadShay Nehmad

have one of these as well? Like, someone who just blast this on 16? I

Jonathan HallJonathan Hall

work from home. I work from home.

Shay NehmadShay Nehmad

Do you blast the AC at home?

Jonathan HallJonathan Hall

When I want to. And I don't I don't want to. Yeah.

Shay NehmadShay Nehmad

I don't I don't have a choice. And I'm sitting right under the AC. So I brought the hoodie and it now lives on my chair, at the office which is really nice. Because nobody seals my chair as well. So here hey.

Another use for it, you can use, the hoodie to mark territory. Anyway, you can buy some swag on, capago.dev. If you wanna support the show, the best way to support it is through Patreon. Thanks a lot to all our Patreon supporters who try to make this hobby a bit more sustainable. We do this for fun, but it does cost us a bit of money to edit the show.

We have a professional editor. Shout out, Filippo, for editing our words and, you know, for hosting and things like that. Joining as a member on Patreon is the most direct way to support the show. If you wanna support other ways, you can leave a review or share the show on Apple Podcasts or Spotify or wherever you listen to your podcasts. We don't pay to advertise, so word-of-mouth is basically the only way the show gets around. The show gets around sounds sounds bad.

Jonathan HallJonathan Hall

This show goes around.

Shay NehmadShay Nehmad

That that's better. Around. Okay. Where else can you mention or or talk about the show? So we talked about, like, professional reviews on the on the apps.

Jonathan HallJonathan Hall

So, if you want something a little lower key, a little easier to do if you're a a social media person, follow us on Twitter or dare I say X, whatever. We currently have 449 followers on Twitter. Cup_o, underscore go is the handle. If you're more of a fediverse person, I'll just say it that way. That's pretty factual without throwing value statements into it.

Shay NehmadShay Nehmad

We're

Jonathan HallJonathan Hall

also on Mastodon, couple ago at techhub. Social, where we currently have 72 followers. And And I also just had to look up our YouTube channel, and I was surprised to see we have 214 subscribers on YouTube, and people are actually consuming the show there. We have had 30 hours of quote, watch time on YouTube in the last month.

Shay NehmadShay Nehmad

So I think it's, because, Google Podcasts died. Right? They killed it. Killed by Google. Hashtag killed by Google.

Maybe people who listen to podcasts using Google Podcasts have now transitioned to using using YouTube music and then they count the views that way. But hey, if you like using these apps and it's easier for you to listen to the show there, we're very happy to to, like, have you, serve you there. So, yeah, if you're I'm rarely, logging into, social media, just trying to lower that, in my life. But if you are listening to the show and you, like, have Twitter open right now, maybe just shout us out. Having more people listen is really fun for us.

Jonathan HallJonathan Hall

Yeah. And when you see if you if you follow us, when you see the thing come by in your feed, just hit that that art button, hit the reshare, and it helps spread the word.

Shay NehmadShay Nehmad

Awesome. So thanks a lot for listening this week, everyone. Next week, hopefully, hopefully, we'll have an interview. We'll finally go get back on that horse. Really trying to schedule that.

Jonathan HallJonathan Hall

We've been trying, and it's been a bit difficult. Everyone else is on holiday during the summer too, so it's a little bit hard to schedule during the summertime. But we'll

Shay NehmadShay Nehmad

Yeah. Holiday with the kids, like, Jonathan just demonstrated, etcetera, etcetera. That's it for this week's program exited. Goodbye.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast