Cup o' Go

Creators & Guests

Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Host
Miriah Peterson
Miriah Peterson, is a seasoned engineer with expertise in Go programming and Data Reliability Engineer. Her professional journey includes crafting videos, tutorials, and courses, showcasing her mastery of Go and Data Engineering. Miriah has delivered talks on Go, machine learning, and data engineering. As a founder of Forge Foundation Inc. and an organizer of the GoWest Conference, Utah Data Engineering, and Machine Learning Utah meetups, she actively shapes the tech community. Miriah earned her bachelor's degree in physics from Brigham Young University in 2017.
Editor
Filippo Valvassori Bolgรจ
Sound Designer / Audio Editor based in Milan

What is Cup o' Go?

Stay up to date with the Go community in about 15 minutes per week

Jonathan Hall:

Hello. This show is sponsored by you, our listener. Stick around till after the news to hear a little bit more about that. This is cup and go for August 23, 2024. Keep up to date with the important happenings in the Go community in about 15 minutes per week.

Jonathan Hall:

I'm Jonathan Hall.

Miriah Peterson:

And I'm Miriah Peterson.

Jonathan Hall:

Miriah Peterson? You're not shy.

Miriah Peterson:

I am not.

Jonathan Hall:

Tell us who you are.

Miriah Peterson:

I'm Mariah. I, am one of the North America based Google Developer Experts for Go. I stream Go on Twitch. I, have a couple of Go workshops and courses I've done with O'Reilly Media, and I just love Go. I've been doing it forever.

Miriah Peterson:

I have a Go conference and a Go meetup, so I just people tell me that if I were to cut my leg, I would just bleed Go. So Well,

Jonathan Hall:

your hair is already the right color.

Miriah Peterson:

My hair is blue. Yes.

Jonathan Hall:

Awesome. Well, thanks, Mariah for filling in for Shai so that he and I could both take breaks. He's taking a break this week. I'll take a break next week. Gives us a chance to have personal lives too.

Jonathan Hall:

Let's talk about some news. The big thing, of course, we all know is Go 1.23 has been released. What's your favorite feature coming out in Go 123, Mariah?

Miriah Peterson:

Well, I mean, has anybody stopped talking about iterators? Range over 5 can iterators?

Jonathan Hall:

Keep iterating over that topic forever.

Miriah Peterson:

Pretty much.

Jonathan Hall:

That's the big one.

Miriah Peterson:

It's definitely the big one. I, haven't really paid much attention. I mean, I read through it, but I that was kinda, like, the only thing that gets stuck in my head anymore is is iterators and more iterators.

Jonathan Hall:

Yeah. Yeah. So have you had a chance to play with the new iterators?

Miriah Peterson:

I have not. Okay. But a friend of mine did make a PR for the Go Parquet library using iterators.

Jonathan Hall:

Okay.

Miriah Peterson:

So that was his first one. I read through it. It looks really nice. I would approve, but I'm not a maintainer of Parquet Go. So

Jonathan Hall:

Oh, yeah.

Miriah Peterson:

You know.

Jonathan Hall:

Alright. Well, I've I've played this a little bit, and I I think it's fun. But if people who are listening are interested in learning about this, where do you think they should go to learn about this?

Miriah Peterson:

Well, the Go team just released the official blog post by Ian Lance Taylor about Range Rover Funk. It is, basically his GopherCon talk condensed into written form. I was sit I was at the GopherCon talk. It was the last talk of the conference. So to say that I was paying attention is an overstatement.

Miriah Peterson:

Everybody was we we were just trying to not fall asleep. But he walks through a lot of examples in the standard library about where iterator patterns exist now, kind of how they're implemented now, and and places where they want to improve the standard library using this pattern, and examples essentially for how to do that. There the examples always feel canned in a public broad code. Like, in in those kinds of blog posts, I feel like. I I I wanna see it implemented.

Miriah Peterson:

Like, I wanna see the code that actually is doing the hard work, not just code that runs for demos. But it was Right. It's definitely got a lot of examples in there, and it's really good.

Jonathan Hall:

So I just finished my series. I read a daily, email about Go. If anybody's interested in signing up, it's boldly go. Tech/daily. You could sign up there.

Jonathan Hall:

But I just went through the new, section in the spec, and they have a really, in my opinion, ridiculous example of iterators there. Not that it's a bad example. It's just not at all intuitive. Like, I would expect a really simple example there of, like, here's how you range over a list of ingredients for a recipe or something. But it's actually tree walking, which is quite clever.

Jonathan Hall:

It does tree walking with an iterator.

Miriah Peterson:

Okay.

Jonathan Hall:

It's quite clever, but it's not at all intuitive. You know, it took me a while to even understand how it was working. So it's really hard to find good examples for this sort of stuff, isn't it?

Miriah Peterson:

I agree. I agree. It's, like I said, I wanna see some, like, the blog post of somebody that said, hey. Look what I implemented in my open source project, and we have it deployed to x y z. And that that's what I'm waiting for.

Miriah Peterson:

And I think, it should be the the it's not too far off. They went so fast when generics were released to saying, look at me doing generics. I'm sure that this will come Yeah. Just as fast.

Jonathan Hall:

Awesome. Let's talk about conferences. You mentioned, that you have a conference and a beat up, and your conference is coming up. Tell us about your conference and and what is coming up.

Miriah Peterson:

What is coming up? There's a lot of things coming up. We say that conference organizers stick together and we just kinda all find each other on the Internet. So my conference is Go West. It's in Utah where I am based.

Miriah Peterson:

It's a single day, one track, conference, I'll go on October 25th. The speakers are out. The schedule's out, but we are still accepting lightning talks for anybody that's coming. And then that, I believe, is the last US based Go conference this year. But then there's 2 more conferences this year after it that are back to back, GopherCon Singapore and GopherCon Australia.

Miriah Peterson:

And their CFPs are still open.

Jonathan Hall:

So We'll have links to all of that in the show notes, of course, if you're interested in, somebody could talk to one of those those conferences. I see you have Lane Wagner coming, to speak at Go West.

Miriah Peterson:

Lane is. He is local. He's local to Utah.

Jonathan Hall:

Uh-huh.

Miriah Peterson:

So I've known him from the meetup scene for a long time, and he could not make it last year because he had a conflict. He went to some gaming conference. And so this year, I snagged him before he could go anywhere else to come give a keynote. We love one of our our big emphasis is is trying to get local speakers, local GoDevs to come talk, because it makes people come back to the meetup. And so the fact that Lane is local, he runs boot.dev.

Miriah Peterson:

He has huge contacts to, like, everyone because of his podcast, which you were on, I believe.

Jonathan Hall:

I was on his podcast, and he's been on this one as well. Yes.

Miriah Peterson:

Yeah. So, yeah. Lane's gonna be our opening keynote. I'm really excited to have him talking about Go.

Jonathan Hall:

I wish I could be there. I'll be in the middle of an international move at the time, but maybe, maybe next year I can make it.

Miriah Peterson:

The the videos will all be available online if you can't make it. But, yeah, next year, we we happen every year. So same place, always in October. So it's a great great little conference.

Jonathan Hall:

While we're talking about conferences, we have some news from Gofer Con UK. For those of you who are not in the UK, they have just uploaded a ton of videos, from from their conference, 12 videos. So you can go check out Gofer Con UK's content without buying a ticket to the UK. Have you seen any of these yet, Mariah?

Miriah Peterson:

I haven't. I knew some of the people that were going. I knew that it happened. It's one of the stops on Bill's Kennedy's oh, let me go do a workshop. So he posts when he's there on Twitter.

Miriah Peterson:

Their lineup looked fantastic. It looks like a fantastic group of speakers. So I'm excited to watch those talks afterward, but I have not had the chance yet.

Jonathan Hall:

Me either. I'll I'll make a point to do that later on. One last conference I do wanna mention, I was just asked to speak at this one, but I unfortunately, I won't be able to for the same reason that I won't be able to attend yours, and that is that I'm moving. But Feinconf is coming up. The actual conference is in, Berlin, in September.

Jonathan Hall:

The CFP closes today, though. So if you wanna speak there, Hurry closes today, August 23rd. But that should be a great conference if you're interested in GUI programming, in Go.

Miriah Peterson:

Yeah. We had Andy Williams speak at my conference a couple years ago.

Jonathan Hall:

Awesome. Yeah. He's a great guy. I I got to meet him at, Fosdham. We we were both speaking at the GoDev room there, in February.

Jonathan Hall:

So a lot of fun to hang out with him.

Miriah Peterson:

I'm glad that Fine has a conference and is still picking up steam.

Jonathan Hall:

Have you used Fine before?

Miriah Peterson:

No. I avoid anything graphical because apparently, I'm really bad at it. Like, I'm not allowed to edit our conference website because I mess it up. So I just as far to the back end as you can go is where I try and stay.

Jonathan Hall:

I'm probably in the same boat, but I'm I'm trying to do some I'm I'm trying to play with it. I just started using fine actually this last week for the first time. Too early to say, first impressions, but I'll, keep the audience updated as I perform an opinion.

Miriah Peterson:

I mean, it is it is definitely our highest viewed video from conference recordings. So it's got it's got a big following. Yeah.

Jonathan Hall:

Yeah. Very cool. We have one proposal that I wanted to talk about today. Actually, we talked about it before, but it's been accepted. This was the proposal to add context to tests, and I'm I'm actually quite excited about this.

Jonathan Hall:

I don't know if you listen to that episode, Mariah, or if you have an opinion on this. What do you think about the idea of adding context to tests?

Miriah Peterson:

It would be like to the the test function itself. Right?

Jonathan Hall:

So so like the the t object, the test the testing dot t, what couldn't you couldn't get a context out of it that will

Miriah Peterson:

cancel the task as Oh. Yeah. Oh, I I kinda like that. I think there's a lot of value there. I I don't see any value in my immediate use cases.

Miriah Peterson:

It like, if I were to say, oh, am I gonna take this and put it in at work? No. Because we need to just use the HTTP test package right now. But, like, any anything where you have to start doing synchronous not synchronous, but, like, using the sync package, trying to do any kind of coordination, there's a ton of value with that. Yeah.

Miriah Peterson:

And if you wanna make sure that you can, you know, trigger a context dot done and get the full, like, you know, cascade from it, that would be a great great thing to have.

Jonathan Hall:

Yeah. I was wanting it just recently, I was doing some stuff with test containers. Test containers takes a context, and when the context is canceled, it cleans up the container. And so it would be nice to sort of tie that to the testing context so that when I'm done with my test For sure. Clean everything up, without this sort of it's not it's not like it's a big deal in that particular case.

Jonathan Hall:

If I if I just cancel, it cleans up anyway. But I I like to I like to be tidy and clean up the right way.

Miriah Peterson:

Yeah. It it it's a it's a good orchestration tool. Right?

Jonathan Hall:

Exactly. Yeah. Yeah. Yeah. So that did not make it to 1.23, although it was actually merged before 123 was released.

Jonathan Hall:

But after the freeze, so it'll bake it into 124. So, something to look forward to in 6 months. So that's the main news for this week. Let's do a lightning round, Mariah.

Miriah Peterson:

Lightning round.

Jonathan Hall:

Do you have something you wanted to kick it off with?

Miriah Peterson:

I do. Yeah. Matt Holt, the, creator and one of the maintainers of Caddy, leased a new open source project called Timeline Eyes. It lets you collect and store your personal data on your local computer, and it organizes it into a timeline. So you can export your things from YouTube and Facebook and Gmail and and all of those, you know, mass export things, put it on your local hard drive, and then you get to explore it.

Miriah Peterson:

Can use, geolocation, time, lots of different search measures. It's pretty cool if you want to keep track of all your data that's out there and have a copy of it, you know, in case somebody's server goes down.

Jonathan Hall:

That does sound cool. Can't imagine I'll overuse it because, that sounds like effort. But it does sound cool. Like, if if I were to have done it, I would be happy I did it.

Miriah Peterson:

Yes.

Jonathan Hall:

The last few weeks, Shai, in particular, has been excited about some of these, gRPC posts coming from kmcd.dev, the good parts and the bad parts of gRPC. He has a new article out now called gRPC over HTTP 3. So if you're interested in diving further down that gRPC rabbit hole, check out that one. And I wanted to mention one. This is actually a fork of a project.

Jonathan Hall:

It's my own fork of a project related to some gRPC work I'm doing. I'm just doing fine. I'm starting to find, and I wanted to do gRPC to talk between my fine application and my back end. I wanted my back end, or I wanted my front end to build on the browser using WASM, which doesn't support, making socket connections that I need. So I have to do gRPC over web sockets.

Jonathan Hall:

So the package is, github.com/flimzy/wasmws, as in WebSocket, and it's a fork of another one. I've submitted some pull requests upstream. Hopefully, they get merged and my fork can go away. I don't really main aim to maintain this, but I've added some features that I needed, make it more configurable and actually make it so it compiles for the back end so I can run my tests locally without having run my test in my browser. So, if you're interested in gRPC over websockets or just interested in websockets in web assembly, check out the package.

Jonathan Hall:

Link in the description.

Miriah Peterson:

Yeah. Good luck.

Jonathan Hall:

Okay. Welcome to Mariah 3. I am gonna cut in right there and just interrupt the conversation. Mariah and I kept talking for several minutes. Stick around to hear the rest of the conversation.

Jonathan Hall:

It was interesting and fun. But first, I just wanted to say thanks to all our patrons for supporting the show. Thanks Thanks for listening. If you find this show useful and educational, please share it with a friend or a colleague or a fellow student. You can reach out to us if you want to if you have feedback or news items to share or anything else.

Jonathan Hall:

Cupago.dev is the website. You can also find us on the go for Slack in the cup dash o dash go channel where we like to chat about news items and go items and sometimes silly things. Pretty informal. We have about 400 almost 4 100 50 people on that channel now, so come join us over there. You can also buy some swag if you'd like some, new transparent stickers that look great on leather according to Shai who posted that recently on our Slack channel.

Jonathan Hall:

We have t shirts. We have mugs. Of course, we have mugs. We have cups. You can find all that over at cupago.dev.

Jonathan Hall:

You can also sign up to be a Patreon supporter there. Back to the conversation with Mariah. We did it. We did it in 15 minutes. We did it super fast.

Jonathan Hall:

I think you talk less to Shai.

Miriah Peterson:

Oh, I ramble. I just maybe my my my my anxiety is is getting the better of me, and I don't quite have enough rambles in me. You didn't ask me about anything that I find controversial yet. So Oh, okay. Well, would you like me to?

Jonathan Hall:

Oh, do I have anything controversial about Go? Probably not. Well, no. That only happens when

Miriah Peterson:

I go to work and I see people creating their own queues in Postgres after using Pubs. Like, you know, it's just general just general, like, software things. I'm like, why are you repeating work?

Jonathan Hall:

Alright.

Miriah Peterson:

Something I was listening to your your your thing your podcast yesterday, like, a whole bunch of them. And I went back to your interview with Alice from the Go team about and who's doing Go experience. I was talking to her about that. And so I have connections with other people. Like, I talked to O'Reilly people and a lot of, like, content creators and stuff.

Miriah Peterson:

And it seems like most of the content people consume who aren't, like, is, like, entry level Go stuff.

Jonathan Hall:

Mhmm.

Miriah Peterson:

But it seems like people that the Go team interact with are experienced GoDevs. So I'm wondering, like, my thought is, do you have any thoughts on where that disconnect is? Like, why when do people quit caring about entry level, but then only care about stuff that people who've been doing Go for 10 years care about?

Jonathan Hall:

When do people stop caring about entry level?

Miriah Peterson:

Yeah. It's like, oh, I'm doing the the intro to Go course. And then that's a chunk of content. And then we have content for people who've been doing Go for 10 years. Like, there's no, like, intermediate Go.

Miriah Peterson:

There's no, like, you know.

Jonathan Hall:

What does intermediate go look like?

Miriah Peterson:

I don't know. I think it's like there's beginner go and then there's advanced go. I'm trying to figure that like, that's the gap in my head that I'm trying to figure out. It's like, what is what are we missing?

Jonathan Hall:

I wonder if isn't such a thing as intermediate. Or or maybe a better way to put it is, like, there's not a such thing as advanced Go.

Miriah Peterson:

I want sometimes Go simplicity, I think, is part of it. Right? Like, it's such a easy language that it's like, okay. The is the use case easier, the use case hard, like, the language isn't

Jonathan Hall:

Mhmm.

Miriah Peterson:

Kind of a thing. But I just don't yeah. I I'm trying to, I guess, put myself in, like, where's the content I wanna consume kind of a thing too.

Jonathan Hall:

So so, like, I kinda felt like, setting up gRPC over WebSockets for WebAssembly was gonna be kind of a complicated thing to do, and it took me a day. It wasn't it wasn't that difficult. And I I've had that experience several times or something or or like like with the iterators, I thought this is gonna be kinda kinda confusing. I'm gonna I have a weekend. I'm gonna dive in and figure out how these new iterators work.

Jonathan Hall:

And within an hour, I had it working. I was like, this is this is easy. Like, I haven't found that advanced mode switch yet. I keep looking for it. You know?

Jonathan Hall:

And I I think it exists. Like, if you start doing c go or something, you know, or you start compiler optimizing, maybe that's the advanced level go stuff.

Miriah Peterson:

Maybe yeah. Just yeah. Let's do compiler optimizations. I don't know. I yeah.

Miriah Peterson:

I have I I may maybe you're right. Maybe there isn't an advanced Go. So I've just I don't know. I I I'm just here sitting here saying, like, what content can I create next? Oh, you only want intro to Go stuff?

Miriah Peterson:

Great. So I'll just build whatever I want, and that's it. There's my content.

Jonathan Hall:

And I remember when I did Pearl many, many years ago, there was certainly beginner Pearl and then intermediate Pearl and advanced Pearl. Yeah. Because because there's so many layers to uncover in that language. You know, there's all these magical things happening, and you learn all these weirds you know, all the weird ways and corner cases how types are handled in different ways. You don't have that in in Go with with rare exceptions.

Jonathan Hall:

Like like, I would say that the the way that, what I think the 123 changes the way the the timers are cleaned up. Understanding how that works is kind of advanced, but you don't need to understand that unless you're trying to optimize that specific feature.

Miriah Peterson:

That's that's how I find it. Yeah. No. I I guess I I see that I'm like, yeah, you don't there's just, like, probably 10% of Go you will never touch. And as soon as you touch it, you better understand how it works.

Miriah Peterson:

But for, like, 90% of your use cases, you you you just have great it's a great easy language to do almost everything. Okay. We're on the same page there. Yeah. I'm just trying to make it make sense in my head.

Miriah Peterson:

Why isn't it harder?

Jonathan Hall:

I'm curious what our listeners think if if anybody thinks that go Yeah.

Miriah Peterson:

For sure.

Jonathan Hall:

Is advanced is there advanced mode? What was it for you?

Miriah Peterson:

Sometimes I think turning up as soon as we turn off the garbage collector, we've hit advanced mode. But, sometimes I tell people if they don't wanna use a garbage collector to just go write Rust. So

Jonathan Hall:

Yeah. Yeah.

Miriah Peterson:

There's my hot take.

Jonathan Hall:

There's a hot take. Alright. Anything else controversial we could talk about?

Miriah Peterson:

I don't know. I'm I'm good. I'm good for now. I'll come you know, if you have me back, I'll come with all of the all of the, unpopular opinions.

Jonathan Hall:

Okay. Well, we'll hold you to that. We'd love to have you back again.

Miriah Peterson:

K.

Jonathan Hall:

Why don't you tell everybody where they can find you on Twitch and, anything else that you wanna wanna plug?

Miriah Peterson:

Oh, that's a good call. So best place to find me is definitely either, Twitch or I don't know why I'm on LinkedIn so much. So Twitch, I am soypeek tech, all one word. I also have a link tree that's soypeek soypeek_tech. People say, where does that name come from?

Miriah Peterson:

Soy is I am in Spanish, and Pete is my last name. Peterson. So it's I am Pete. Anyway, people get confused and think I do I'm a soy dev, and I'm like, no. I don't do front end.

Miriah Peterson:

So, yes, soypeek tech on Twitch. I stream every Friday. We do all go and then I publish go stuff on Substack and LinkedIn. So if you're interested in that and it's all on my Linktree. So that's my version of a personal website.

Jonathan Hall:

Cool. I'll have links to all that in the show notes too if it's hard to remember. If you don't know how to spell soy because you don't speak Spanish.

Miriah Peterson:

It's the same in English. But yes. Yes. If if you got confused, soy, you don't speak Spanish, it doesn't make any sense anymore. We'll add links.

Jonathan Hall:

Awesome. Thanks, Mariah, for joining me. It's, been a pleasure to meet you and, talking about the Go news.

Miriah Peterson:

Yeah. Thanks for having me.

Jonathan Hall:

Alright. We'll talk to you later.