All Episodes

September 27, 2025 β€’ 30 mins
β˜… Support this podcast on Patreon β˜…
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Jonathan Hall (00:00):
This show is supported by You, Our Listener.

(00:02):
Stick around till after the newsto hear a little bit more about
that. This is Cup of Go for09/26/2025. Stay up to date with
the important happenings in theGo community in about fifteen

(00:22):
minutes per week, sometimestwenty, sometimes thirty. I'm
Jonathan Hall.

Shay Nehmad (00:26):
And you're not French. I'm Shay Nehmad.

Jonathan Hall (00:29):
I'm not French. Should I be French? I don't get

Shay Nehmad (00:31):
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 hispodcasting ability, maybe you
can run this entire episodeusing a French accent.

Jonathan Hall (00:45):
I'm not even gonna try.

Shay Nehmad (00:47):
Yeah.

Jonathan Hall (00:49):
I make enough of fool fooling myself with my own
accent. I don't need to do it insomeone else's.

Shay Nehmad (00:53):
Talking about naked returns and some such? Right.
Glad to have you back. What doyou have for me?

Jonathan Hall (00:59):
It is good to be back. Last week, I was stressing
out with my two kids inGuatemala. It wasn't a vacation.
I heard you I heard you try toclaim I was on the beach sipping
Mai Tais and stuff like that. Iwas chasing toddlers around a
non childproof house withchickens and cats and stuff in
Guatemala.
Chasing kids drinking Mai Tais.No. There we go. There we go.

(01:22):
Now the whole reason for thetrip was to do some dental work
for my daughter, my two year olddaughter.
Much cheaper there than in TheUS. God bless the American
healthcare system.

Shay Nehmad (01:30):
Don't even get me started.

Jonathan Hall (01:33):
Let's talk about Go. First up, this guy named
Shay. Is that how I pronounceit? No, it's not. Shay is doing
a meetup in San Francisco.
Again, Halloween themed gophermeetup. If you need something
scary to to keep you going, youcan edit the runtime. That
sounds scary enough to me tomake it for Halloween. And a

(01:55):
live episode recording, thatalso sounds kind of scary. So I
think this is perfect.
It'll be on October 23. Do youhave a location? A Forge.

Shay Nehmad (02:03):
Yeah. It's gonna be happening at Forge. I don't know
him either. Someone, I thinkthey might be a listener or just
a Slack member or whateverreached out and were like, hey,
we have a pretty cool office. Doyou wanna come by?
Which was super cool. That'sawesome. And there's one, CFP
still open. We have a thirtyminute slot at the end which is
open to anyone who wants to comedo a talk, a lightning talk, a

(02:26):
real talk. We could we coulddefinitely make it

Jonathan Hall (02:28):
happen. Super. Also in the news, let's go.

Shay Nehmad (02:32):
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 goand listen to the episode back
if you're on the fence, ifthere's like any chance you can
make it. I think actuallylistening to that episode will
definitely tip you over theedge, with Moriah and Derek.

Jonathan Hall (02:57):
Yeah. I'm one of the cofounders of the Go West
Conference, Moriah Peterson,long time Go user, content
creator, and obviouslyconference organizer. And yeah.
Yeah.

Derek (03:08):
I'm Derek. I'm one of the, more silent partners, in
organizing Go West, kind of theintroverted side, but

Jonathan Hall (03:17):
You provide the money. Right? At

Derek (03:21):
Yeah. Least I try to help with that anyway.

Shay Nehmad (03:24):
Are you planning to go to my meetup or Go West, or
are you too busy?

Jonathan Hall (03:28):
I'll be at Go West.

Shay Nehmad (03:30):
Oh, that's a shame. That means you won't be

Jonathan Hall (03:32):
in Go For Con Africa. That's that's what it
means. I will not be atGopherCon Africa. The good news
is GopherCon Africa is online,though, so maybe I can catch
some of the the stuff happeningthere the next day.

Shay Nehmad (03:43):
I mean, if you're willing to forgo sleep, it's
pretty much not the same timezone.

Jonathan Hall (03:48):
Who sleep? So yeah. Go for Con Africa is in
Lagos, Nigeria, October 2425. Soyou 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 theclosing talk there if you
really, really rush.

Shay Nehmad (04:07):
Yeah, it's GMT plus one. I was like, wait, is it GMT
plus three? But no, it's theother side of Africa. It's West
Africa, that's not it. Sothere's a call for sponsors,
there's call for speakers, andthey say 400 plus people are
supposed to, come, and you canget your ticket.
It seems pricey, 30,000.

Jonathan Hall (04:30):
What?

Shay Nehmad (04:31):
But I don't know what's the currency. So it might
be actually incredibly cheap.

Jonathan Hall (04:38):
Let's do the conversion here. NGN. So

Shay Nehmad (04:40):
I don't even have dollars, like, really pegging
for

Jonathan Hall (04:44):
$20.

Shay Nehmad (04:46):
$20 for a ticket is okay for a conference ticket.

Jonathan Hall (04:49):
Yeah. I might even be able to afford the
airline ticket for that if Iwasn't speaking at Go West.
Cool. Cool.

Shay Nehmad (04:54):
So, yeah, conferences, meetups, Gophers
coming together. I mean, all thecynicism and jokes and whatever
aside, there's, I think there isvalue in going to these events
and meeting the people. Ifyou're I really a beginner.
Yeah. Yeah.
Yeah. Because seeing the humansbehind the GitHub issues.

Jonathan Hall (05:12):
Yes. Yes. And just getting a sense that you're
not in it alone, especially ifyou're new. It's nice to know
that other people struggle thesame way you do. And some of
them overcome those strugglesand go on to do amazing things
such as teaching other peoplehow to overcome struggles.

Shay Nehmad (05:28):
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 thebooths. I like talking to people
in the in the sponsor booths.
They're the ones really in thetrenches. You know what I mean?
Mhmm. Like solving productionissues while trying to sell
their whatever authenticationsoftware or software

(05:49):
consultancy. Yes.
One last meetup to mention, wetalked on the show about Let's
GoConf, which is like Go For ConRussia, basically. They had a
follow-up, sort of message inthe telegram that I joined,
which took me forever to read.Mhmm. A bit inside baseball, but
Jonathan actually had time to gograb coffee and come back by the

(06:09):
time I tried to read this. WhatI understood is that generally,
you know, they were like,friends, thank you so much, it
was awesome.
Thanked, Moy Office, which islike my office, which was the
sponsor of the event. So,Spasiba, my office. They had a
one to a 100 to one game. Do youhave that in, America? I know

(06:32):
it's a very European game one.
No. I don't know 100 people sitin the audience and one person
on the stage is trying to answertrivia questions. Everybody else
is answering it as well. And Oh,you know, it's it's basically
you doing trivia versus a 100randoms.

Jonathan Hall (06:49):
I see.

Shay Nehmad (06:50):
So they did that in the conference, which sounds
like super fun. You ask peopleabout Go stuff. And they sent a
link to all the pictures, whichI don't know. I I never opened a
link to like a photo drive whereI wasn't there and I was just
hunting for myself. Mhmm.
So it was actually aninteresting experience. Instead
of just scrolling through allthe pictures desperately looking

(07:10):
for when the photographer mayhave grabbed me, you're just
looking at the people trying tofigure out what sort of time
they had. And it looks like asuper serious conference. Like,
looks really fun. And they were,like, already ready for 2026,
looking for feedback, blah blahblah.
So they're like, seems like areally good event. Yeah. Cool.
Cool stuff. So that's theconferences and meetups,

(07:31):
section.

Jonathan Hall (07:32):
Nice. Let's move on to some proposals.

Shay Nehmad (07:35):
I thought there were no proposals this week. I
thought it was quiet week. Whatwhat's going on?

Jonathan Hall (07:39):
It was not. We have several to talk about,
actually. I think we have threeI wanted to to highlight. So one
proposal I'm pretty sure wetalked about before, although
I'm not finding it right now toput a link, that has been
accepted is the proposal to adda new method or a new function
to the errors package called astype. You probably are familiar
with errors dot as, which takesan error as an argument and then

(08:02):
another value that it tries tocoerce the error into that
value.
And it's kind of confusing touse sometimes. The proposal is
to add a new generics version ofthat, 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 typeyou want or in a boolean

(08:23):
indicating whether or not theconversion was successful. So
it's kind of like a typeconversion for errors that
handles nested errors.
Does that make sense?

Shay Nehmad (08:31):
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 thatprobably every code base of
significant size already has setup.

Jonathan Hall (08:44):
Very possibly. I think the main thing about this
is it makes it easier. Theerrors. As is a little
confusing, like should the I'mpast The second argument should
be a pointer or not. That couldbe confusing depending on how
your errors type is defined andso on.
This will make that, I think, alittle bit easier. So yeah, it
doesn't add new capability. It'sjust a new way to do something
else that we already could do.And it's arguably more

(09:07):
ergonomic, at least in somecases. So yeah, it's been
accepted.
I imagine it will be in 01/1926.

Shay Nehmad (09:12):
Yeah. Someone wrote like, give me a day or two, I'll
send you a poll request, whichwas like my famous last words of
like so many Slack messages I'vesent. So I really hope you
disprove the my norms at least,Ju Juubobwiss. This person's,
like, GitHub name. Or Juub ZeroBS.

(09:34):
Maybe that's a better way toread it. Oh,

Jonathan Hall (09:36):
there we go.

Shay Nehmad (09:37):
On our Slack channel, this sort of paper plus
issue plus design document wasshared for a new profile for
goroutine leaks, which I foundlike super interesting.
Generally, it's rare when peopleshare stuff in our show and it's

(09:57):
just one to one makes it to thenext episode. But yeah, Akshay
Shah sent it. Thanks. I I triedto read the paper.
I definitely read the entireproposal. What's going on is
it's a bit hard to explain, butI'll try to do it in show form.
So you you can have multiple Goroutines running. Right?
Normally, think of your programas you have the main one and

(10:21):
then that spawns a bunch ofother ones.
And they do stuff. Right? Theydo work and then eventually it
all it all come back and thefinal one finishes. That is at
least from normal flow. Althoughsometimes it's like you run an
HTTP server, every requestspawns a new go routine, things
like that.

(10:42):
There is like race detection andsome other tools to help you
find, you know, potentialdeadlocks and potential
concurrency issues. Oneconcurrency issue that isn't
like super easy to detect isgoroutine leak. Is that did you
ever meet, like, such a case inproduction or maybe

Jonathan Hall (11:01):
Oh, I

Shay Nehmad (11:01):
have a code review comment that was like, oh, you
should avoid it?

Jonathan Hall (11:06):
Yes. Definitely. In fact, I have an issue, an
ongoing issue with one of myprojects I think is a go routine
leak, and I haven't been able topin it down. So maybe this will
help me.

Shay Nehmad (11:16):
So what is a leaked go routine? Like, let's try to
explain it, Avian. Yeah. Goodquestion.

Jonathan Hall (11:22):
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 someIO that's never going to happen
or waiting for a channel to beclosed that's never getting
closed or something like that.

Shay Nehmad (11:35):
Yeah. Think that's the best, example. Like, let's
say you have a a goroutinethat's like, listen, it's
selecting on a channel, right?That's never ever gonna be like,
no content's gonna go throughthat channel.

Jonathan Hall (11:46):
Right. Like you're you're done with the
channel. You just maybe forgotto close it or something. Right?
So it's just sitting there.
Yeah.

Shay Nehmad (11:50):
Exactly. Exactly. So this, proposal suggests using
memory reachability to detectgoroutines that are blocked and
can't be accessed by any otherrunning goroutine. So you you
have the main goroutine running,but it's already doing something
else and you like spawn thisgoroutine and it's it's like

(12:12):
stuck. This is this has a areally good combo of there's a
paper behind it, there's adesign document behind it, and
there's real need.
So this is not like, oh, I wantto redo errors again, which is
like, you know, there's no realproduction need behind it. It's
just like a opinion improvement.It's like, look, here's a paper

(12:33):
from someone inside Uber. Wehave found, like, in production
service, three distinctgoroutine leaks, which cause 252
goroutine leaks over twenty fourhours. Pretty cool.
And what they suggest is you canadd a pprof thing. So you can
add a runtime profiler thingthat, causes the garbage

(12:54):
collector to mark availablememory from each goroutine and
then you know if there's onethat's waiting on memory that no
one else can transitively reachto.

Jonathan Hall (13:04):
Mhmm.

Shay Nehmad (13:05):
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 actuallygonna happen soon because even
yesterday there was a was acommit. Right now they're like,
oh, test helpers for detectinggoroutine leaks blah blah blah.
Very cool.

Jonathan Hall (13:27):
Awesome. I

Shay Nehmad (13:28):
love it. And yeah, if you wanna turn it on, what
they suggest is a go experimentflag. Because this does this
does, like, mess with theruntime and the garbage
collector. You you probablywouldn't want this on by
default. You know what mean?

Jonathan Hall (13:41):
So so so how would you use it? Would would
you use it like you use the theminus race flag during tests or
you use it during production or

Shay Nehmad (13:47):
how would it be used typically? Generally, you
know, this has no falsepositives and the implementation
is pretty clean and minimal. SoI would run it in production,
like

Jonathan Hall (13:58):
Okay.

Shay Nehmad (13:59):
Using a pprof. Then you know how you can import the
HTTP pprof thing and it opens anendpoint with all the things.
But with like, you know, anenvironment flag that's like
Sure.

Jonathan Hall (14:11):
So you can only turn it on as you need it.

Shay Nehmad (14:12):
Yeah. You turn it on. Turn it on,

Jonathan Hall (14:15):
get all your leaks fixed and then turn it off
for six months and then tryagain, see if something else
popped up or something.

Shay Nehmad (14:20):
So so I'm like, I'm thinking of this, the same vein
I'm thinking of, profile guidedoptimization, where I have 10%
of my servers running it all thetime and randomly selecting like
different load, servers, justevery day replace the the random
10% of the Kubernetes pods thathave this flag. You know what

Jonathan Hall (14:41):
I mean? Sure.

Shay Nehmad (14:42):
And then most of your servers don't have this on
or profile guided optimizationor whatever. Yeah. And they just
like operate to their maximumcapacity, not worrying about all
this diagnostic information. Butlike 10% of your users suffer
maybe slightly worse performanceor slightly weird behavior as
your program gets better andbetter and better. Probably

(15:03):
worth it.
That's how I would deploy it.But you know, this is assuming
so many things. Assuming you runGo in multiple instances, blah
blah blah. You could just do itin your end to end test. I think
that's the easier way to do it.
I just, I have a feeling, mySpidey sense is like this is the
sort of stuff that only happensin production.

Jonathan Hall (15:26):
A lot yeah. A lot of goroutine leaks wouldn't be
probably would I don't I don'tknow how precise this is, but I
imagine they wouldn't bedetectable on a test where the
process exits immediately afteryour test, and

Shay Nehmad (15:36):
you you don't

Jonathan Hall (15:37):
know that that goroutine is still there.

Shay Nehmad (15:39):
So I'm very excited about this proposal. Very cool
paper. Go check it out if you'reinto that stuff. I think it's,
at the final stages of the pullrequest. So if you wanna go
even, give a review andwhatever.

Jonathan Hall (15:51):
I wanna talk about one more proposal, and
this one requires somearchaeology. I had get out my
shovel to dig this one up.

Shay Nehmad (15:58):
Oh, it's four digits.

Jonathan Hall (16:00):
It's only four digits.

Shay Nehmad (16:02):
I was like, you pasted the URL wrong, but no.

Jonathan Hall (16:06):
This was opened on February 1235, so it's over a
decade old, but it's been movedto the active column, and so
they're considering it. It has abunch of upvotes, 166. They'll
make that 167. The proposal isto directly reference embedded
fields in struct literals. Tomake that make sense, how often

(16:26):
do you use embedded structs,Shai?
I know you don't use Go rightnow, but when do

Shay Nehmad (16:30):
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 oneof the hidden gems about this
language, to be honest.

Jonathan Hall (16:40):
Yeah. But are there any annoyances that come
up when using embedded structs?

Shay Nehmad (16:44):
To me, I never remember exactly how to use them
after. Like, oh, is it what'sthe type exactly? Do I need to
put, you know, a inside b? Do Ineed to put like b parenthesis
because it's you know what Imean? That's the main that's the
main thing.
Just trying to memorize. And Iguess knowing when to use it,
because if you misuse it, itkind of sucks.

Jonathan Hall (17:07):
Yeah. You're when you have an embedded struct and
you want to reference the fieldsin the embedded struct, if the
struct has already beendeclared, it's easy, right? You
just treat them as though theregulars, the embedded fields
are just regular fields, right?But when you're trying to
instantiate that struct, itcould be annoying because you
have to like reference, you haveto like nest your struct

(17:29):
literals when you're buildingthat, or you just say var foo is
of type foo struct, and then yousay foo dot a equals whatever,
foo dot b equals whatever, andthen it doesn't matter if
they're embedded or not. But ifyou want to do a struct literal,
I find it incredibly annoyingthat I have to nest those
things, especially if I havenested, nested, nested embedded
structs, then there's multiplelevels of this.

(17:50):
So this proposal number ninethousand eight fifty nine, it's
so short I can even say thenumber. The proposal is to no
longer require literally nestingthose struct fields when using
writing struct literals. So ifyou have a type E struct with a
field A and a type T struct withfield E, you have to do t open

(18:13):
paren e colon e open paren acolon one, close paren, paren. I
know that's hard to visualize onan audio format, but I hope you
get the idea. With a newproposal, it would be t open
paren, A colon one.
So you could reference thatembedded field inside of E
directly in the struct literal.I love this proposal because it
would simplify virtually everyproject I've worked on. So I

(18:35):
particularly like this commentfrom Alan Donovan that says,
This proposal seems welldefined, easy to implement,
useful, clear and popular, andit makes the language more
consistent. So it's hard toimagine the downside. I would
kind of expect something likethis, that someone's going to
come up with it, Oh, but thatwould break this one corner case
or whatever.
Oh, it wouldn't be backwardcompatible on this particular
case. And there doesn't seem tobe anything like that. So I

(18:57):
don't know why it's been sittingfor ten years without much
attention, but finally it's gotsome attention. It's in the
active column. If you like theidea, go and upvote it and maybe
we'll get that added to a newversion of Go coming soon.
One cool thing, someone wrote

Shay Nehmad (19:11):
Oh, it's actually Alan again. All over this. The
number of occurrences of thispattern, like how many times
this proposal would be useful,like reference to embedded. That
happens a lot. Seems relevant.
Yep. Ten years in the making.Well, I think that's the

Jonathan Hall (19:28):
end of our main segment. Let's do a quick break
and we have a few lightninground items before we close out
the program.

Shay Nehmad (19:34):
Yep.

Jonathan Hall (19:42):
Kicking it off this week, big shout out to
Thomas Bruno for joining us as anew Patreon.

Shay Nehmad (19:47):
Thank you for joining us as Cup

Jonathan Hall (19:48):
of Gopher Mini. Woo hoo. As you know, if you're
a regular listener, this is justa hobby of ours. We don't get we
don't make any money off ofthis. We pay money to do it for
hosting and for editing and soon.
It's going to help support thatcost and make our hobby a little
bit less expensive. You can joinus as a Patreon. Go to
cupago.dev. You can find linksto Patreon. You can also find
links to our Swag Store, linksto past episodes, bios of us and

(20:12):
our co hosts, our temporary cohosts as they come and go.
And, yeah, check that out. Besure to leave a rating and
review on iTunes, Apple Music,whatever, Spotify, wherever you
listen to this, leave a ratingand review that helps get the
popularity up, get get the wordout, share with a friend or
colleague that you like theshow. We don't advertise, so

(20:33):
word-of-mouth is the way to go.I we also have a couple of items
to talk about with regard toswag. Shy's Swag.
Swag. Shy's looking into whetheror not we should get hats with
Brewster. We could get somevarious baseball caps or bucket
hats. If that's the kind ofthing you'd like to wear, let us
know. You can reach us on theSlack channel over on Go For

(20:55):
Slack at Cup A Go, or you canfind our email address on the
website I mentioned, cup of dev.

Shay Nehmad (21:00):
I mentioned it just because my dad is in California
right now, my parents came tovisit and he didn't bring a hat.
So I was like, maybe I couldreally quickly get a hat going
and then people would like it,and then, you know, I'll order a
sample first. But then I doveinto the rabbit hole of which
one to take. If they only hadone option, it would already be

(21:21):
on the store, but they have like200 different hat options and
then the design and oh, peoplelike embroidery, so I need to
redo the logo in the six basiccolors and simplify the the
pixels and then Nano Bananadoesn'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 twopeople, I would I would make

(21:43):
that happen.
I want a cup of go hat.

Jonathan Hall (21:46):
One other comment regarding swag. I am preparing
to have a bow and or neck tiemade for myself. I'm gonna use
the Hawaiian T shirt pattern wetalked about on the show a
couple episodes ago. If youwould like one also, a bow tie
or a neck tie, connect with me.Maybe we can save some money by
doing a bulk order.
These aren't Brewster themed, atleast not at the moment. These

(22:07):
are the regular Gopher, but ifyou'd like one, just read it out
to me. This isn't official oranything. I'm not going to make
money off of it. Thought I'dmake a bulk order if enough
people want it, save a littlebit of money, and then I could
ship it out to whoever wants it.
So if that's interesting to you,reach out.

Shay Nehmad (22:21):
Cool. Cool. One last thing on the updates here.
Yes. Who's sponsoring thisweek's episode?

Jonathan Hall (22:26):
Nobody. Because I got a new client.

Shay Nehmad (22:28):
That's awesome.

Jonathan Hall (22:29):
Yeah. So I'll be starting October 6 with a new
client. Of course, I'm generallyavailable if you do need some go
help later on, reach out to me.But thanks everybody for
supporting me and my potentialtrip to what did talk about?
Flying to India for Go For Con?

Shay Nehmad (22:46):
Flying yacht or something? Yeah.

Jonathan Hall (22:47):
Oh, yacht. Yeah. I don't remember. Yeah. The
second one

Shay Nehmad (22:51):
to to help carry the the your first one from all
your Go work.

Jonathan Hall (22:55):
That's that's what I need. Yes. Yes.

Shay Nehmad (22:57):
People people generally are supportive of, our
job related things. Even thoughthis is a Go podcast supposed to
be Go news strictly, people likethey reached out to me about,
like, my wife's new certificateand they're like,

Jonathan Hall (23:09):
oh, cool. Nice.

Shay Nehmad (23:11):
I'll I'll go give her a like on LinkedIn or
whatever. That was awesome. Sothanks thanks to our previous
sponsor, Jonathan. Now to to amessage from Jonathan. Next week
is Yom Kippur, another Jewishhigh holiday, and I am not here.

(23:31):
I am taking some personal timeoff taking my kid to Disneyland.
So, Jonathan, how are you howare you holding up? What are you
gonna do? I'm good, but

Jonathan Hall (23:40):
I could use some assistance. So if somebody who
hasn't been on the show beforewould like to help cohost reach
out. And if I don't get anytakers, I'll reach out to
somebody who has cohostedbefore.

Shay Nehmad (23:51):
Yeah. We have our shortlist.

Jonathan Hall (23:52):
We have a shortlist, but we like to spread
the love and let anybody whowants to participate do it.

Shay Nehmad (23:57):
Yeah. We want more friends of the show. But yeah,
if you wanna co host, just likeGabriel, helped us out just,
last week and that was awesome.Reach out to Jonathan in our
Slack channel or newscapago.devand, you know, help me out. I'm
taking some vacation time.
Awesome. Let's move to thelightning round.

Jonathan Hall (24:17):
Let's do the lightning round.

Shay Nehmad (24:22):
Lightning round. New Golang Sea Island version is
out. Always fun news. This oneincludes, the naked returns
thing. It, like, bumps, GoFumped, with our support.
Our recent, you know, campaignfor clothing all naked returns,

(24:43):
and it actually introduces threenew linters, iota mixing, go doc
lint, and Unquery vet. So thisis 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

(25:04):
you accidentally put iota on oneinstead of zero, which is almost
never what you want. You know,go doc lint, I have my opinions
about it, I'm not gonna sharethem. Mhmm.
But mQueryVet seems like areally good addition. It's the
sort of thing that I wouldreally love to to add to any
code base, which is, you know,don't do select star in string

(25:26):
literals or SQL builders. Mhmm.Which I'm like, I'm I'm
wondering what do you thinkabout this? As a as a general
rule, prevent select star in SQLqueries encouraging explicit
column selection instead.

Jonathan Hall (25:40):
Yeah. It's generally a good idea to to
avoid that, I think. Could itcould lead it could lead to some
I I have had it lead to someproblems when when changes The

Shay Nehmad (25:52):
API is not stable. Right? Like, you select star,
but someone changes the columnsbeneath your feet, like, adds a
new column, and suddenly you'reunmarshalling breaks or
whatever. Yep. Yep.
So very, very cool. It's thesort 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, youknow, a script or whatever.

(26:14):
Mhmm. Mhmm. Like, you need touse it kind of judicially.
But a good addition to GalaxyIsland. Generally worth
upgrading.

Jonathan Hall (26:21):
Next up, we talk occasionally about game
development in Go. We reallyneed to get somebody on here we
can interview who does it.

Shay Nehmad (26:27):
If they exist.

Jonathan Hall (26:28):
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'tjust a blog post.
It's a tutorial, a step by steptutorial on building Game of
Life in Go using Raylib forgraphics. So if you're
interested in the topic ofgraphics programming or game
programming in Go, this isn'tdetailed. Of course, the game,

(26:49):
the life is a very simple game,if you could even call it a
game. But this detailed tutorialwalks you through it and has
some animated examples at theend. So go check that out.

Shay Nehmad (26:59):
I really like, how it looks. It just looks so fun
just looking at the Game of Lifeanimation, seeing like the
gliders and the cells andwhatever. Maybe I'll follow this
tutorial. Maybe I'll like setaside 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 ofhis head.

(27:22):
Alright. One last thing for thelightning round for me is that
vacuum, one of my favorite,tools, from Dave Shapley, is on
the show, Quobix.

Quobix (27:35):
Hello, everyone. My name is Quobix, and I'm the founder
of a company called PrincessBeef Heavy Industries or PB
three three F for short. It'sactually it's it's shorter when
you say it, you know, versustyping out.

Shay Nehmad (27:48):
So it got a facelift. One of the nice things
about really, really, really,really, really good developers
recently is I feel like with AItooling, sometimes they go into
an AI tooling field improvementthat would never get
prioritized, you know, if theyhad to do stuff manually. So
this is the this is whathappened. Vacuum got a facelift.

(28:08):
They have a really, really nice,TUI now that, you know, Dave
explicitly says, I did itbecause I could do it with Cloud
Code.
Mhmm. And oh my god, it lookssuper good. It's like a
dashboard UI by powered byBubble Tea, the the charm thing.
Yeah. It's mouse enabled.

(28:28):
It's fast. It's like, I use it.Like, it's actually useful. I
know it looks cool and all thestuff that, Kobix does is like
fancy AF, you know, like purple,neon pink, princess beef, heavy
industries. Like, it's verycool.
But this one looks, this one isactually useful as well. Like,
lets you read, zoom in, do allthat stuff.

Jonathan Hall (28:48):
So what does VACUUM do?

Shay Nehmad (28:50):
VACUUM is a open a OpenAPI Linter. It's part of the
suite of tools that, Corvix hasabout, the OpenAPI Doctor and
WiredTap and all these suitesof, open source tools based on
the OpenAPI Lib Hero, Ningo,which are quickly becoming,
like, my number one tool foreverything APIs. They're, like,

(29:12):
so good. I hope this, faceliftwill get more people using it. I
don't know.

Jonathan Hall (29:16):
So TLDR, the old version of vacuum sucked and the
new version sucks more. Is thatbasically right? Sucks better?

Shay Nehmad (29:24):
That that thing that thing from Wayne's World?
It certainly does suck. Youremember that movie? Exactly how
does the

Quobix (29:33):
suck cup

Shay Nehmad (29:34):
work? Well, as you can see, it sucks as it does. It
certainly does suck. Yeah. SoVaccum got a facelift.
If you've been holding off onusing Vaccum in your for your
company's, open API thing oryour project's, API
documentation, maybe take thisas an opportunity. It's really

(29:55):
cool. Very cool.

Jonathan Hall (29:56):
I think that's a show.

Shay Nehmad (29:57):
That is a show. Thank you all for listening.
Well, I will see you all nextweek.

Jonathan Hall (30:02):
Program exited. Program exited. Program exited.
Goodbye.
Advertise With Us

Popular Podcasts

On Purpose with Jay Shetty

On Purpose with Jay Shetty

I’m Jay Shetty host of On Purpose the worlds #1 Mental Health podcast and I’m so grateful you found us. I started this podcast 5 years ago to invite you into conversations and workshops that are designed to help make you happier, healthier and more healed. I believe that when you (yes you) feel seen, heard and understood you’re able to deal with relationship struggles, work challenges and life’s ups and downs with more ease and grace. I interview experts, celebrities, thought leaders and athletes so that we can grow our mindset, build better habits and uncover a side of them we’ve never seen before. New episodes every Monday and Friday. Your support means the world to me and I don’t take it for granted β€” click the follow button and leave a review to help us spread the love with On Purpose. I can’t wait for you to listen to your first or 500th episode!

Stuff You Should Know

Stuff You Should Know

If you've ever wanted to know about champagne, satanism, the Stonewall Uprising, chaos theory, LSD, El Nino, true crime and Rosa Parks, then look no further. Josh and Chuck have you covered.

The Joe Rogan Experience

The Joe Rogan Experience

The official podcast of comedian Joe Rogan.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

Β© 2025 iHeartMedia, Inc.