💧 A leaky goroutine certainly does suck!

Jonathan Hall:

This show is supported by You, Our Listener. Stick around till after the news to hear a little bit more about that. This is Cup of Go for 09/26/2025. Stay up to date with the important happenings in the Go community in about fifteen minutes per week, sometimes twenty, sometimes thirty. I'm Jonathan Hall.

Shay Nehmad:

And you're not French. I'm Shay Nehmad.

Jonathan Hall:

I'm not French. Should I be French? I don't get

Shay Nehmad:

it. Yeah. Last week, covering for you, we had Gabriel. Thank you so much, Gabriel, for, covering for John. You if you wanna live up to his podcasting ability, maybe you can run this entire episode using a French accent.

Jonathan Hall:

I'm not even gonna try.

Shay Nehmad:

Yeah.

Jonathan Hall:

I make enough of fool fooling myself with my own accent. I don't need to do it in someone else's.

Shay Nehmad:

Talking about naked returns and some such? Right. Glad to have you back. What do you have for me?

Jonathan Hall:

It is good to be back. Last week, I was stressing out with my two kids in Guatemala. It wasn't a vacation. I heard you I heard you try to claim I was on the beach sipping Mai Tais and stuff like that. I was chasing toddlers around a non childproof house with chickens and cats and stuff in Guatemala.

Jonathan Hall:

Chasing kids drinking Mai Tais. No. There we go. There we go. Now the whole reason for the trip was to do some dental work for my daughter, my two year old daughter.

Jonathan Hall:

Much cheaper there than in The US. God bless the American healthcare system.

Shay Nehmad:

Don't even get me started.

Jonathan Hall:

Let's talk about Go. First up, this guy named Shay. Is that how I pronounce it? No, it's not. Shay is doing a meetup in San Francisco.

Jonathan Hall:

Again, Halloween themed gopher meetup. If you need something scary to to keep you going, you can edit the runtime. That sounds scary enough to me to make it for Halloween. And a live episode recording, that also sounds kind of scary. So I think this is perfect.

Jonathan Hall:

It'll be on October 23. Do you have a location? A Forge.

Shay Nehmad:

Yeah. It's gonna be happening at Forge. I don't know him either. Someone, I think they might be a listener or just a Slack member or whatever reached out and were like, hey, we have a pretty cool office. Do you wanna come by?

Shay Nehmad:

Which was super cool. That's awesome. And there's one, CFP still open. We have a thirty minute slot at the end which is open to anyone who wants to come do a talk, a lightning talk, a real talk. We could we could definitely make it

Jonathan Hall:

happen. Super. Also in the news, let's go.

Shay Nehmad:

If after my meetup, the next day you're in Utah, tickets for Go West, October 24, are online. We talked to the Go West organizers. You should go and listen to the episode back if you're on the fence, if there's like any chance you can make it. I think actually listening to that episode will definitely tip you over the edge, with Moriah and Derek.

Jonathan Hall:

Yeah. I'm one of the cofounders of the Go West Conference, Moriah Peterson, long time Go user, content creator, and obviously conference organizer. And yeah. Yeah.

Derek:

I'm Derek. I'm one of the, more silent partners, in organizing Go West, kind of the introverted side, but

Jonathan Hall:

You provide the money. Right? At

Derek:

Yeah. Least I try to help with that anyway.

Shay Nehmad:

Are you planning to go to my meetup or Go West, or are you too busy?

Jonathan Hall:

I'll be at Go West.

Shay Nehmad:

Oh, that's a shame. That means you won't be

Jonathan Hall:

in Go For Con Africa. That's that's what it means. I will not be at GopherCon Africa. The good news is GopherCon Africa is online, though, so maybe I can catch some of the the stuff happening there the next day.

Shay Nehmad:

I mean, if you're willing to forgo sleep, it's pretty much not the same time zone.

Jonathan Hall:

Who sleep? So yeah. Go for Con Africa is in Lagos, Nigeria, October 2425. So you might, with time zones, you might be able to leave, go west, hop on a plane and land in Lagos just in time to catch the closing talk there if you really, really rush.

Shay Nehmad:

Yeah, it's GMT plus one. I was like, wait, is it GMT plus three? But no, it's the other side of Africa. It's West Africa, that's not it. So there's a call for sponsors, there's call for speakers, and they say 400 plus people are supposed to, come, and you can get your ticket.

Shay Nehmad:

It seems pricey, 30,000.

Jonathan Hall:

What?

Shay Nehmad:

But I don't know what's the currency. So it might be actually incredibly cheap.

Jonathan Hall:

Let's do the conversion here. NGN. So

Shay Nehmad:

I don't even have dollars, like, really pegging for

Jonathan Hall:

$20.

Shay Nehmad:

$20 for a ticket is okay for a conference ticket.

Jonathan Hall:

Yeah. I might even be able to afford the airline ticket for that if I wasn't speaking at Go West. Cool. Cool.

Shay Nehmad:

So, yeah, conferences, meetups, Gophers coming together. I mean, all the cynicism and jokes and whatever aside, there's, I think there is value in going to these events and meeting the people. If you're I really a beginner. Yeah. Yeah.

Shay Nehmad:

Yeah. Because seeing the humans behind the GitHub issues.

Jonathan Hall:

Yes. Yes. And just getting a sense that you're not in it alone, especially if you're new. It's nice to know that other people struggle the same way you do. And some of them overcome those struggles and go on to do amazing things such as teaching other people how to overcome struggles.

Shay Nehmad:

Yeah. And be the speakers. Yeah. You always see like people the the speakers, they're like the highlights and then you see people in the booths. I like talking to people in the in the sponsor booths.

Shay Nehmad:

They're the ones really in the trenches. You know what I mean? Mhmm. Like solving production issues while trying to sell their whatever authentication software or software consultancy. Yes.

Shay Nehmad:

One last meetup to mention, we talked on the show about Let's GoConf, which is like Go For Con Russia, basically. They had a follow-up, sort of message in the telegram that I joined, which took me forever to read. Mhmm. A bit inside baseball, but Jonathan actually had time to go grab coffee and come back by the time I tried to read this. What I understood is that generally, you know, they were like, friends, thank you so much, it was awesome.

Shay Nehmad:

Thanked, Moy Office, which is like my office, which was the sponsor of the event. So, Spasiba, my office. They had a one to a 100 to one game. Do you have that in, America? I know it's a very European game one.

Shay Nehmad:

No. I don't know 100 people sit in the audience and one person on the stage is trying to answer trivia questions. Everybody else is answering it as well. And Oh, you know, it's it's basically you doing trivia versus a 100 randoms.

Jonathan Hall:

I see.

Shay Nehmad:

So they did that in the conference, which sounds like super fun. You ask people about Go stuff. And they sent a link to all the pictures, which I don't know. I I never opened a link to like a photo drive where I wasn't there and I was just hunting for myself. Mhmm.

Shay Nehmad:

So it was actually an interesting experience. Instead of just scrolling through all the pictures desperately looking for when the photographer may have grabbed me, you're just looking at the people trying to figure out what sort of time they had. And it looks like a super serious conference. Like, looks really fun. And they were, like, already ready for 2026, looking for feedback, blah blah blah.

Shay Nehmad:

So they're like, seems like a really good event. Yeah. Cool. Cool stuff. So that's the conferences and meetups, section.

Jonathan Hall:

Nice. Let's move on to some proposals.

Shay Nehmad:

I thought there were no proposals this week. I thought it was quiet week. What what's going on?

Jonathan Hall:

It was not. We have several to talk about, actually. I think we have three I wanted to to highlight. So one proposal I'm pretty sure we talked about before, although I'm not finding it right now to put a link, that has been accepted is the proposal to add a new method or a new function to the errors package called as type. You probably are familiar with errors dot as, which takes an error as an argument and then another value that it tries to coerce the error into that value.

Jonathan Hall:

And it's kind of confusing to use sometimes. The proposal is to add a new generics version of that, basically. That makes it just a little bit easier to use. So you call as type error and it returns a new error of the type you want or in a boolean indicating whether or not the conversion was successful. So it's kind of like a type conversion for errors that handles nested errors.

Jonathan Hall:

Does that make sense?

Shay Nehmad:

Yeah. It's not something I like wasn't able to do before without Right. Generics. Right? So this is just a nice way to do something that probably every code base of significant size already has set up.

Jonathan Hall:

Very possibly. I think the main thing about this is it makes it easier. The errors. As is a little confusing, like should the I'm past The second argument should be a pointer or not. That could be confusing depending on how your errors type is defined and so on.

Jonathan Hall:

This will make that, I think, a little bit easier. So yeah, it doesn't add new capability. It's just a new way to do something else that we already could do. And it's arguably more ergonomic, at least in some cases. So yeah, it's been accepted.

Jonathan Hall:

I imagine it will be in 01/1926.

Shay Nehmad:

Yeah. Someone wrote like, give me a day or two, I'll send you a poll request, which was like my famous last words of like so many Slack messages I've sent. So I really hope you disprove the my norms at least, Ju Juubobwiss. This person's, like, GitHub name. Or Juub Zero BS.

Shay Nehmad:

Maybe that's a better way to read it. Oh,

Jonathan Hall:

there we go.

Shay Nehmad:

On our Slack channel, this sort of paper plus issue plus design document was shared for a new profile for goroutine leaks, which I found like super interesting. Generally, it's rare when people share stuff in our show and it's just one to one makes it to the next episode. But yeah, Akshay Shah sent it. Thanks. I I tried to read the paper.

Shay Nehmad:

I definitely read the entire proposal. What's going on is it's a bit hard to explain, but I'll try to do it in show form. So you you can have multiple Go routines running. Right? Normally, think of your program as you have the main one and then that spawns a bunch of other ones.

Shay Nehmad:

And they do stuff. Right? They do work and then eventually it all it all come back and the final one finishes. That is at least from normal flow. Although sometimes it's like you run an HTTP server, every request spawns a new go routine, things like that.

Shay Nehmad:

There is like race detection and some other tools to help you find, you know, potential deadlocks and potential concurrency issues. One concurrency issue that isn't like super easy to detect is goroutine leak. Is that did you ever meet, like, such a case in production or maybe

Jonathan Hall:

Oh, I

Shay Nehmad:

have a code review comment that was like, oh, you should avoid it?

Jonathan Hall:

Yes. Definitely. In fact, I have an issue, an ongoing issue with one of my projects I think is a go routine leak, and I haven't been able to pin it down. So maybe this will help me.

Shay Nehmad:

So what is a leaked go routine? Like, let's try to explain it, Avian. Yeah. Good question.

Jonathan Hall:

It's Essentially, it's a go routine that you're no longer using, but keeps running, doing something. Maybe in a loop or maybe it's blocking on some IO that's never going to happen or waiting for a channel to be closed that's never getting closed or something like that.

Shay Nehmad:

Yeah. Think that's the best, example. Like, let's say you have a a goroutine that's like, listen, it's selecting on a channel, right? That's never ever gonna be like, no content's gonna go through that channel.

Jonathan Hall:

Right. Like you're you're done with the channel. You just maybe forgot to close it or something. Right? So it's just sitting there.

Jonathan Hall:

Yeah.

Shay Nehmad:

Exactly. Exactly. So this, proposal suggests using memory reachability to detect goroutines that are blocked and can't be accessed by any other running goroutine. So you you have the main goroutine running, but it's already doing something else and you like spawn this goroutine and it's it's like stuck. This is this has a a really good combo of there's a paper behind it, there's a design document behind it, and there's real need.

Shay Nehmad:

So this is not like, oh, I want to redo errors again, which is like, you know, there's no real production need behind it. It's just like a opinion improvement. It's like, look, here's a paper from someone inside Uber. We have found, like, in production service, three distinct goroutine leaks, which cause 252 goroutine leaks over twenty four hours. Pretty cool.

Shay Nehmad:

And what they suggest is you can add a pprof thing. So you can add a runtime profiler thing that, causes the garbage collector to mark available memory from each goroutine and then you know if there's one that's waiting on memory that no one else can transitively reach to.

Jonathan Hall:

Mhmm.

Shay Nehmad:

And this has already been going like there's a pull request, a change list, whatever. And I hope it's not like dying. I hope it's actually gonna happen soon because even yesterday there was a was a commit. Right now they're like, oh, test helpers for detecting goroutine leaks blah blah blah. Very cool.

Jonathan Hall:

Awesome. I

Shay Nehmad:

love it. And yeah, if you wanna turn it on, what they suggest is a go experiment flag. Because this does this does, like, mess with the runtime and the garbage collector. You you probably wouldn't want this on by default. You know what mean?

Jonathan Hall:

So so so how would you use it? Would would you use it like you use the the minus race flag during tests or you use it during production or

Shay Nehmad:

how would it be used typically? Generally, you know, this has no false positives and the implementation is pretty clean and minimal. So I would run it in production, like

Jonathan Hall:

Okay.

Shay Nehmad:

Using a pprof. Then you know how you can import the HTTP pprof thing and it opens an endpoint with all the things. But with like, you know, an environment flag that's like Sure.

Jonathan Hall:

So you can only turn it on as you need it.

Shay Nehmad:

Yeah. You turn it on. Turn it on,

Jonathan Hall:

get all your leaks fixed and then turn it off for six months and then try again, see if something else popped up or something.

Shay Nehmad:

So so I'm like, I'm thinking of this, the same vein I'm thinking of, profile guided optimization, where I have 10% of my servers running it all the time and randomly selecting like different load, servers, just every day replace the the random 10% of the Kubernetes pods that have this flag. You know what

Jonathan Hall:

I mean? Sure.

Shay Nehmad:

And then most of your servers don't have this on or profile guided optimization or whatever. Yeah. And they just like operate to their maximum capacity, not worrying about all this diagnostic information. But like 10% of your users suffer maybe slightly worse performance or slightly weird behavior as your program gets better and better and better. Probably worth it.

Shay Nehmad:

That's how I would deploy it. But you know, this is assuming so many things. Assuming you run Go in multiple instances, blah blah blah. You could just do it in your end to end test. I think that's the easier way to do it.

Shay Nehmad:

I just, I have a feeling, my Spidey sense is like this is the sort of stuff that only happens in production.

Jonathan Hall:

A lot yeah. A lot of goroutine leaks wouldn't be probably would I don't I don't know how precise this is, but I imagine they wouldn't be detectable on a test where the process exits immediately after your test, and

Shay Nehmad:

you you don't

Jonathan Hall:

know that that goroutine is still there.

Shay Nehmad:

So I'm very excited about this proposal. Very cool paper. Go check it out if you're into that stuff. I think it's, at the final stages of the pull request. So if you wanna go even, give a review and whatever.

Jonathan Hall:

I wanna talk about one more proposal, and this one requires some archaeology. I had get out my shovel to dig this one up.

Shay Nehmad:

Oh, it's four digits.

Jonathan Hall:

It's only four digits.

Shay Nehmad:

I was like, you pasted the URL wrong, but no.

Jonathan Hall:

This was opened on February 1235, so it's over a decade old, but it's been moved to the active column, and so they're considering it. It has a bunch of upvotes, 166. They'll make that 167. The proposal is to directly reference embedded fields in struct literals. To make that make sense, how often do you use embedded structs, Shai?

Jonathan Hall:

I know you don't use Go right now, but when do

Shay Nehmad:

you I know, no. I use I use it for a side project. I mean, it's it's pretty often. Sort of the best way to do composition. It's actually one of the hidden gems about this language, to be honest.

Jonathan Hall:

Yeah. But are there any annoyances that come up when using embedded structs?

Shay Nehmad:

To me, I never remember exactly how to use them after. Like, oh, is it what's the type exactly? Do I need to put, you know, a inside b? Do I need to put like b parenthesis because it's you know what I mean? That's the main that's the main thing.

Shay Nehmad:

Just trying to memorize. And I guess knowing when to use it, because if you misuse it, it kind of sucks.

Jonathan Hall:

Yeah. You're when you have an embedded struct and you want to reference the fields in the embedded struct, if the struct has already been declared, it's easy, right? You just treat them as though the regulars, the embedded fields are just regular fields, right? But when you're trying to instantiate that struct, it could be annoying because you have to like reference, you have to like nest your struct literals when you're building that, or you just say var foo is of type foo struct, and then you say foo dot a equals whatever, foo dot b equals whatever, and then it doesn't matter if they're embedded or not. But if you want to do a struct literal, I find it incredibly annoying that I have to nest those things, especially if I have nested, nested, nested embedded structs, then there's multiple levels of this.

Jonathan Hall:

So this proposal number nine thousand eight fifty nine, it's so short I can even say the number. The proposal is to no longer require literally nesting those struct fields when using writing struct literals. So if you have a type E struct with a field A and a type T struct with field E, you have to do t open paren e colon e open paren a colon one, close paren, paren. I know that's hard to visualize on an audio format, but I hope you get the idea. With a new proposal, it would be t open paren, A colon one.

Jonathan Hall:

So you could reference that embedded field inside of E directly in the struct literal. I love this proposal because it would simplify virtually every project I've worked on. So I particularly like this comment from Alan Donovan that says, This proposal seems well defined, easy to implement, useful, clear and popular, and it makes the language more consistent. So it's hard to imagine the downside. I would kind of expect something like this, that someone's going to come up with it, Oh, but that would break this one corner case or whatever.

Jonathan Hall:

Oh, it wouldn't be backward compatible on this particular case. And there doesn't seem to be anything like that. So I don't know why it's been sitting for ten years without much attention, but finally it's got some attention. It's in the active column. If you like the idea, go and upvote it and maybe we'll get that added to a new version of Go coming soon.

Jonathan Hall:

One cool thing, someone wrote

Shay Nehmad:

Oh, it's actually Alan again. All over this. The number of occurrences of this pattern, like how many times this proposal would be useful, like reference to embedded. That happens a lot. Seems relevant.

Shay Nehmad:

Yep. Ten years in the making. Well, I think that's the

Jonathan Hall:

end of our main segment. Let's do a quick break and we have a few lightning round items before we close out the program.

Shay Nehmad:

Yep.

Jonathan Hall:

Kicking it off this week, big shout out to Thomas Bruno for joining us as a new Patreon.

Shay Nehmad:

Thank you for joining us as Cup

Jonathan Hall:

of Gopher Mini. Woo hoo. As you know, if you're a regular listener, this is just a hobby of ours. We don't get we don't make any money off of this. We pay money to do it for hosting and for editing and so on.

Jonathan Hall:

It's going to help support that cost and make our hobby a little bit less expensive. You can join us as a Patreon. Go to cupago.dev. You can find links to Patreon. You can also find links to our Swag Store, links to past episodes, bios of us and our co hosts, our temporary co hosts as they come and go.

Jonathan Hall:

And, yeah, check that out. Be sure to leave a rating and review on iTunes, Apple Music, whatever, Spotify, wherever you listen to this, leave a rating and review that helps get the popularity up, get get the word out, share with a friend or colleague that you like the show. We don't advertise, so word-of-mouth is the way to go. I we also have a couple of items to talk about with regard to swag. Shy's Swag.

Jonathan Hall:

Swag. Shy's looking into whether or not we should get hats with Brewster. We could get some various baseball caps or bucket hats. If that's the kind of thing you'd like to wear, let us know. You can reach us on the Slack channel over on Go For Slack at Cup A Go, or you can find our email address on the website I mentioned, cup of dev.

Shay Nehmad:

I mentioned it just because my dad is in California right now, my parents came to visit and he didn't bring a hat. So I was like, maybe I could really quickly get a hat going and then people would like it, and then, you know, I'll order a sample first. But then I dove into the rabbit hole of which one to take. If they only had one option, it would already be on the store, but they have like 200 different hat options and then the design and oh, people like embroidery, so I need to redo the logo in the six basic colors and simplify the the pixels and then Nano Banana doesn't support giving specific colors yet, so I was like, ugh. But if you if you would buy a hat, even if it's just like two people, I would I would make that happen.

Shay Nehmad:

I want a cup of go hat.

Jonathan Hall:

One other comment regarding swag. I am preparing to have a bow and or neck tie made for myself. I'm gonna use the Hawaiian T shirt pattern we talked about on the show a couple episodes ago. If you would like one also, a bow tie or a neck tie, connect with me. Maybe we can save some money by doing a bulk order.

Jonathan Hall:

These aren't Brewster themed, at least not at the moment. These are the regular Gopher, but if you'd like one, just read it out to me. This isn't official or anything. I'm not going to make money off of it. Thought I'd make a bulk order if enough people want it, save a little bit of money, and then I could ship it out to whoever wants it.

Jonathan Hall:

So if that's interesting to you, reach out.

Shay Nehmad:

Cool. Cool. One last thing on the updates here. Yes. Who's sponsoring this week's episode?

Jonathan Hall:

Nobody. Because I got a new client.

Shay Nehmad:

That's awesome.

Jonathan Hall:

Yeah. So I'll be starting October 6 with a new client. Of course, I'm generally available if you do need some go help later on, reach out to me. But thanks everybody for supporting me and my potential trip to what did talk about? Flying to India for Go For Con?

Shay Nehmad:

Flying yacht or something? Yeah.

Jonathan Hall:

Oh, yacht. Yeah. I don't remember. Yeah. The second one

Shay Nehmad:

to to help carry the the your first one from all your Go work.

Jonathan Hall:

That's that's what I need. Yes. Yes.

Shay Nehmad:

People people generally are supportive of, our job related things. Even though this is a Go podcast supposed to be Go news strictly, people like they reached out to me about, like, my wife's new certificate and they're like,

Jonathan Hall:

oh, cool. Nice.

Shay Nehmad:

I'll I'll go give her a like on LinkedIn or whatever. That was awesome. So thanks thanks to our previous sponsor, Jonathan. Now to to a message from Jonathan. Next week is Yom Kippur, another Jewish high holiday, and I am not here.

Shay Nehmad:

I am taking some personal time off taking my kid to Disneyland. So, Jonathan, how are you how are you holding up? What are you gonna do? I'm good, but

Jonathan Hall:

I could use some assistance. So if somebody who hasn't been on the show before would like to help cohost reach out. And if I don't get any takers, I'll reach out to somebody who has cohosted before.

Shay Nehmad:

Yeah. We have our shortlist.

Jonathan Hall:

We have a shortlist, but we like to spread the love and let anybody who wants to participate do it.

Shay Nehmad:

Yeah. We want more friends of the show. But yeah, if you wanna co host, just like Gabriel, helped us out just, last week and that was awesome. Reach out to Jonathan in our Slack channel or newscapago.dev and, you know, help me out. I'm taking some vacation time.

Shay Nehmad:

Awesome. Let's move to the lightning round.

Jonathan Hall:

Let's do the lightning round.

Shay Nehmad:

Lightning round. New Golang Sea Island version is out. Always fun news. This one includes, the naked returns thing. It, like, bumps, Go Fumped, with our support.

Shay Nehmad:

Our recent, you know, campaign for clothing all naked returns, and it actually introduces three new linters, iota mixing, go doc lint, and Unquery vet. So this is Lightning Round, so I'm not gonna go into all the details, but I'll just say that the IOTA mixing linter seems super smart. It's just catching cases where you accidentally put iota on one instead of zero, which is almost never what you want. You know, go doc lint, I have my opinions about it, I'm not gonna share them. Mhmm.

Shay Nehmad:

But mQueryVet seems like a really good addition. It's the sort of thing that I would really love to to add to any code base, which is, you know, don't do select star in string literals or SQL builders. Mhmm. Which I'm like, I'm I'm wondering what do you think about this? As a as a general rule, prevent select star in SQL queries encouraging explicit column selection instead.

Jonathan Hall:

Yeah. It's generally a good idea to to avoid that, I think. Could it could lead it could lead to some I I have had it lead to some problems when when changes The

Shay Nehmad:

API is not stable. Right? Like, you select star, but someone changes the columns beneath your feet, like, adds a new column, and suddenly you're unmarshalling breaks or whatever. Yep. Yep.

Shay Nehmad:

So very, very cool. It's the sort of linter that I would add and then I would tell my team, feel free to put like a no lint if this is like a test or, you know, a script or whatever. Mhmm. Mhmm. Like, you need to use it kind of judicially.

Shay Nehmad:

But a good addition to Galaxy Island. Generally worth upgrading.

Jonathan Hall:

Next up, we talk occasionally about game development in Go. We really need to get somebody on here we can interview who does it.

Shay Nehmad:

If they exist.

Jonathan Hall:

If they exist. Yeah. Maybe Tim Little, who wrote this post, could come on. Building Conway's Game of Life in Go with Raylib Go. This isn't just a blog post.

Jonathan Hall:

It's a tutorial, a step by step tutorial on building Game of Life in Go using Raylib for graphics. So if you're interested in the topic of graphics programming or game programming in Go, this isn't detailed. Of course, the game, the life is a very simple game, if you could even call it a game. But this detailed tutorial walks you through it and has some animated examples at the end. So go check that out.

Shay Nehmad:

I really like, how it looks. It just looks so fun just looking at the Game of Life animation, seeing like the gliders and the cells and whatever. Maybe I'll follow this tutorial. Maybe I'll like set aside three hours of my life and just go through this. He says, as his to do pile stares at him attempting to collapse on top of his head.

Shay Nehmad:

Alright. One last thing for the lightning round for me is that vacuum, one of my favorite, tools, from Dave Shapley, is on the show, Quobix.

Quobix:

Hello, everyone. My name is Quobix, and I'm the founder of a company called Princess Beef Heavy Industries or PB three three F for short. It's actually it's it's shorter when you say it, you know, versus typing out.

Shay Nehmad:

So it got a facelift. One of the nice things about really, really, really, really, really good developers recently is I feel like with AI tooling, sometimes they go into an AI tooling field improvement that would never get prioritized, you know, if they had to do stuff manually. So this is the this is what happened. Vacuum got a facelift. They have a really, really nice, TUI now that, you know, Dave explicitly says, I did it because I could do it with Cloud Code.

Shay Nehmad:

Mhmm. And oh my god, it looks super good. It's like a dashboard UI by powered by Bubble Tea, the the charm thing. Yeah. It's mouse enabled.

Shay Nehmad:

It's fast. It's like, I use it. Like, it's actually useful. I know it looks cool and all the stuff that, Kobix does is like fancy AF, you know, like purple, neon pink, princess beef, heavy industries. Like, it's very cool.

Shay Nehmad:

But this one looks, this one is actually useful as well. Like, lets you read, zoom in, do all that stuff.

Jonathan Hall:

So what does VACUUM do?

Shay Nehmad:

VACUUM is a open a OpenAPI Linter. It's part of the suite of tools that, Corvix has about, the OpenAPI Doctor and WiredTap and all these suites of, open source tools based on the OpenAPI Lib Hero, Ningo, which are quickly becoming, like, my number one tool for everything APIs. They're, like, so good. I hope this, facelift will get more people using it. I don't know.

Jonathan Hall:

So TLDR, the old version of vacuum sucked and the new version sucks more. Is that basically right? Sucks better?

Shay Nehmad:

That that thing that thing from Wayne's World? It certainly does suck. You remember that movie? Exactly how does the

Quobix:

suck cup

Shay Nehmad:

work? Well, as you can see, it sucks as it does. It certainly does suck. Yeah. So Vaccum got a facelift.

Shay Nehmad:

If you've been holding off on using Vaccum in your for your company's, open API thing or your project's, API documentation, maybe take this as an opportunity. It's really cool. Very cool.

Jonathan Hall:

I think that's a show.

Shay Nehmad:

That is a show. Thank you all for listening. Well, I will see you all next week.

Jonathan Hall:

Program exited. Program exited. Program exited. Goodbye.

Creators and Guests

Jonathan Hall
Host
Jonathan Hall
Freelance Gopher, Continuous Delivery consultant, and host of the Boldly Go YouTube channel.
Shay Nehmad
Host
Shay Nehmad
Engineering Enablement Architect @ Orca
💧 A leaky goroutine certainly does suck!
Broadcast by