Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Jonathan Hall (00:00):
This show is
supported by you, stick around
till after the news to hear moreabout that. This is cup of go
for November 15, 2024. Keep upto date with the important
happenings in the Go communityin about 15 minutes per week.
I'm Jonathan Hall.
Shay Nehmad (00:20):
And I'm Shay
Nehmad.
Jonathan Hall (00:21):
Hi, Shay.
Shay Nehmad (00:22):
I realized we
always have the same Yeah.
Wondering if we can slip in,like, different I'm Jonathan
Hall, and this is a show aboutRust, and people will just not
notice. Right?
Jonathan Hall (00:33):
Yeah. Maybe.
Yeah. Well, we'll try to mix it
up for next time.
Shay Nehmad (00:37):
Yeah. Keep keep
ears sharp. And also, your,
train tickets sharp in caseyou're going to Hanover?
Jonathan Hall (00:43):
Oh, yeah.
Shay Nehmad (00:44):
That sounds like a
trainee place, although I don't
know if that's actually true.
Jonathan Hall (00:48):
Oh, I'm sure they
have trains, that go.
Shay Nehmad (00:50):
Wait. Is is a place
is a place that has a lot of
train trains trainee or rail y?Because most of the time they
have rails. Trainee is like ifthey have a lot of gyms. Anyway,
talk about the meetup before Itell any more bad jokes.
Jonathan Hall (01:03):
Yeah. So there's
a meetup happening November 19,
in Hanover. So if you're inHanover, that's, in Germany. We
don't know what they're talkingabout. It'll be a mystery until
you, go to the Hanover meetup.
I'm sure it'll be a greatconversation though.
Shay Nehmad (01:16):
Alright. Let's not
make it too awkward. Everybody
together now. Happy birthday toyou.
Jonathan Hall (01:25):
You know, when
they tell when they sing it
Shay Nehmad (01:27):
to you and you're
just sitting there, you're like,
yeah. Just don't know what todo.
Jonathan Hall (01:31):
And it's worse at
a restaurant when the waiters
and waitresses come out andstart doing that.
Shay Nehmad (01:35):
I would die. I
would die. I was just to get up
and leave. Go turns 15. Blogposts on the Go blog.
Happy birthday, Go.
Jonathan Hall (01:42):
This is the big
one. This is the quinceanera for
Go.
Shay Nehmad (01:45):
A quinceanera? What
does that mean?
Jonathan Hall (01:47):
Quinceanera is a
traditional celebration when a
girl turns 15 in Latin America.She gets in a formal dress and
Shay Nehmad (01:53):
They already passed
the bar mitzvah, so now it's
quinceanera, next is 18. But,yeah, this blog post, goes deep
into changes from the last 5years and really highlights for
me the longevity of, like, thelanguage and processes and the
leadership of the language.Right? Because you see, they
planned the things 5, years inadvance and then, you know,
(02:17):
change, for forward loops ispart of a 5 year trajectory.
Right?
Forward language compatibilityis Go 121 which were introduced
by Go 14, like, 114, which was40s and a half ago. And then 122
introduced the scoped var loopvar thing, which we discussed ad
nauseam. And, like, it happenedin 2 releases. Very, very cool
(02:41):
things. Also, about the toolingthat they developed while
developing these things.
For example, the hash bisection,which we discussed on the show,
where you can sort of bisectcode instead of, bisect the git
commits. Mhmm. Which we try tounderstand and, pass through the
podcast. Very, very cool things.They also mentioned the opt in
(03:01):
telemetry, which was a bigchange, and I remember it being
a big community win as well.
The enhancements to the standardHTTP router. I just had a a
person on my team, theonboarding exercise, you have to
develop a small server. Right?Include and put it, like, it's
one small part of the exercise.And they just use the standard
library, you know, get in post,and I was like, yeah, man.
(03:22):
Here we go. That just works. Itlooks so good, so clean,
stronger randomness, executiontraces, and the first v two,
which was a very controversial.Right? And they mentioned a lot
of things we talked about here.
Right? FIPS, which we're gonnatalk a lot about next week, and
finally with making go betterfor AI. So the whole last
paragraph is about making gobetter for AI, like building
(03:44):
production AI systems and LLMinfrastructure. I think it's
mostly talking about, like, AIinfrastructure, AI applications,
not, like, actual AI, workloads.Right?
Right. Yeah. So very, very cool.And they rounded out with a
thank you for all thecontributors and the thriving
community. So I don't know ifI'm a contributor.
(04:06):
You are. I only did some codereviews and proposals. You
actually have some code.
Jonathan Hall (04:10):
Tiny bit, like,
10 lines or something. Yeah.
Yeah.
Shay Nehmad (04:13):
And the thriving
community. And I definitely feel
a part of that community.
Jonathan Hall (04:17):
Definitely a part
of that.
Shay Nehmad (04:18):
Yes. So you're
welcome, Go. Actually, that's an
interesting question. Do youfeel a language is such a weird
concept? Right?
Because it's first and foremosta business thing. Right? It's a
business tool developed byGoogle. Mhmm. Do you feel like
you gained more from Go or gavemore
Jonathan Hall (04:35):
to Go? Oh, I've
definitely gained more from Go
than I've given back to it. Forsure. I mean, well, okay.
Actually, maybe that's moreinteresting question than I
first thought.
Technically, I have gained more.I've gained a lot from the
center library, from thelanguage itself, and so on. I've
given back, like I said, like 10lines of code to the Go project,
but I've also contributed tosome open source libraries. I've
I've maintained a few. And thenthis podcast and my YouTube
(04:57):
channel and my blogging aboutGo, I I am giving back to the
community in that sense.
That that's hard to hard to say.I don't know.
Shay Nehmad (05:03):
I think because Go,
like, it is a Google thing, but,
like, I'd never felt Google,monetized it and it never pulled
me towards Google that much.Like, the biggest thing I can
think of is the AI, blog postfrom very recently. They were,
like, they mentioned the Vertexbefore they mentioned the Azure
(05:25):
and AWS and OpenAI for, like, AIapplications. And maybe the fact
that a lot of Go cloud thingsare protobuf and Go, so that
sort of draws me there, but,like, not really. It doesn't
feel like a corporate thing.
I definitely, by the way, thankyou, Go team. I like being a
part of the community. I didsome conferences and meetups and
(05:48):
this blog and blah blah blah andand led some Go guilds at at
various companies. Definitelydefinitely gained more from,
like, learning this languagethan not. I'm wondering if it is
actually the case that were I tospecialize in a different
language, I might be in a reallytough position.
Mhmm. You know, if I were tospecialize in Skala and Skala's
community is kind of on the winddown. Right? Or if I were to
(06:12):
just stay in, like, a verymediocre language that's that's
not very hirable or peep peopleare not building and disting
things in, like, it could have,this this choice is not huge
because you always can switch,but just the fact that I've been
with Go for so long, very cool.It doesn't feel 15.
It feels very young still. Idon't know.
Jonathan Hall (06:32):
Yeah. I I mean, I
haven't been using it for 15
years, so that's probably partof why it feels younger to me.
But but also just, like, sort ofthe vibe around the language. It
still kinda feels new and
Shay Nehmad (06:40):
shiny. Yeah. Maybe,
actually, just looking at how
hard it is to change a singlething about a for loop that
bothers everybody takes, like, 5years. Maybe it's not that young
as I we're thinking of it. Yeah.
Not a spring chicken anymore.Happy quinceanera go. There are
still a lot of interestingthings to discuss. Let's get on
it.
Jonathan Hall (06:57):
I wanna call
attention to a talk that was
done, at Govergogon recently byCameron Balahan. I think I said
that right, who is I believe theproduct manager for the Go team.
He did a talk that, it's reallyrelevant to what you were just
talking about called thebusiness of Go and he talks
about how, they balance businessrequirements for Google and the
(07:19):
rest of the and how thatinteracts with the rest of the
community. Like they don't wannabuild Go just for Google. It
really needs to be somethingthat's used by the community.
So it's a good, expansion on thetopic you were just talking
about.
Shay Nehmad (07:29):
Alright. I'm I'm
adding it to my to do. I'll
definitely watch it. But first,I wanna finish listening to this
episode. So let's finishrecording it.
Jonathan Hall (07:38):
There'd be a
cassette of baseballs, the
movie. We're still in the middleof making it. Oh, that's true,
sir. What the hell am I lookingat? When does this happen in the
movie?
Now. You're looking at now, sir.Everything that happens now is
happening now. What happened tothen? We passed then.
When? Just now. Wear it now now.Go back to then. When?
Now. Now? No. I can't. Why?
(07:59):
We missed it. When? Just now.When will then be now? Soon.
Shay Nehmad (08:04):
Alright. Some
updates on past news items.
Support for Mac OS 11 in Go 125has been accepted. No surprises
there really. Just if you arebuilding for Mac OS 11, remember
to upgrade.
You should always upgrade to thetwo versions before the one
that's coming out. Right? Canyou remind us what's the life
(08:25):
cycle, thing in Go?
Jonathan Hall (08:26):
Two versions.
Shay Nehmad (08:28):
The current Two
versions from since what?
Jonathan Hall (08:30):
Well, so the
current the current version and
the one before that.
Shay Nehmad (08:34):
These are okay. And
the previous ones are not
getting security updatesanymore, so you don't wanna
stick around with them. Right.Cool cool cool. A more
interesting discussion is aboutmemory regions.
Yes. So we're gonna try to, go abit deep into this one. And if
you remember, we alreadydiscussed a similar topic when
we talked about arenas. Thearena experiment that was
(08:55):
introduced in go something?
Jonathan Hall (08:58):
Yes. It was
definitely go something.
Shay Nehmad (09:00):
I don't remember.
Jonathan Hall (09:01):
I don't remember.
Shay Nehmad (09:02):
But I think it was
like 3 versions ago. Yeah.
Jonathan Hall (09:04):
It was like 1 20
or maybe 19. I don't remember.
Shay Nehmad (09:06):
Yeah. So, just to
refresh your memory, also this,
whole discussion is aboutmemory. What is what was the
arena experiment? So let's sayyou have a workload that needs
to, allocate data and you don'twant the garbage collector to
(09:27):
collect this data. You wanna doit yourself.
Mhmm. The reason you like, whatare the workloads that would be
relevant? Basically, just veryhigh performance places where
you really try to optimize andthe garbage collector is not
doing a good enough job becauseyour memory usage is very
predictable so you can say, hey,I know when I want to allocate
(09:49):
and release this memory. So inother words, region based memory
management is arenas, right? Youtake a part of your memory and
you say, I'm in charge of thisone.
No. I think this is notubiquitous. Right? I think not a
lot of people are doing this butI think it's very important that
the the language tries to dothis in a way that's safer than
(10:10):
just, alright just call mallocand free and and do it a 100%
yourself.
Jonathan Hall (10:15):
Right.
Shay Nehmad (10:16):
In Go arenas, first
of all, are pure Go and second
of all, it's a memory safeimplementation. And so far as
use after freeze will not resultin corruption, only crashes. So
you still can shoot yourself inthe foot, it's just with a Nerf
gun and not with a shotgun.Right? It's gonna crash, but
you're not gonna introducesecurity vulnerabilities or
(10:38):
corrupt the memory or thingslike that, which is better.
Right? Yep. And everything wassolved, and there's nothing else
in this discussion. Sounds good.Yeah.
Yeah. So that's that's obviouslynot what happened. The proposal
to add arenas, is on is on holdand actually on indefinite hold.
Yeah. And the reason for that isAPI.
So you can't use arenas in allthe APIs. It has a few rough
(11:03):
edges, but it just composesreally poorly with the language
in the standard library. Let'ssay you have an arena that you
want to, use memory arenas for.What, what, API in the standard,
library you use like this weekthat you can pull off the top of
your head?
Jonathan Hall (11:18):
Me? I've used,
the JSON encoder or decoder,
FMT, of course.
Shay Nehmad (11:26):
Oh, so so f m like,
JSON is really a good idea.
Let's say you, want to decodeinto a buffer and you just wanna
reuse that buffer all the timeand manage that memory because
the JSON is always gonna be thesame and blah blah blah. Right?
Mhmm. You don't want the garbagecollector to mess with it at
all.
You wanna define an arena. Howwould you tell JSON that you
(11:46):
that you want to pass an arenaand not just a pointer? Now you
need to change the the API.
Jonathan Hall (11:52):
I I would have
yeah. I don't know. I I could
imagine a couple different ways.One is changing the JSON API.
Hopefully, that's not what theydo.
Hopefully, there's like, an IOreader or writer wrapper around
some data in that memory, arenaor or
Shay Nehmad (12:07):
Then you need to
change the API for IO reader and
writer to make them acceptarenas. So there there are a
few, rough edges. Basically, foran API to use arenas, it must
accept the arena to allocateinto. Right?
Jonathan Hall (12:20):
Yeah. Yeah.
Shay Nehmad (12:21):
Because if you pass
a pointer into JSON, that's
fine. But if JSON, allocates,some memory itself, then you
need to pass the arena, toallocate into.
Jonathan Hall (12:30):
Right.
Shay Nehmad (12:30):
This is, in a
sense, this is why sometimes,
Rust APIs look so rough, right,where you have to define it's a
box, an RC with a staticlifetime, blah blah blah blah
blah blah. It's because everyAPI needs to know exactly what
it what's it allocating into.Anyways, this is not a perfect
analogy. And if you'relistening, this is not a perfect
(12:51):
analogy. I just don't like FrostAPIs.
Jonathan Hall (12:55):
The this is the
the sort of the problem.
Shay Nehmad (12:57):
Right? This is why
we're talking about it. So the
problem is arenas work, but inorder to use them, they compose
really poorly with the API. Solet's say I I don't wanna
resolve it by doing the API.Right?
What other solutions, can wethink of? So the proposal here
by Michael Knyznyek, I hope I'msaying that right, is to reduce
(13:18):
cost associated with the garbagecollector with composability.
Like, don't mess up the entireAPIs and then and and regions
like arenas have to composereally well with things like
sync dot pool and the uniquething and they have to work well
with optimizations, etcetera,etcetera. The design, very very
(13:38):
smart, I think. Very very out ofthe box thinking.
Instead of defining arenas, yousay, okay, every thread is gonna
have every goroutine is gonnahave arenas if they want them.
If a function is called withinthe scope of a region like a
thread that's, a goroutinethat's currently saying, hey,
right now I'm in a region,Everything is gonna happen into
(13:59):
a region in the scope of that,call. So instead of changing the
API, you wrap the API. And whenyou wrap the API, you change the
behavior of the thread itselfthat runs it. Fascinating.
Yeah. So this is obviously has alot of, interesting nuance that
we can't go into here, but Ithink it's a fascinating, read.
(14:20):
The the core is that it's adecoration. It's it's it's a
very basic design concept thatwe all learned when we learned,
like, you know, like, I don'tknow if you had a stage in your
life or, like, okay, designpatterns. Now I need to list
design singleton and factory andactor and strategy.
Right? So the first one of thefirst one is is you learn is
(14:41):
decorate. Right? I'm gonnadecorate a function with a
different function. It's gonnaadd some functionality to it
without changing the originalAPI.
That's exactly what we're seeinghere, and it doesn't affect the
correctness of the code. Andit's just saying that the user
expects the memory to stay,local and be unreachable and
then bypass the garbagecollector which is exactly what
(15:03):
arenas do in a sense. You getslightly slightly less control
but it does functionally exactlywhat would you would use an
arena for. And I thought it wasvery very interesting. It's
recommending a package calledregion, has 2 functions do,
which does the entire thing wejust said and, ignore where you
can okay.
Inside a specific function, nowdon't use a an arena. So if
(15:26):
there's a part where you say,now I want the garbage collector
to work I want to exclude memorythat is known to outlive a
specific region, which I thoughtwas very very cool. The API
looks simple, but probably thereare tons of use cases and edge
cases that we're not thinkingof. What do you think?
Jonathan Hall (15:42):
I agree the API
is is dead simple. I'm curious
how it works with things likeglobal variables and and I don't
know. This is some quartercases. I'm sure they've thought
about this or they will have atleast by the time this is
accepted. So I'm gonna have toread this in more detail.
But I guess TLDR, it looksingenious. I I have questions.
Shay Nehmad (16:02):
So although this is
fairly fleshed out, this doesn't
have a prototype yet. And nowthey want to gauge interest from
the community. This isdifficult. Right? This is not
gonna be easy to implement, andit's gonna mess up a ton of
things.
So and there's interestingsuggestions here. For example,
someone suggested, let's use acompiler directive instead of
wrapping things in in Go, right,in Go code. That's an
(16:26):
interesting discussion. Peopledidn't like that suggestion, by
the way. It got a lot ofdownvotes, because it's sort of
less readable and less, youknow, Linter, esque, I guess,
linter friendly.
But there are a lot of possibleextensions here, etcetera,
etcetera, etcetera. I reallylike it. And some people say
this is really cool and I wantto even do a Go experiment to
(16:48):
make every Go routine a regionimplicitly. And some people are
like, I don't like it at all.Don't bring it to to Go.
It's a step backward. Let's justimprove the GC instead. Let's
not do manual memory management.What do you think about this
take? I I have a, my opinion,but I'm wondering what do you
think?
Jonathan Hall (17:05):
I think improving
the the GC is great, but it's
already pretty darn good. And Ican definitely think of cases
where I would you like, I wouldhave probably used something
like this last week if it waseasy and accessible to me. So,
yeah, I I don't know why youwouldn't wanna support both if
if it's reasonable.
Shay Nehmad (17:23):
So, a, the zero sum
game of if you're gonna use if
you're gonna do something, dothat. I don't this is not a
productive discussion in myopinion. I do wonder. There's no
I feel like I already have asense when I look at a Go API
whether I should oh, it's asuper common API or a package.
Right?
Whether I should just use it andit's fine, or whether it's like
(17:46):
a super edge casey thing that Inever have to use. I don't
remember what feature youmentioned, but you said, like,
there's some features of Go thatyou never want to use or never
have used or something likethat. Do you remember what what
I'm talking about? You mentionedit on the show once.
Jonathan Hall (18:00):
I I I can think
of some features ago I never
use. I don't know if these arewhat I was thinking of when I
made the comment.
Shay Nehmad (18:06):
So anyway, what I'm
saying is, like, it's sort of
the case, I feel at least, thatif you don't like manual memory
management, manually managingyour memory is what I meant to
say, you cannot use it. But onthe other hand, I'm thinking
about it and saying, oh, but ifthey introduce arenas or like
sorry, these are called memoryregions and suddenly, you know,
(18:28):
someone has a really really coolsuggestion for, GC optimization
and like, ah, but it doesn'twork with memory regions so we
can't, we can't implement it orwe can't introduce it. It it
does feel like it couldintroduce a lot of dependencies
and edge cases, etcetera,etcetera. But it's it's super
(18:48):
interesting. Really, reallysuper interesting.
People say, oh, let's not doignore because, reasoning about
programs will be easier.Slightly concerns about using
the STD, like why not just useit in run time, etcetera,
etcetera, etcetera. Very cool.Whether we can do it in the
compiler level, very veryinteresting discussion, with a
lots of participants and Iimplore the community, to I
(19:12):
don't know why this is thecommunity. I implore our
listeners to go join thisdiscussion.
I find this super interesting.Like, I would love to open this
discussion in a guild meeting atwork, like, with all the Go
developers and, like, try tofind cases where it's relevant,
whether they like the API andsort of imagine how they it
would look one way or another,blah blah blah. Very cool.
Jonathan Hall (19:32):
So, Sean, you
found a job listing that you
wanted to talk about. This is asoftware engineer l 5 listed on
LinkedIn. It's a Netflix job.Why did this jump out at you?
Shay Nehmad (19:44):
Well, the Netflix
logo obviously is very
recognizable, but I actuallyfound it because I just looked
for the word go on LinkedIn, andI didn't I forgot it was a jobs
website. Like, the first thingit brought up was jobs. And then
I saw games, and I remembered Idon't know. I heard some asshole
on a podcast saying that Go isnot good for games. So what's
the point?
Jonathan Hall (20:04):
So, anyway, the
point here then is that, Netflix
at least thinks that, somebodywho knows how to use Go can help
them write games.
Shay Nehmad (20:12):
Well, let's be
fair. It's not a a full Go gig.
Right? It's a full stack.
Jonathan Hall (20:17):
Full stack. It
says go JavaScript TypeScript.
And yeah. That's cool.
Shay Nehmad (20:22):
Do you think it's a
good fit? Do you think it's a
bad fit? What's your opinion?
Jonathan Hall (20:25):
So I just had a
call this morning, with somebody
who, a potential client who mayhave me helping them build the
back end of a, a web based gamefor Telegram and Go. The back
end would actually handle all ofthe game logic. The front end
would just display images andstuff like that. So it's not
it's not like, 3 d gaming or,you know, we're not talking
(20:46):
about Call of Duty here, but, Ido think there's a lot of room
for Go to do that sort of stuff.And I may, within the next few
months, have a lot of experiencewith it.
We'll see. Cool. Cool. Cool.
Shay Nehmad (20:55):
There are a lot of
interesting edge cases when
developing games that aren'trelevant to, like, real
workloads. And the first one Ialways think of is is maps.
Right? You you're not allowed togive every you don't want the
client side to show or hideenemies. So you need to know the
client needs to tell you whereit stands.
Blah blah blah. Veryinteresting. I I think Go
(21:17):
obviously for the back end is isprobably it probably exists in
every big gaming company. Right?Like, you think about EA, all
these, a wait.
EA is, Battlefield. What companyis Call of Duty? I don't
remember. Anyway, like, allthese companies for their cloud
services and chat and usermanagement, etcetera etcetera,
(21:38):
they probably use Go in the backend. Right?
It's reasonable to say that theyuse Go. Activision. Yeah.
Jonathan Hall (21:44):
Yeah. Yeah.
Shay Nehmad (21:45):
I actually don't
play a lot of shooters. So
Jonathan Hall (21:47):
And I'm doing
I've been working for a couple
years, almost, with Unity. Theyuse Go for their, their CMS
stuff. So I don't know if theyhave I don't know if they manage
their own game back ends, but,certainly, they use Go even at
Unity, which is not a Golibrary.
Shay Nehmad (22:01):
For sure. So,
obviously, this is not we're not
we don't wanna do job listingsin the show because that's gonna
be a problem. But I just foundit interesting. Another place
where Go is relevant for games,and I, was humbled by the
listeners when, I said Go is nota good fit. Apparently, it is.
Alright. Off to the lightninground.
Jonathan Hall (22:20):
Let's do it. Run
out the
Shay Nehmad (22:25):
show. Lightning
round.
Jonathan Hall (22:28):
First off, let's
talk about Watermill. Watermill
1.4 has recently been released.Watermill is event driven apps.
And go. We'll have a link hereto a blog post talking about it
and what it's for.
It's apparently pretty popularat 7,500, stars on GitHub and 55
contributors. If you'reinterested in event driven
development, check outWatermill.
Shay Nehmad (22:48):
Very cool. It's
always a good topic to be
interested in. If you're doingevent driven stuff, that
probably means you want, thingsto be idompetent and happen 1 by
1 and a really good packagewe've been using a lot of work.
Well, package. It's a go file inthe sync library.
It's called single flight. Andif you're unfamiliar with single
flight, I just put the link tothe Go file in the show notes.
(23:12):
Just go read it. It's very shortand you can just understand it,
but it's basically if you havemultiple Go routines trying to
do the same thing, that's notallowed, it'll tell them to
patiently wait in line. It'svery relevant for a lot of apps
and it's also super super easyto use.
Just an underrated, like,feature of the language I want
to bring up. And finally, a linkfrom one of our, Slack members
(23:35):
over at cup dashodashgo on thego for Slack.
Jonathan Hall (23:38):
Yeah. Are you
familiar with Brain Rot? I mean,
I don't we know what happenswhen you don't have coffee.
Shay Nehmad (23:42):
Yeah. For sure. I
think I'm too old. Yeah. I know
some of these words, like ratio.
I know ratio. It's it's whenyou, like, comment on someone's
tweet a bit too much, and itovertakes the likes. So it's
like, oh, ratio, but not a lotbeyond that.
Jonathan Hall (24:01):
Well, this blog
post is about how to create a
brain rot language server usinggo. So if you're familiar with,
the concept of a of a languageserver, LSP language server
protocol, which is basically thelanguage that, tools like go
please speak to Versus code, forexample, You can read this
(24:22):
through this blog post and learnhow to sort of build a prototype
or a working example, brain rotlanguage server using Go. So
it's it's an exercise inlearning how language servers
work.
Shay Nehmad (24:32):
Oh my god. For real
for real. This library is all
rizzed up. Bet, ain't no cap.It's very good because there's a
literally a map called mapstring to brain rot entry and
every brain rot entry is a termin the description.
So this is actually a good wayfor me to learn about the youth
(24:52):
of today.
Jonathan Hall (24:53):
Which are big
brain rot. Are they older or
younger than Go at this point?
Shay Nehmad (24:57):
Oh, you know what?
There might be listeners who
were who are super strongdevelopers in Go, I'm sure, or
younger than Go at this pointlistening to the show.
Jonathan Hall (25:07):
If that's you,
come let us know on the Slack
channel.
Shay Nehmad (25:09):
Or or maybe not.
Maybe the Oh, maybe not.
Broadcast the fact that you're aminor on the Internet. Maybe
that's not a good idea.
Jonathan Hall (25:16):
Yeah. We'll we'll
wait 3 years to to do that
challenge. For sure.
Shay Nehmad (25:20):
If you wanna put in
that line of code, right, you
can put it in now and then it'sgonna go through, like, 2
versions of of, forwardcompatibility and then 2
versions of releasing it. It'sgonna be around your birthday.
Alright. That's it for the newstoday. Let's move to the ad
break.
Let's do it.
Jonathan Hall (25:41):
First off, in the
ad break, I have one thing I
wanna talk about, Shay. I don'tI don't think you've even seen
it yet, but I created a newLinkedIn page for the podcast.
Shay Nehmad (25:49):
So you can fight
maybe you can post, as the
company when you fight withpeople. So it's not it looks
more legitimate.
Jonathan Hall (25:57):
There's nothing
on the page yet, except our
logo. But, when I have a chance
Shay Nehmad (26:02):
The old logo that
is because you're using the bad
PNG.
Jonathan Hall (26:05):
Which is the same
one that's on, kapako.dev
apparently. Anyway, we intend toautomatically publish every
episode to that page like wealready do on Mastodon and
Twitter. So, if you're if youprefer LinkedIn over other
social media, be sure to followour LinkedIn page.
Shay Nehmad (26:19):
And even if you
don't really like LinkedIn, like
myself, hopping on and, like,pressing follow and, I don't
know, re what's it called?Reposting? Retweeting? Sure.
Jonathan Hall (26:29):
Yeah.
Shay Nehmad (26:30):
Reposting.
Reposting, like, the first thing
we'll put here, it would bereally cool because LinkedIn is
a professional network, and Ithink it might be a good place
to meet some other, people and,like, get more listeners to the
show that we sort of haven'texposed the show to before.
Right? So that could be cool.You have a really, like, big
LinkedIn presence.
Jonathan Hall (26:50):
LinkedIn is my go
to social media, not because I
particularly like LinkedIn, butI I hate it less than the other
options.
Shay Nehmad (26:56):
That's a that's a
good reason to
Jonathan Hall (26:58):
I actually just
deleted my my Twitter profile, a
week or two ago because, I wasso tired of being spammed on
there.
Shay Nehmad (27:06):
Good for you,
question mark?
Jonathan Hall (27:07):
I don't know.
Shay Nehmad (27:08):
It's all good. I I
I, unfortunately, have to stick
with my Facebook account,because it's connected,
stupidly, it's connected to myStack Overflow account. So I
don't wanna lose that. Maybe Ican reach out to support and
say, like, hey. I wanna deletemy Facebook.
But I don't know. Maybe Facebookis useful for some things.
Jonathan Hall (27:27):
Maybe we need a
Facebook page for Cup of Go
Shay Nehmad (27:29):
2. No.
Jonathan Hall (27:32):
I haven't used
Facebook in years. I mean, I
still have an account, but Idon't use it. So, anyway I think
it's enough about it.
Shay Nehmad (27:37):
I think it's true
for everyone. Alright. Other
than reaching us via LinkedIn,we wanna say a lot of thanks to
our Patreon supporters. Thankyou, fam. That's very lit of
you.
Furio for real. No cap. If youwanna support the show
financially, you can drop us, $8a month by joining as a member
to the Capaco community over atPatreon. And if you wanna find
(28:00):
that link, you can find it atcapago.dev where you can find
the links to everything. TheSlack, the LinkedIn, the
Patreon, the swag store, theemail, the past episodes, the
whole shebang.
Really looking like a realpodcast after 2 years or so.
Jonathan Hall (28:16):
Yeah. It is.
Shay Nehmad (28:17):
If you're into
email, that's solely cool. News
atcapago.dev. That is newsatcapago.dev, and you can send
us an email.
Jonathan Hall (28:24):
We would also
appreciate if you would leave a
review or a rating for uswherever you listen to this
podcast, whether it's on,Spotify or Apple Music or
iTunes. Is that
Shay Nehmad (28:34):
the same thing?
Apple Podcast.
Jonathan Hall (28:35):
Apple Podcasts.
Yeah. I'm not a I'm not in the
Apple ecosystem, so I just.
Shay Nehmad (28:40):
Yeah. If listeners
haven't heard, John uses Linux.
He just wanted to mention.
Jonathan Hall (28:45):
You mentioned
that far more than I did.
Alright. Yeah. So leave us areview. Leave us a rating.
Send us your feedback.
Shay Nehmad (28:52):
Thanks a lot for
listening. That does it for our
show this week.
Jonathan Hall (28:55):
Program exited.
Goodbye.
Shay Nehmad (29:05):
Program exited.
Goodbye.