🎮 Gaby, help me learn 5 tips about Game Development in Go and goreleaser them
This show is supported by my on Call Duties. Oops. I meant you. Stick around to the outbreak to hear more. This is Cup o' Go for June 14, 2024.
Shay Nehmad:Keep up to date with the important happenings in the Go community and honestly, this week not so important happenings in about 15 minutes per week. Well, it's a mixed bag. I'm Shay Nehmad.
Jonathan Hall:I'm Jonathan Hall
Shay Nehmad:How's your jet lag doing?
Jonathan Hall:Yeah. Woke up at 6:30 this morning, which is very uncharacteristic for me. But, trying not to overcome it too much because I fly back home early next week.
Shay Nehmad:All the way back to Amsterdam where we'll meet.
Jonathan Hall:Yes.
Shay Nehmad:I'm super hyped. If you wanna list like, know more about this, stick around till the ad break, but June 19th, Amsterdam. Be there or be someplace else.
Jonathan Hall:Those are kind of the options.
Shay Nehmad:Yep. If we're talking about next week, we have to mention Gofer Con EU. Yeah. I will not be at Gofer Con EU. I will actually be at DevOps days, which is crazy to me that they're on the same, like, dates because it seems like exactly the same people want would want to attend both.
Shay Nehmad:Mhmm. But I guess programming and dates never never mingled. They're really awesome speakers, and the venue looks beautiful. So if you're not coming to meet myself or Jonathan, I would definitely recommend you go there.
Jonathan Hall:I had the privilege earlier today of seeing one of this, one of the presentations beforehand. One of my mentees is speaking there. I'm actually pretty envious of him that, he's he was invited before I was. But he's gonna be speaking about, I can't remember what he calls the topic of his title, but he's, talking about learning Go from the perspective of a Java developer.
Shay Nehmad:Oh. From Java to Go, I have a hammer and see nails everywhere.
Jonathan Hall:That's the one. Looks good.
Shay Nehmad:I I put my eye on unraveling Go anti patterns. Oh. That sounds good. I I heard some, talk in Reddit about, oh, Go just uses the word idiomatic to or maybe it was in our channel. Go just uses the word idiomatic to justify everything, and it would be cool to hear, like, I don't know, perhaps a more reputable, source because it's a talk, someone reviewed it.
Shay Nehmad:It's slightly more serious than just random ramblings on the Internet. But there are some really cool lectures coming, and it's very important to notice that even if you can't make it, you can buy an online ticket. Right? And if you can't afford the online ticket, the GopherCon team offers financial support virtual tickets.
Jonathan Hall:That is pretty cool.
Shay Nehmad:If you don't have the opportunity to attend, you can apply for an on a online ticket, which gives live access to all the talks, via the online platform and, you know, the information doesn't get shared with anyone. I think it's just, the Go team's way of, you know, if you really can't afford it but you wanna join, they they prefer that you join, and not leave anybody out. Obviously, if you can afford the online ticket, you should probably pay it because all the money goes to, like, go community, go bridge, go whatever. And, you know, these events aren't cheap, and the speaker's time out isn't cheap. And the the more we pay these events and pay back to the community, the better the events are gonna be next year.
Shay Nehmad:Right? So Absolutely. You can think about it like an investment. In the same way, our beautiful Patreon members invest in this show.
Jonathan Hall:Nice plug.
Shay Nehmad:Keep it in your pants, Shy. Alright. That's one.
Jonathan Hall:That was random. Speaking of random,
Shay Nehmad:Nice.
Jonathan Hall:Few weeks ago, we talked about a proposal. We know that Math Brand v 2 has been out for a little while now. So math brand still is still there, the old one. It will still continue to work, but they're trying to improve it, and make it a little more secure. And one of those changes was to make make it automatically seed the old legacy pseudo random number generator on startup.
Jonathan Hall:So you don't have to seed it explicitly anymore like you had to in the past. They're going one step farther now and we talked about this proposal to make seeding it a no op. So now you can call seed all day long on it and it won't do anything. So that has been accepted. I'm assuming will be included in go 1.23 in February.
Jonathan Hall:There is still a backdoor. If you absolutely need the old behavior, you can with a go debug flag. Hopefully, you don't need that. But I I think that's nice. They're making, even the old math rand more secure.
Shay Nehmad:And the debug flag is there until 2 versions from now or 4 versions from now. How how is that gonna work out? Although, you know what? If you're worrying about that, just fix your program. Do not rely on
Jonathan Hall:the seed. Yeah. I don't know exactly. It says it it says, through Go 1.27 at least. So that would be 24, 25, 26, and 27.
Jonathan Hall:That's 2 years. If you haven't fixed your random stuff by then, just stop upgrading your Go versions or something and and and go back to Python.
Shay Nehmad:And, actually, you can stick on for 3 years. Right? Because 127 is gonna be supported for another whole year after that. So you're good. Cool.
Shay Nehmad:So, Matheran, getting, safer. Two updates on stuff we talked about in the past. Let's talk about some new stuff that was released.
Jonathan Hall:Oh, Go Releaser. Go Releaser v 2. This is a breaking change.
Shay Nehmad:You don't see a lot of breaking changes in in Go Yeah. Big Go packages.
Jonathan Hall:It's nice to see December actually being honored in saving a breaking change for a v two instead of like, oh, this is 0.3, but, yeah, it breaks stuff anyway. So looking at this, did you see anything that jumps out at you as as I mean, you you use the releaser. Right?
Shay Nehmad:So we, at Orca use releaser for both internal tooling and, like, our open source CLI that we provide to people to check up on their, you know, source code, security and dependency security and stuff like that. Mhmm. And in our, like, enterprise y, we sell this to clients, the CLI. We actually use Go Releaser Pro, which is their sort of way to to monetize this open source project. I'm really happy to see them moving forward.
Shay Nehmad:The full change log, you know, it's there's, like, rename the model to v 2 and and v 2 and remove a lot of deprecated options. The main thing that jumped out to me and you might, not take this is too seriously is the maintainer's, comment, on the v two issue which is remove all deprecated options. Config file should now have a version 2, bit, and then the GIF of the turtle from Kung Fu Panda saying, it is time. Yeah. So I was really happy to see that, but, you know, there's a lot of, improvements to just deprecated options that aren't relevant anymore.
Shay Nehmad:Things like being able to skip validation and skip hooks, and they're just deleting options that aren't that great.
Jonathan Hall:That's kind of my feeling is that this is kind of been a long time coming. They've been marking things as deprecated, but keeping them around now. This is time to clean them up, throw away the craft and, sort of, you know, start on a clean slate for new features and stuff again.
Shay Nehmad:Yeah. This is not a huge, like, breaking change in the same way you think about, like, they changed the entire architecture and thing like Yeah. Things like that. They just really respected the v two, thing where they want to mark that this is a breaking change because they removed some flags. But honestly, the the if you look at the change log, it looks like the biggest change is the import paths.
Shay Nehmad:But in reality, there is, a lot of implementation differences. The main thing though being stuff that was already marked as deprecated is now, doesn't exist anymore, which I think is great because if you've been following the deprecation markers, which something as simple as Go Releaser, that wouldn't that wouldn't be so hard to do. Mhmm. You might be you might be looking at a clean upgrade between v 1 and v 2, which is even rarer.
Jonathan Hall:Yeah. Yep. So
Shay Nehmad:super cool work. If you don't know a lot about Goraleaser, in the show notes, obviously, we'll link the project and this specific announcement. I'll also link talk we gave. It's in Hebrew. Or if you're listening to this and you're like, I don't know Hebrew.
Shay Nehmad:This is not relevant. But the latest Gofer Khan Israel meeting, someone from Orca called, Leora Kobayana and myself talked about how we use coreleaser in more depth. So if you wanna, you know, know about it, we'll give you the link.
Jonathan Hall:Awesome. So last last night, Shai, I was at the Atlanta Go meet up. I I presented there. And when I mentioned that I work for Unity, somebody's like, oh, do you do you use Go dot? Are you players Go dot?
Shay Nehmad:So I heard a lot about it. It's an open source, game engine. Right?
Jonathan Hall:Yeah. I I guess. It was the first I heard of it. The first I remember hearing of it at least does 2 d and 3 d games, game engine for Go and it came up. I I don't actually do game development even though I work with one of my clients as Unity.
Jonathan Hall:I I work on their CMS which is written in Go. But it reminded me of this, this item has been in our backlog for a little while here about Go development or game development in Go. I read it post from last week. Why is Go not used for game development?
Shay Nehmad:That was an interesting blog post. It actually caught my eye. I'm planning to do some game development soon. Mhmm. I'm not a game developer myself, but I am an avid gamer.
Shay Nehmad:Recently been tearing it up in Balatro. Still haven't finished Elden Ring, but but I'm I'm close on my way. Just, finished the fire giant. And unlike you, I I I'm a PC master ace, not a console, peasant.
Jonathan Hall:I use a Steam Deck.
Shay Nehmad:Oh, that's that's actually the best play of of them all. I have to get my hands on one.
Jonathan Hall:Since the day my Steam Deck arrived, my PS 4 hasn't empowered on, and I haven't even thought about buying a PS 5.
Shay Nehmad:Nice. This show is sponsored by Gabe Newell. So there's this, game development channel I've been obsessing about on YouTube called the Game Makers Toolkit. It's this British guy called Mark Brown and in 2 months, there's gonna be a game jam in August. I actually took time off work and everything, I'm I'm really planning to sit my ass down and make my first real game, and I was this thread just caught my eye because I don't know what engine I'm gonna work in.
Shay Nehmad:I don't know what language I'm gonna be developing in yet. But I guess Go is off the table. They the thread mentions ebit engine
Jonathan Hall:How about that?
Shay Nehmad:Which is a 2 d game engine for Go, which is very simple. But, you know, they mentioned that they use Go for many services and tools that help game development companies like content pipelines and and things like that. But overall, tight memory management requirements, they at least according to, you know, someone who's working on Call of Duty is that garbage collection is kind of off the table, unless you're coding very memory limited things, like not the game engine stuff itself, just like the quest line for example is very commonly developed in Lua because you can bring a super lightweight interpreter and limit the memory there. So that was the main thing which is sort of reminiscent of the thing we talked about maybe last week. What stuff go isn't good for?
Shay Nehmad:Right? Audio, processing, and things like that. Maybe it was 2 weeks ago actually. There was one comment here I really liked which is sometimes there isn't a grand reason. There's nothing technically wrong with Go.
Shay Nehmad:This is from, Epoch Vanquisher. If you wanna make games with it, let Go do that. Some people have made games in Go, but the tools, libraries, and community, the Go ecosystem just doesn't have that for a game.
Jonathan Hall:I have to wonder, like, when you're talking about about garbage collection and all that, I feel like that's kind of focusing on sort of the high end of games, you know, maybe 3 d first person shooters or whatever. But there's so many games like, why couldn't you write Candy Crush in Go? Who cares if it pauses for a microsecond here and there to clean up some memory? You know what I mean? I feel like there's a there's huge amounts of games that could be written and go without caring about the garbage collector.
Jonathan Hall:So that that feels to me like a little bit of a a weak argument.
Shay Nehmad:So I think, you know, many big games are developed in Unity. I think it's probably the engine most people heard about and, you know, probably I I know how many of our audience have my background where as a kid, they started gaming and that's how they actually got interested in, you know, the these wonderful pixel machines called computers. This is basically, you know, when I was a kid, I trained myself to make the pixels do the thing I want and be happy. And now the thing that I want is, you know, enterprise software cybersecurity development instead of playing Doom. But it's in essence, it's not different.
Shay Nehmad:I'm clicking buttons and it draws the pixels. Mhmm. So the thing is many people got into gaming and developed and, like, games and engines like Unity, which the scripting engine is like c Sharp, if I remember correctly. I did the tutorial, like, a lot of many years ago. Mhmm.
Shay Nehmad:But if you're already picking a high level language to develop in, I think most people would opt for, like, pygame and Python or c sharp and Unity where you already have the community, the tooling, and the editor. And if you're already going to towards Go, you know, you and I probably think about Go as a super comfortable ergonomic language that's easy to use and whatever. But I would assume that the average developer looks at Go and thinks that it's harder because it has pointers than, you know, c sharp, which doesn't have pointers in memory management. Right? Just on a surface level, you have to pick it.
Shay Nehmad:And, you know, a 1000000 people pick, the path which is easier already has the tooling and the engine and the libraries.
Jonathan Hall:I think that's a much more compelling argument that there's a lot of momentum already behind a particular set of frameworks and and engines and features, and go just isn't part of that. And but I think that's much more honest and compelling answer than, oh, it's because of garbage collection. I I just I just don't buy that. I mean, for a very small number of games, yes, garbage collection would be a problem, but I I think that's not the general answer.
Shay Nehmad:I think the someone actually talks about that specific thing here as well, but it is important to mention that if you do want to make even a medium end game, like but you wanna use audio processing, like real time audio processing or graphics or sounds, just things that games need. These things are in c or c plus plus. And the binding between c and c plus plus to go does have costs and it's hard to, like, set up. And since it's not the usual way anyway, you're probably gonna waste some time on it. And when developing games, I think most people don't wanna focus about you know, they wanna divert their focus towards the game experience and playtesting and things like that, and they don't wanna mess around with, like, matching, c to go code just to make sure that the engine is in go.
Shay Nehmad:Although, I have been following someone who's been developing their game in Unity and just because they've been, sick of their development process in Unity, they moved to Bevy, which is a game engine in Rust, which has even less support for game development, I would say. Interesting. So I I think it does matter that you enjoy the tooling that you use. And if you wanna use Go in your game development experience, go do that. I don't think I will be doing that for the game jam because I have, like, 2 days.
Shay Nehmad:I I can't imagine myself insisting on using Go for that. I also can't imagine myself actually finishing a game in time, but, let's see.
Jonathan Hall:Let us know how it goes.
Shay Nehmad:You'll definitely hear in that week's episode, my caffeine induced panic about not finishing all the assets. If I want some help with navigating all these issues and threads and all this content being thrown my way, who can help me other than our beautiful show?
Jonathan Hall:Gabby. So there's a new discussion over on the GitHub issues tracker for Go. The discussion you might recall is separate from the proposal process. It's sort of a sidetrack. Russ opened this discussion last week about a bot he's writing called Gabbi Help.
Jonathan Hall:It's a bot to interact with GitHub issues and it does some various automation tasks and he's asked for feedback. If you submit an issue and Gabbi Help does something on it, thumbs up it or thumbs down it depending on whether you like the the interaction. And if you want to, give more feedback, go over to this issue and, like, leave or this discussion rather and leave a comment. He's soliciting suggestions for how to improve it. So if you want, like, a Tetris game built into it that's written in Go using a competitor to Unity in this bot.
Jonathan Hall:This would be the place to suggest that, or whatever whatever other great ideas you have to make interacting with GitHub issues better through Gabbi help. So leave your
Shay Nehmad:suggestions. Yeah. I believe, you know, if you've been perusing the issues a lot, you probably have a a nint or 2 of, like, I wish this would be done automatically. Like, oh, there's a comment from, Shane Ahmad. So let's immediately add a a 1,000 down votes because just let's save everybody some some time.
Shay Nehmad:I'm just kidding. I'm not salty at all. It's all fine. My suggestions actually have been bad.
Jonathan Hall:I don't know about that. I don't think that's fair.
Shay Nehmad:So unlike our usual, division towards a pay blocked article, There is one article that managed to open on both of our, machines, and if you can't open the link, you know, there might be another link that fell off a truck that's also a machine, just the way back machine. I didn't tell you about it and you didn't found it, then let's just talk about the content of the article, shall we?
Jonathan Hall:Wow. Five small tips I recently learned in Go. This is brought to my attention when I was tagged on Twitter. Nothing in this article jumped out at me as is a revelation, but I like I like that somebody's writing about what they're learning in Go. I always want to encourage that and there's some good tips in here.
Shay Nehmad:So hit me. What are the tips?
Jonathan Hall:Make the compiler count the array elements.
Shay Nehmad:Make the compiler count the array elements. Well, I always like that when the compiler does work for me. But aren't Go slices dynamically sized? How could the compiler count them for me?
Jonathan Hall:Yeah. So this is this is about arrays. We don't use arrays a whole lot, directly in Go. But if you do, suppose you want to create an array of 3 elements, you can use square bracket with 3 in the middle, right? Tell it to the 3 elements or you could do a.
Jonathan Hall:In the middle. So, open bracket, closed bracket and then it automatically creates an array of the amount, the number of elements you're including in your your definition. So that's what this tip is about.
Shay Nehmad:So that's nice because I obviously, in this, canned example, it doesn't matter, but I imagine I add another element to the array, and I I don't care about it being size 4. I just care about it being const size. Right? Because otherwise, I would just opt to use a slice instead. This just saves me from typing.
Shay Nehmad:Like, real like, the it makes the code more maintainable and does make it less readable. The first time I'll I I saw this, I was like, what? But next time I'll see this, I'll be like, oh, clever. That was a nice amuse bouche of a tip. What what's the next one?
Jonathan Hall:The next one is go run dot instead of go run main dot go.
Shay Nehmad:So how does that work? Does it run the entire directory?
Jonathan Hall:Go run dot runs the package in your current directory, regardless of how many files it contains. So if you're doing anything more than just a very trivial program that's in a single main dot go, the file version will probably break in surprising ways. But if you do go run dot, you're covered. Oh.
Shay Nehmad:So this is a tip someone wise once said.
Jonathan Hall:Or at least somebody was, randomly correct about that one.
Shay Nehmad:Yeah. This is a full circle because the person who wrote this article, Andre Bauer, learned it from you.
Jonathan Hall:Which brings us to the next one, which he learned from Mickey, to Becca, who has been on the show recently. And that tip is to use underscores to make your numbers more readable. So if you have, say, 10,000,000, you can do 10 with a whole bunch of zeros or you can put underscores in there at the comma places, right? So 10,000,000,000 has no semantic meaning, but it makes the numbers more readable.
Shay Nehmad:I think it makes the numbers way more, readable.
Jonathan Hall:Oh, yeah.
Shay Nehmad:And I don't know where it is, but I'm pretty sure that there's a linter that finds numbers that look bad. I really wish and if they're like, they don't have this and if there isn't one, I might write one because, it's a I think it would be a very good number linter thing to to be corrected because it's a super simple correction. You could write an automatic fixer that just makes the code looks a lot better. Yep. I never write numbers out, you know, using a pen without doing the little commas because I'll obviously mix it up.
Shay Nehmad:Of course. So a really nice tip. Don't I I can't find that linter on Golang's Island. I guess that means it doesn't exist.
Jonathan Hall:Well, we we expect you to have it written by next week so we can talk about it on the show.
Shay Nehmad:I'm on it. I'm on it. I'm on it. Sorry. Yes, boss.
Shay Nehmad:Yes, chef. Tell me the next steps in case they're relevant.
Jonathan Hall:You can have different test packages in the same package. What does that mean? So if you want your test to run-in a different package so you can like test the facade of your API, you can put it in say your package is called Foo in your test file, your futest.go, you can say package futest and it runs it in a separate package.
Shay Nehmad:Nice.
Jonathan Hall:That's that's the only exception that I know of to the rule that all files in a directory are in the same package.
Shay Nehmad:So why would I do that though? Why wouldn't I just put my test in the same package like I've always done?
Jonathan Hall:If you want to test, that it, that it works without access to private variables, for example, that would be a reason to do that.
Shay Nehmad:Oh, that makes sense. So if my tests aren't testing the private functions.
Jonathan Hall:Mhmm.
Shay Nehmad:Yep. Here's here's a tough one for you. Should I test my private functions?
Jonathan Hall:Yes.
Shay Nehmad:Sometimes. It depends, TM.
Jonathan Hall:It depends.
Shay Nehmad:Alright. I'm ready. I'm ready. What's the last tip? Last one is
Jonathan Hall:passing the same argument multiple times, and this is with Head guard
Shay Nehmad:oh, multiple times. Never mind. I thought the joke would land,
Jonathan Hall:but you're so focused on on teaching me the tip. I got it right now. Yeah. Yeah. Yeah.
Jonathan Hall:This is with regard to FMT, the print f type functions. If you want to do like, I don't know. So you have the example here is you're passing name twice. My name is percent s. Yes, you heard right percent s.
Jonathan Hall:You can pass name in twice or you could use numbered variables. So you say my name is percent bracket 1 s. Yes, you heard that right percent bracket 1 s, and then just pass the variable n once.
Shay Nehmad:So the useful use case for this is, like, looking at this face value, this just looks whatever. But good reason to do it is if in case you wanna print out the type and then the value. Right?
Jonathan Hall:Mhmm.
Shay Nehmad:Then you do bracket 1 t and then bracket 1, v or even, like, plus v if you want the the bug view. So that that would be super useful for, like, simple log prints if you're if you're not doing structured logging that is just for debugging and stuff.
Jonathan Hall:And another case I've been using recently on a project is where I have a single format string but I pass different arguments to it. You can actually ignore arguments this way. So I just say that whatever I expect to always pass say name, age, and address to this function and I can pass in different formatting strings some of which might even ignore name, for example. So percent bracket 1 never shows up in some of the formatting strings. So it gives you a lot of flexibility in that regard too.
Shay Nehmad:Oh, that's cool. I wouldn't have thought of that. Although the moment I would have reached that, I would have already written a text slash, template thing. Oh, and one last thing to mention this week before we, head off to our, beautiful sunset, you know, ad break. No interview this week, by the way.
Shay Nehmad:We want to shout out, someone on the channel who shouted us out, and it was really cool and made me feel really good. So, John McGuire, I hope I'm saying that correctly, who's working at, HashiCorp. Apparently, we mentioned the thing, CVE in HTML template or text template or something like that that rang a bell from him when he came back from vacation, and he found the performance degradation at work because of the CVE fix. And he was like, oh, why are we using HTML template instead of text template? And he said, quote, definitely a rock star moment because he just caught a thing we said and it helped him at work.
Jonathan Hall:How cool is that? That's pretty sweet.
Shay Nehmad:The show is primarily for us to learn. Right? That's the whole premise. We wanna learn about all these things, like, these 5 cool Go tips, which I which I'm was happy to learn. Thanks, Andre.
Shay Nehmad:But this validation that, you know, we're not just messing in in things nobody cares about and the show is actually helpful to other people, it feels really good. Thanks, John. I hope we help you even more in the future. I hope you suddenly learn about, you know, oh my god, all our formatting strings. We've been passing the same parameters so many times.
Shay Nehmad:Now that John has told me about it, I can use the indexing feature instead. Awesome. So, John, you're welcome.
Jonathan Hall:Feels so good.
Shay Nehmad:Alright. Thanks all for listening. Stick around for the ad break to hear us the app some more. Welcome to our ad break. This show is supported by you via Patreon, which is a service where you can join as a member, pay us a few bucks a month, and this helps support the show.
Shay Nehmad:What do I, mean when I say support the show? This is a hobby. Right? This is not our job. We're not making any money off it, but it's pretty expensive one.
Shay Nehmad:We pay for editing. We pay for hosting fees. Some other stuff, I guess, next week we're gonna pay for beers. So even if John's buying, so from the show's budget. Right?
Jonathan Hall:Pretty much.
Shay Nehmad:So you're buying?
Jonathan Hall:I'll be buying at least one beer.
Shay Nehmad:So if you wanna help support the show, you can join as a member on Patreon. That's the most direct way to sustainably support what we do here. And we wanna shout out vulcan.apcooral, whatever. I hope I said that right, who joined as a member.
Jonathan Hall:Thank you.
Shay Nehmad:We have quite a we have quite a few members in the audience. It's a it's a beautiful club of people. 24 people, which is great. Some of them are free members, some of them are paying members, which we like more. No.
Shay Nehmad:And if you wanna join, the link is in the show notes and you can also just visit our page by going to patreon.com and looking for a cup of go. And we would greatly appreciate that.
Jonathan Hall:I got to meet a couple of our beautiful listeners, at the Atlanta meetup just last night too. That was fun.
Shay Nehmad:Oh, cool.
Jonathan Hall:Yeah.
Shay Nehmad:The any constructive criticism?
Jonathan Hall:No. It was all pretty destructive criticism. That was a nice it was a nice community. It was a small group. I think about 20 people there last night.
Jonathan Hall:2 of them said they were listeners. It it was fun to meet some new gophers.
Shay Nehmad:That's cool. So that's it for the Patreon shilling. Thanks for joining if you have. We are planning to do a physical episode next week. I'm flying out to Amsterdam for DevOps Days.
Shay Nehmad:I'm really hyped. Flying out with, one of my employees, who's also called John, funnily enough. And during the day, I'll be at DevOps days, but, on June 19th in the evening, we're meeting up. We're still not sure where. So if you're if you wanna join, be on the lookout in the Amsterdam Go Slack channel, which is part of the Go for Slack.
Shay Nehmad:Right?
Jonathan Hall:Yep. Yep.
Shay Nehmad:So this time, we're directing you towards another channel.
Jonathan Hall:We'll we'll mention the Cup of Go channel too. Understood. Yeah. For sure. For sure.
Shay Nehmad:So if you wanna join, we'll I'd love to see y'all. I actually, ordered this is a tangent. And I know this is an ad break of a show that doesn't have an interview. So basically, just Jonathan is listening right now. So I went to order swag, and I ordered some swag samples.
Shay Nehmad:So I can, you know, hand out stickers and and have a hoodie because it's gonna be cold because it's Europe. Right? Mhmm. Mhmm. And I got the message from the post office, the Israeli post office today, come pick up your package.
Shay Nehmad:Not catch my ass at, like, at the mall super sweating after a hour long bike ride, coming to the counter. The counter is closed. What the hell? I really hope I can grab some of the swag before I fly out, but I'm sure you'll accept me empty handed as well.
Jonathan Hall:Yeah. If we must.
Shay Nehmad:Yeah. Let's do our usual stuff. So if you wanna reach us, kapago.dev, that is kapago.dev. You can find all the links there, including a link to our Slack channel, which had all these beautiful praise about us turning people into rock stars and some other interesting discussions as well. Some misinformation, some doctored images, specifically this week.
Shay Nehmad:And if you're not into all that fangled, the new nonsense, instant messaging, you can email us at news atcapago.dev. That is news atcapago.dev. If you also want to put your hand on some swag like, I am desperately trying to, but the Israeli post office is trying to prevent me from doing, you can find the Swag store there as well where you can buy a cup. That's basically what people have been doing with the Swag store. Finally, if you wanna support the show some other ways, if you're enjoying, listening, the best way to do this is to share the show.
Shay Nehmad:We do not pay to advertise the show in any way. We don't promote it, you know, like, you promote it. That's your job. You're here to listen and promote it. So we've recently hit 60,000 downloads, which I was these numbers don't mean anything anymore, but it's so nice to watch them to go up, I think.
Shay Nehmad:And we've been also doing this for a while. This is our 67th episode, which is pretty cool. We've had some repeat, you know, interviewees and, you know, already recognized some people from our community. And we recently crossed another analytics, threshold, which I'm excited about. We crossed 500 subscribers.
Shay Nehmad:Yeah. Big numbers. And the reason the episodes have just done really well. It's really cool to see. And a lot of that is thanks to you.
Shay Nehmad:Just sharing the show, you know, with people you know and and people from work and then GopherCons and Gopher meetups and things like that. So if you want to support us, another way, you could do that. It's always nice to have more listeners and, people learning about Go. I think that's it. I hope to meet you all, next week.
Shay Nehmad:Next week's episode is gonna be kind of a toss-up.
Jonathan Hall:We're
Shay Nehmad:gonna record it in a bar. It might not be up to the journalistic, quality you expect from us and the New York Times. But,
Jonathan Hall:But there will be an episode.
Shay Nehmad:Yeah. There there definitely will
Jonathan Hall:be an episode. We promise an episode. We just don't promise the quality.
Shay Nehmad:Yeah. It might be inebriated and compressed. But we will definitely talk about Go into a microphone.
Jonathan Hall:Yes.
Shay Nehmad:See you all next week. Maybe live. Bye.