All Episodes

January 24, 2025 β€’ 32 mins
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Shay Nehmad (00:00):
This show is supported by you over on
Patreon. Stick around till thead break to hear more about
that, about our live episodeprep, and some other cool stuff.

(00:21):
This is Cup of Go for January25th 2025. Keep up to date with
the important happenings in theGo community in about 15 minutes
for a week. I'm Shay Nehmad.

Jonathan Hall: AndΒ I'mΒ JonathanΒ Hall. (00:35):
undefined

Shay Nehmad: Oh,Β soundingΒ allΒ nice. I'm glad (00:37):
undefined
I'm glad to hear that. Long timelisteners might remember that
for the last few episodes,there's the microphone arc of
Jonathan ever since he leftAmsterdam. Yes. The Mike saga.

Jonathan Hall (00:51):
I should have just done this even before I
left Amsterdam, but I don'tknow. I guess that was, stupid.

Shay Nehmad (00:56):
Yeah. Mike saga, by the way, the original name for,
original proposed name for TheLast Dance that Mike, Michael
Jordan, and then I took itpersonally. And then someone
said Zig was better than Go, andI took that personally. Oh.
Alright.
So we have some cool stuff totalk about. We have update on
last week's security release,which should come which should

(01:19):
be very timely because it cameout literally an hour after our
last episode. So it's probablythe oldest news item that's
literally a news item. We wannatalk about GopherCon. We have
some proposals we wanna discuss,some discussion topics, just
cool, cool stuff.
You wanna Sure thing. Get uskicked off with the, new

(01:41):
release, RC 2.

Jonathan Hall (01:44):
Yeah. So 1.24 RC 2 is out. The really, the only
thing to talk about there isthat it includes all the CVEs
that are also included in 1.23.5and 1.22 point 11, or rather
includes the fixes for the CVEs.They didn't just, like, decide
to readd those vulnerabilities.But, yeah, it's, 1.24 is coming

(02:04):
along.
So if you're not already runningit in your CI pipelines, it's a
good idea to to add it there andreport any bugs you discover.

Shay Nehmad (02:11):
And if you wanna know what the specific CVs are,
there's one in crypto, which Idon't fully understand. You have
certificates with URIs. Right?So a certificate has, like, what
what it certificates or wherecertificates from, right? If you
use an IPv6 zone ID, you canbypass some constraints, again,

(02:34):
proving that IPv6, really nobodyremembers to check.
No. Everybody forgot about it.I've started learning networking
in 2010, which is 15 years ago,and I've been taught that, yeah,
in in a couple of years, we'regonna run out of IP addresses,
and everybody's gonna use IP v6. Still hasn't happened. I

(02:55):
wouldn't worry about it toomuch.
But because you have toimplement it, it has security
implications because nobody evertests it, and the format is
weird. Just a generalobservation. In this case,
certificates including URIs arenot permitted anyway, so it only
affects users who weren'tworking with the spec. So if you

(03:16):
are using the crypto package andyou're looking at certificates
that have URIs in their web PKI,then you have a problem. The
more interesting one is, the netHTTP one, where sensitive
headers are sent incorrectly.
So here's a question. What sitedo you log into often?

Jonathan Hall (03:36):
Let's say GitHub.

Shay Nehmad (03:37):
Alright. GitHub is good. Well, let me retract that
statement. GitHub is a goodexample.

Jonathan Hall (03:43):
Okay.

Shay Nehmad (03:44):
I don't wanna say GitHub is good. Fair enough.
Yeah. So let's say you need totalk to github.com/something.
Mhmm.
What headers would you need tosend them in the HTTP request, I
mean?

Jonathan Hall (03:59):
I'm assuming there's some sort of auth
header. I don't know exactly howtheir auth works, but probably
some authorization header.

Shay Nehmad (04:04):
Yeah. So you have some non sensitive headers.
Right? Like, referral And, yeah,referral. And, yeah, accept and,
like, these whatever.
Simple things and authorization.So HTTP strips the sensitive
headers when you follow aredirect. Let's say GitHub
redirects you to some externallogin page.

Jonathan Hall (04:24):
Mhmm.

Shay Nehmad (04:24):
Mhmm. And it makes sense that it it would, it
wouldn't send the authorizationwith the redirect. Right? It
should drop the sensitiveheaders. That's how it should
work.
This, vulnerability basicallysays that if you, receive a
subsequent redirect, thesensitive headers get restored.

Jonathan Hall (04:44):
Oh, no.

Shay Nehmad (04:46):
Yeah. So if you go to GitHub.com and GitHub.com
redirects you to some login pageslash 1, and then that login
page goes to slash login pageslash 2, the HTTP headers get
restored, incorrectly, ofcourse, following a chain of
redirects. On the one hand, thisis a really, really cool
vulnerability in the HTTPclient. On the other hand, I'm

(05:10):
like, I don't think it impacts aton of, people. Like, I don't
think the severity is that high,but it's not it's not great.
Right? You leak authorizationheader. It's, like, exactly the
thing you don't wanna do. But,the thing I'm failing to I think
I understood how it works.Right?
You go to a.com with yourauthorization header, and then

(05:31):
you redirect a.com redirectsyou, and then b.com, which you
got redirected to, can doanother redirect and sort of
drink your, credentials. Right?Yeah. But for that to actually
be malicious, you have to hackinto a.com and change the
redirect to your site. Does thatdoes that make sense as the

(05:51):
attacker?
So these credentials might havegot leaked to to a a a third
party site, but that third partysite, you know, someone
redirected you there on purpose,and that someone already has
your credentials. It's kind ofhard to me for me to follow, how
you can actually perform anattack here unless you already
attack the original domain and,like, install something there.

(06:14):
And if you did that, you canjust grab stuff from there.
Right?

Jonathan Hall (06:17):
You were there. Right. Right.

Shay Nehmad (06:19):
So it's a cool vulnerability. I'm not sure
what's the attack path or attacksurface, if that makes sense.
But it's good that that it'sclosed. And if you any of the
things we said worried you, goupdate because it's in go 123.5
and go 122.11.

Jonathan Hall (06:36):
And the, the note here says thanks to Kyle Seeley
for reporting this issue. I justhad to Google him to see if, if
he's done anything else coolabout Go. And I see a a rocking
guitarist, on on the front pageof Google, so I don't know if
it's the same guy. I'm guessingnot. But if if it is the same
guy, then, good job, Kyle, for,taking time off your your rock
star shows to to do securityreporting.

Shay Nehmad (06:59):
Hey. I I, play guitar. Can I do a side note?
This might get edited out. I,sold my guitar.
Oh. My custom Les Paul, Gibsoncustom shop that I had the guy
signature who who finished it atthe the Gibson shop. It was a
beautiful guitar, man. I sold itto a good guy, though.

Jonathan Hall (07:20):
Okay. Well, that's

Shay Nehmad (07:20):
good. Sold it to a good guy. He seemed to like,
he's gonna have a lot of fun,playing it. And I I haven't
touched it in a while. So likelike, sensitive headers, good
things get forwarded, I guess.

Jonathan Hall (07:33):
Yeah. So that's that's it for our releases. But
something else has been releasedlately, and that is the CFP, all
4 presentation papers. We've hadthis debate before. Anyway, the
CFP for GopherCon US is open nowthrough March 3.
GopherCon US will be in NewYork. Did I did I say that
right? I don't know how to pickup their accent correctly. In

(07:56):
New York, New York this year.I'm thinking about trying to go.
I've already talked to my wifeabout it. She's never been to
New York before. How about you,Shai? What are the chances that
you might be in New York inAugust?

Shay Nehmad (08:07):
August. I don't know. I'll, I'll be in
California that time.

Jonathan Hall (08:12):
Uh-huh.

Shay Nehmad (08:12):
But Gopher Con, that's that's tempting. And New
York is also a lot of fun. Haveyou been before? Yes. I've been
as a tourist.
I went to the whole everythingthat's touristy. I went to the
Soup Nazi. I went to Lady ofLiberty, and I went, talking
about Kyle Seeley, Kyle, ifyou're still lost listening and

(08:33):
you're actually the guitarist,to the best, pedal shop in the
world. And the same guy I toldyou I told I sold my guitar to,
I sold him, the 2 best pedals Iown, effects pedals I own owned,

Jonathan Hall (08:47):
as well. Now you can't edit out the guitar bit
because you've referred to itagain. So Yeah.

Shay Nehmad (08:52):
Yeah. It's no problem. Yeah. So no. I don't
plan to, but go for con.
That's tempting. What's thewhat's on the schedule? Like, do
they have a keynote or anything?

Jonathan Hall (09:02):
Nothing yet. It's too early. It's it's too early.
So maybe you if you wanna submita CFP.

Shay Nehmad (09:08):
Oh, interesting. Oh, maybe us. Maybe we can do,
like, a go a cup of go booth atGopherCon. Just beyond this the
dates themselves, also importantto highlight, you know, that,
and there's a call for speakers.It's not only, like, big talks.
You can submit lightning talksas well, and they'll be open in

(09:29):
a few months. Right? Thelightning talks, they only get
opened on June. Mhmm. So youhave a lot of time.
There are nonprofit tickets,student tickets, start up
tickets, corporate tickets. Theyhave, like, tiers. They have
discounts of groups. So if youwanna come in a group, that
works really well. And, yeah,it's not super cheap.

Jonathan Hall (09:54):
No.

Shay Nehmad (09:54):
It's not a super cheap event, but, you know, the
the the higher the the later youget your ticket, the pricier
it's gonna be, and it's gonnalike, the current price ends on
February 18th. So you don'tactually, you don't have a lot
of time to grab the, like, earlyprice.

Jonathan Hall (10:12):
Yeah. You're on it.

Shay Nehmad (10:13):
If you know you're gonna go, buy the the thing now.
Cool. Looks like there are somespeakers already, including,
Miki Tabekka was already on theshow, our first, guest ever.

Jonathan Hall (10:26):
Well, if he can make it, surely you can try.

Shay Nehmad (10:29):
Maybe. Maybe.

Jonathan Hall (10:31):
Anyway, maybe, maybe you or I will be in New
York. It'll be fun if ithappens.

Shay Nehmad (10:37):
We'll see. You do have a lot of time to decide.
But, again, like I said, if youknow you're gonna go until
February, 18th is the earlyprice. So you don't know if
you're gonna go yet. Right?

Jonathan Hall (10:49):
I don't know. I mean, it's it's not as far for
me.

Shay Nehmad (10:52):
So is it a question mark?

Jonathan Hall (10:53):
There is a question mark involved for sure.

Shay Nehmad (10:55):
There is a question mark.

Jonathan Hall (10:57):
Mhmm.

Shay Nehmad (10:57):
Well, I'm sorry, but you can't use that anymore.

Jonathan Hall (11:00):
I can't use it anymore.

Shay Nehmad (11:01):
I see a proposal to turn the question mark into a
keyword.

Jonathan Hall (11:05):
Oh, yes.

Shay Nehmad (11:06):
This is a pretty, long discussion as far as Go
issues go, right, with many,many, many, related proposals,
including a lot in go 2. And itit speaks to something which I
think is is not super important,so I would love to keep, like,

(11:26):
the discussion about it prettyshort. But it's about reducing,
error handling boilerplate.Basically, instead of doing,
like, if is different than nil,you just do question mark.
Right?
Yeah. Very similar to how youhave in Rust, like, question
mark instead of unwrap or inmany other languages.

Jonathan Hall (11:47):
Mhmm.

Shay Nehmad (11:48):
So, you know, a function that, like, looks like,
you know, copy file where you dosomething open, something
create, and copy, and thenclose. And for each one, you
need to check the errors, youjust do OSI open s r c then
question mark instead ofdifferent from nil. And if you

(12:10):
return the error even, like, onelevel up, it's very very short.
It's just call the function,question mark. That's it.
Yeah. What do you think aboutthis?

Jonathan Hall (12:21):
When I first read the proposal, I read the entire
proposal, not all the comments.I read the entire proposal first
when I was first saw it about 2weeks ago. I had mixed feelings
about it. There are a couple ofthings I like about it. Like I
said, mixed feelings, so Iwasn't sure.
I have since decided I don'tlike it. Mhmm. And so I'm I'm
I'm in good company along with438 other people who have

(12:43):
downvoted it compared to the 168who have upvoted it. I don't
think it solves a problem that'sworth solving, and and the way
it solves it, I think, isactually worse. So, like, in
general, I think that this is tohelp newcomers to language who
feel like their verbosity is ais a detriment.
And and there are certainly aretimes where I I think it is and
and this would solve some ofthose cases. But in general, I

(13:05):
think it adds something that'sless readable and easier to miss
and and to to appease the wrongpeople. Like, it's not gonna
help the expert Go developerswho decided that they're they're
okay with the long form errorhandling. It's not really gonna
help them. It's gonna help thethe newbies by making the
language more complicated.
So I feel like it's kindasolving the wrong problem in the
wrong way. However, I didn'tlike generics at first, and I've

(13:27):
come to like them. So I doreserve the right to change my
mind if this gets adopted, andand I play with it for a while,
and and I may change my mind.

Shay Nehmad (13:34):
There's a lot of comments here, like, a lot a lot
a lot of comments here. The costof generating code, like writing
and or generating it, is verylow. It was always low. It was
never the thing to optimize for,but now it's lower than ever.
Right?
With the language server gettingbetter and, AI completion

(13:58):
becoming faster and cheaper. Andso that's definitely not the
thing to optimize for. So it'snot for people who want to write
Go code and, like, make themfaster, like reduce boilerplate.
Now when you say reduceboilerplate, it sort of implies
that without the boilerplate,it's as understandable. And to

(14:19):
me, I'm I'm not, like, a 100%sure what what the what how I
would feel about reading codethat looks like this because I
haven't read a lot of code thatlooks like this.
But when I tried to read Rust,where you can do error handling,
like unwrap with question mark,It was it wasn't nicer. Like, it
was harder to understandoverall. It was it was fewer

(14:43):
characters, fewer symbols on thescreen, but they were describing
a pretty complicated thing.Right? Because the normal flow,
that's never hard to read.
People wouldn't call, like, youknow, calling a function,
opening and closing theparenthesis, boilerplate that
you don't need that'sovercomplicated. Right? Because
you sort of wanna say, I'mcalling a thing here. This is I

(15:05):
how I communicate it. Eventhough, theoretically, we could,
eliminate the open parenthesis,the closed parenthesis if you
don't pass any arguments orsomething like that.
Mhmm. So it doesn't make itreadable more readable for me.
And it also, again, does a thingthat I really like that Go
doesn't usually do, which is 2possible ways to do one thing

(15:27):
because this is not in place of,you know, getting an error and
seeing how it looks. The onlything it actually does is reduce
one line. Right?
That's basically it. You get youcall a function, and you have to
get the error. And then if theerror is different from nil, you
do something.

Jonathan Hall (15:44):
I I think if you have a function that calls a
bunch of other functions thatonly return an error, this would
improve readability in thatcase. And and so that's kind of
their first example here. Oneone of the first examples here.
Right? They have this runfunction that calls start
question mark, wait questionmark, return nil.
That's actually probably easierto read than error colon equals
start. If error does not equalnil, return error. Error equals

(16:05):
weight. If error does not equalnil, return nil. You know, so in
that particular example, I dobelieve that this question marks
in text re improves readabilityjust because you can see exactly
it's okay.
This function calls start and itcalls wait and then it's done.
If there's an error, it turnsit. So so I I do see an argument
for reboot readability in veryspecific circumstances. But if
you have a function that's morelike a real life function where

(16:26):
sometimes it you call a functionthat returns 3 things, one of
which is an error. Then at othertimes, it calls something that's
only an error.
And other times, it callssomething that has no error
value at all, and you have theseall intermixed together. Then
you have to go hunting for, isthere a question mark there and
should there be 1? And, youknow, you have to check the
function signature or rely onyour, your static analysis tools
on your IDE or whatever to totell you that you're actually

(16:48):
checking errors that should bechecked. I think it makes it
harder to read in in in reallife sort of situations.

Shay Nehmad (16:54):
To be fair, by the way, this is literally just
reducing the boilerplate. It'snot as loaded as the question
mark is in other languages likeRust. Like, it doesn't do a
whole lot of things. It justit's inspired by Rust.

Jonathan Hall (17:09):
Right. Right.

Shay Nehmad (17:10):
But it's it's only at the end, and it only, like it
it literally replaces the getthe error and check if it's
different from nil. Right? Like,get a value check if it's
different from nil.

Jonathan Hall (17:19):
And and it, additionally, instantiates a
magic variable, which is thething I hate the most about this
proposal, actually. So if yourquestion mark is followed by a
code block, so you wanna do yourown error handling, then it
magically instantiates a locallyscoped error variable to which
is the only time Go ever doesthat. I hate it. I I that I
think that particular aspectcould be fixed. You could just

(17:40):
put a parenthesis error,whatever, if you want.
Yeah. It's not nearly as magicalas in Rust, but it's it's still
magical enough to not feel likeGoToMe.

Shay Nehmad (17:48):
Yeah. There there are some other, nits and
discussion and, like, ways thisdiscussion could go. Do we need
a block form? And is thequestion mark a good thing to
use? Because some languages, youknow, in Rust, it's used for
error handling, but inTypeScript is used to represent,
like, non null in a objectdestructuring.
So maybe use, a keyword, liketry or catch or guard or, like,

(18:14):
something that indicates thatinstead of question mark. The
main observation I think I havefrom this discussion, it's that
it's very, very, very long forsomething that's not super
important. And I wouldn't I I'dbe okay if it got merged, and
I'd be okay if it didn't gotmerged. Like, I imagine it being
as a 5 minute update in like, ifit did get merged, it would be

(18:37):
in my next Go meetup. Like, inthe in the in GopherCon, there
isn't going to be a talk allabout the new question mark
decorator because there isn't aa new question mark operator
because there isn't anything tosay about it.
It's just like, oh, you rememberhow you had to check errors? Now
you just do question mark. Itdoes the same. It's very, very
simple. But, yeah, I'm actuallyagainst it as well.
So now we're minus, 440. Maybe Itipped the scale enough. Maybe

(18:59):
there's some magic number thatif you get to number of
downvotes.

Jonathan Hall (19:03):
So so what do you think? What's what's your
prediction? Is this gonna getmerged? Never. I don't think it
is.

Shay Nehmad (19:08):
Never. Never.

Jonathan Hall (19:09):
It's a good discussion. It's interesting,
but I hope I hope it does.

Shay Nehmad (19:12):
We'll see. I I think it's interesting to
challenge, like, very basicthings in the language here and
there, But it might be verybasic. I might be
misunderstanding, but I thinkthere are way more important
things to resolve. Like, itwould help more people to
localize the Go, website to adifferent language, right, than
to continue bickering about theerror handling. The error

(19:35):
handling is fine.

Jonathan Hall (19:36):
Speaking of more important things. Yes. So he
also wrote another proposal,that I I actually do like. It's
for a new package called sync v2. You ever use the sync
package?
Of course.

Shay Nehmad (19:48):
I do. Single slide and and mutexes and

Jonathan Hall (19:51):
Yeah. You use mutexes, but you use a a weight
group.

Shay Nehmad (19:55):
Of course.

Jonathan Hall (19:56):
And, do you use sync map? No. Yeah. Because it's

Shay Nehmad (20:00):
ugly. I don't remember why, but I I always use
a different thing.

Jonathan Hall (20:04):
So sync sync map is annoying because, you have to
it was written long ago back inthe dark ages before generics.
So you have to converteverything. You know, you you
read some

Shay Nehmad (20:14):
Yeah. Interface. And

Jonathan Hall (20:15):
You have to yeah. Do a type conversion and
everything. So, anyway, theproposal is to add a new sync v
two package, which has genericsbased map and a few other tweaks
too. But I think the genericsbased map is is the big one. So
I'm actually looking forward tothis.
I think I would probably use async map all the time if I could
tie specific types to it, whichyou can with, with this proposed

(20:36):
version.

Shay Nehmad (20:37):
I really like how we're building on his previous
things. Like, listeners orpeople who follow the language
might remember that there was abig watershed moment where, we
released the first v two packagein the standard library. Right?
Brand v 2. And Ian here saying,hey.
This has been successful. Let'sadd another v two package. Let's
like, we can fix things in thestandard library. That's fine.

(21:00):
Generally, obviously, I like theimprovement.
Specifically, I'm I'm I'm sortof worried about this trend of
let's make another v 2. Theprevious v 2 was very, very
justified. You wanna do youremember why they released the
Rand v 2?

Jonathan Hall (21:16):
I don't remember specifically. I mean, the the
old RAN API was just terrible.

Shay Nehmad (21:19):
So it was the API, but it was also security. It had
a a generator that had, like, ashitty seed or something like
that, and you couldn't change itbecause it would be breaking.

Jonathan Hall (21:30):
Yeah. Right.

Shay Nehmad (21:31):
And I don't while while I very much like this API,
I I have a question. Why put itin the standard library? Like,
why why can't I can just use apackage? Right?

Jonathan Hall (21:41):
Surely, you can. And and many people do.

Shay Nehmad (21:45):
I I

Jonathan Hall (21:45):
think this is

Shay Nehmad (21:46):
Why add another thing to the center library?
Well, I

Jonathan Hall (21:48):
I think part I mean, some reasons I can think
of, it's already there for 1,but in a version in a format
that's probably not very usable.So replacing with a usable
version is is a nice thing todo. I think the main arguments
for putting this in our libraryare to to get a standardized
good implementation, althoughnot all things in the center
library are goodimplementations. JSON is a good

(22:09):
example. Although that'shopefully changing with a new v
two coming up before too long aswell.
And in some cases and I don'tknow if this applies.

Shay Nehmad (22:15):
So let me let me ask you another thing. Yeah. Why
not add, these new generic mapsto the original package?

Jonathan Hall (22:22):
You could, but then you'd need to have 2
different versions of the same,

Shay Nehmad (22:28):
map and I don't know. Map or auth.

Jonathan Hall (22:30):
Right? I think that gets confusing. A lot more
confusing than a v 2, than apackage name.

Shay Nehmad (22:35):
Mhmm.

Jonathan Hall (22:35):
But I could see an argument for it.

Shay Nehmad (22:38):
I'm I'm I'm Some of

Jonathan Hall (22:39):
these things have been added. There are if if I'm
not mistaken, let me doublecheck. But I believe there are
yeah. There there are somegeneric functions in the sync
package that were added later,like once value and once values.
So I don't know if those need tochange.
If the map is the big thing, youcould add a a generic map or
something. I don't know what youcall it.

Shay Nehmad (22:56):
And this proposal is still, like, you know,
doesn't have anybody assigned,doesn't have a label, doesn't
have anything. So it's a goodtime it's a good early time to
add your opinion. Obviously, I Ireally like the new API. I'm
just a bit wary about, like,what v two packages in the
standard library will be usedfor. Because this serve a

(23:17):
slippery slope.
Right? Can you imagine sync v 8in the standard library of a
language? What is that? How doesthat make you feel? Right?

Jonathan Hall (23:25):
That one finally supports enums and the new error
handling syntax.

Shay Nehmad (23:29):
Yeah. And the new REPL. Actually, syncv2 just
introduces a v 2, sync v 8actually introduces a v 8
JavaScript engine inside thestandard library. So cool. One
proposal about error handlingand one proposal about, a new
sync v 2 package.
1 actually will improve thelives of Go developers, and one

(23:53):
got, like, 800 comments. Guesswhich is which?

Jonathan Hall (23:57):
Well, I I think that pretty well wraps us up for
the news for the week. There's alot more we could be talking
about, but we ramble a lot. So Ihope can wait till next week to
hear some of our backlog items.Stick around for a little bit of
an update on some of ouranalytics Patreon members, and
then we'll round it out with aquick lightning round after the

(24:17):
break. As we mentioned at thetop of the show, this show is
supported by our listeners.
If you'd like to help supportthe show, you can join us on
Patreon. And I do wanna do a bigshout out to Jamie who joined us

(24:37):
as a Patreon supporter at the$10 level, which we don't even
ask for. We asked for $8. Sothanks for the extra 25%, Jamie.
We also got a great Patreoncomment from Jose who says, hi.
I really really like yourcontent and the upbeat mood. I'm
a front end developer usingReact and TypeScript. Now do a
little bit of back end withKotlin, not his favorite
apparently, and is, looking tochange. Apart from Go, he's

(25:00):
learning Ocaml and h t max andother esoteric stuff. Nice t
shirt, by the way.
So you're gonna wanna get a tshirt too because it is a nice t
shirt. So for all of that, tojoin us on Patreon, to get a t
shirt, to get a mug, head overto cupago.dev.

Shay Nehmad (25:14):
And to pay on Kotlin. There's a dedicated hate
for Kotlin page.

Jonathan Hall (25:19):
You can also join us, of course, on, our on the Go
for Slack where we have, justcasual chat about Go mostly. You
can post links there to yourfavorite blog about Go over the
week. We might mention it on theshow. That's on the Go for Slack
in the cupago channel, kebabcase, cup dash o dash go. What
what what am I missing, Shai?
Have I covered all the bases?

Shay Nehmad (25:40):
So almost all of them. We have, a live episode
soon Oh, yes. Can't forget that.Which is very, very exciting. We
have published 96 episodes sofar.
This, the one you're listeningto right now should be the 97th.
So in 3 episodes from whatyou're listening right now,
we're gonna do a live episode.We're not a 100% sure what the

(26:03):
details are gonna be yet. Like,where's the and place. How we're
gonna record it exactly, but weknow the time.
It's February 13th at 1800 UTC.6 PM UTC. We thought it would be
good, like, late enough in thein Europe so the Americans could
join as well, like, if theywanna join in the morning. Mhmm.

(26:25):
And it's a Thursday, so, like,towards the end of the week.
If you're

Jonathan Hall (26:28):
in India or Australia, we're sorry. We can't
accommodate everybody.

Shay Nehmad (26:32):
Yeah. Although it's not that late. India is is kinda
rough. It's it's, 3 and a halfhours. Did you know that?
The lead time has extra 30minutes. Always made things hard
when I needed to set up, like,design meetings with my India
team. Mhmm. So, yeah. It's gonnawe this is UTC.
It's time zone it's a very easytime zone to understand. Just

(26:53):
open your log editor right now.Look at the logs that and do
that calculation relatively.Yeah. So we're planning the Go
124 release party, although itit we don't know if it's gonna
get released by then.
If you wanna help it getreleased by then, go install the
RC 2 candidate. Right? And Idon't know. Try to find the
bugs. Looking, by the way, atour podcast dashboard, I can't

(27:17):
help but notice another almostround number.

Jonathan Hall (27:20):
Mhmm. Which number is that? Do we have 6
listeners now?

Shay Nehmad (27:25):
All time actually, we have 559 subscribers. But all
time downloads, we are almostalmost almost at a 100,000.

Jonathan Hall (27:36):
I wonder how long know what? When we started this
podcast, I never would haveguessed we would even get close
to that number.

Shay Nehmad (27:40):
Yeah. No way, man. So thanks a lot to y'all for,
like, listening and downloading.These numbers are, like,
generally finicky. Right?
They don't they don't mean a lotnormally.

Jonathan Hall (27:51):
And They're like the the vanity metrics of vanity
metrics.

Shay Nehmad (27:55):
Yeah. But it it's still, nice because I know that
there are people who actuallylisten. Right? Because people
talk to me about the show. SoYeah.
Yeah. It's it's it's very nice.And if you wanna help us reach
that 100 k, please do share theshow with your friends,
coworkers, family members,etcetera, etcetera, co students.

(28:17):
Just, spread the show around.We're we're coming out we're
coming up on a few excitingmilestones here with, a 100
episodes and a 100000 downloads.
It's pretty amazing.

Jonathan Hall (28:29):
Pretty cool.

Shay Nehmad (28:30):
That's it for our time break.

Jonathan Hall (28:33):
Yeah. Let's jump into a quick lightning round
and, wrap the show up.

Shay Nehmad (28:37):
For sure. Lightning Round.

Jonathan Hall (28:49):
Alright. First off on the lightning round, I
found a tool that I think iskinda cool. It's from our
friends over at Charm Braceletwho make a lot of cool
interesting things. It's calledVHS. Do you know what VHS is,
Shai?
Are are you old enough to knowwhat that is? Yeah. Yeah. Back
before DVDs, back beforestreaming, we used VHS tapes to
watch videos. Right?
So what VHS does is it, it's alittle sort of language and tool

(29:14):
to build animated GIFs ofconsole things. So if you have a
little demo that you wanna, youknow, show, here's how you
compile a program or here's howyou, you know, do something that
would be done on the console. Itlets you it helps you generate
these animated GIFs for thatthat you can then upload to your
social media or whatever andlook really spiffy. So that's
kind of a cool tool. That'sthat's my pick for the week.

(29:34):
Nice.

Shay Nehmad (29:36):
So VHS because you, like, record it. Yeah. Cool. And
there's a new release this week,which is why you mentioned it.
Right?

Jonathan Hall (29:43):
Which is why I mentioned it. Yes. Oh, all

Shay Nehmad (29:46):
the, charm bracelet stuff always looks so nice. It
makes me want to build liketerminal UIs. Well, my, thing
for the lightning round isOpenAI Go. There's an official
SDK, for OpenAI API for Go, fromOpenAI called, boringly enough,
open AI dash go. So if you'retrying to do work with, like,

(30:09):
LLM ish applications, it's arelease.
It's currently in beta, so minorbreaking changes may occur. And
they're really trying to, like,do a a full on SDK with, you
know, documentation, a lot ofdocumentation, and the the files
themselves look pretty good.Looks like a pretty well done
SDK released by Stainless. Idon't know if you know about

(30:30):
them, but they I I think they'rean API SDK company that OpenAI,
like, bought or invested in,like, a pretty new startup
around the scene, with a spiffysite and spiffy SDKs. So if
you're doing Go stuff with a AIwith OpenAI specifically, now
you have an official SDK, andyou don't have to use some weird

(30:52):
ass library.

Jonathan Hall (30:53):
So my big question here is is there a, a
REST API for it so that I canuse open API Go with open AI Go?

Shay Nehmad (31:03):
I think you can. I think that's how they generated
this SDK, actually. Although itmight be, like, a beautifully
handcrafted, it seems like thetop contributor is actually

Jonathan Hall (31:14):
You know it was written by Chad GPT.

Shay Nehmad (31:17):
Yeah. 100%. One other thing I wanted to, bring
to the lighting ground, and it'sa lighting ground pick not
because it's not interesting,but because it's not go, is
Dreams of Code, Elliott, who wason the show, released a new
YouTube video, which I really,really liked, which is all
about, setting up, deployment toa v v a VPS to a server without

(31:38):
Docker. Can you even imaginejust your binary being naked on
a server? And it's it reallyshowcases, other than very
interesting, like, DevOps stuff,the up level in, Elliott's,
like, editing skills andwhatever.
This is, like, legitimately ashort movie, a short film about

(31:58):
deploying to, VPS's.

Jonathan Hall (32:00):
I wonder if you wrote it using VHS.

Shay Nehmad (32:04):
I guess you'll have to watch.

Jonathan Hall (32:05):
I'll have to watch and see.

Shay Nehmad (32:07):
Link in the show notes.

Jonathan Hall (32:08):
I think that wraps it up for this week.
Thanks for listening. We'll talkto you next week.

Shay Nehmad (32:12):
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.

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

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

Connect

Β© 2025 iHeartMedia, Inc.