Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Shay Nehmad (00:00):
This show is
supported by you, our listeners.
(00:02):
Stick around till the ad breakto hear more about that. This is
Kappa Go for 04/11/2025. Keep upto date with the important
happenings in the Go communityin about fifteen minutes per
(00:23):
week, which slowly and surelyseems like it's not enough as
our backlog is only growing. I'mShay Nehmad.
I'm Jonathan Hall. What what arewe doing? Are we just tossing
every odd item out of thebacklog? No unlucky news?
Jonathan Hall (00:37):
I think that's
the way it works. Yeah. Yeah.
Shay Nehmad (00:39):
That's what they do
with resumes. I deal them like
cards and then every third onejust
Jonathan Hall (00:44):
wouldn't wanna
hire any unlucky people. Of
course.
Shay Nehmad (00:48):
We have a lot to
talk about today, but first we
should start with a correction.You're not always right.
Jonathan Hall (00:55):
We're not, sadly.
Well,
Shay Nehmad (00:57):
Jonathan isn't.
Jonathan Hall (00:58):
No, maybe you're
always right. So last week we
talked about Yoke and I made thecomment that it is not a Helm
replacement because it workswith Helm. That was corrected by
our listener who submitted theproject. It It actually is a
Helm replacement. So if youdon't like Helm, maybe Yoke is
exactly for you.
Just a quick correction there.Check out last week's episode
for a full description of Yoke.
Shay Nehmad (01:16):
Wow, I wonder how
much traffic it will drive if we
actually correct all the wrongthings we've said over the last
two years.
Jonathan Hall (01:23):
Check that out on
our second channel where we
correct all over this.
Shay Nehmad (01:27):
The the the cup of
the cup of go go show. There's a
podcast that the my intro topodcasts was, My Brother, My
Brother and Me and their showthat's called The Adventure
Zone, which is if any McElroyfans also listen to our show,
shout out. So they have a showcalled The Adventure Zone, and
(01:49):
then every, like, 50 episodes orso, they have a behind the
scenes that's called the theadventure zone zone, which I
really like. Anyway. Well Sorryfor the mistake.
Jonathan Hall (02:01):
Yeah. Sorry for
the mistake. Thanks for
accepting our sincere apology.And other news from our
listeners, we got a great emailfrom Gabriel Aguindre, I hope I
said that right, who says he'sgoing to be speaking along with
his colleague, Sebastian Farrarat Gopher Camp in The Czech
Republic. And they learned aboutGopher Camp from this show.
So that's really cool to hearthat we're making an impact. Not
(02:23):
only are people going to go forcamp because they heard of it on
the show, but somebody'sspeaking there. Louis speaking
on the topic of why your codedeserves better and why you
should give it a linter. So I'ma big linter fan. We had Eldaz
on the show a couple of weeksago to talk about Golangzhi
Lint.
I sing the praises of Lunters alot. So unfortunately I won't be
able to attend this talk. Maybethere'll be a video online I can
(02:45):
watch later. If you'll be in TheCzech Republic, the boy should
figure out the dates of thatthing again.
Shay Nehmad (02:49):
And like always,
whenever there's an interesting
person coming in to the Slack orwe find their blog post or any
of their mentions, I go checkout their personal blog if they
have one. And Gab has one, Gab'sNotes, which is really nice and
has a short blog post aboutmerge conflicts and go dot sum,
which is like, hey, Go mod, youneed to fix manually, but go
(03:13):
some, you just don't worry aboutit. And apparently you can do it
with git config, which I didn'tknow, which is super cool. So
I'll I'll definitely like dealwith the first like with that
idea. You can just say like, oh,go some, just like whatever,
keep both versions because italmost never matters.
And then you go do gomontidyanyways. Mhmm. A neat little
(03:35):
time saver from, Gabriel. And ifthat convinced you, the Gopher
Camp in The Czech Republic,which is the first Golan
Conference in The CzechRepublic, is in thirteen days
and seven hours, 04/25/2025.Looks like a full day, really
cool stuff, lots of speakers,lots of sessions.
So if you're in the area, gosign up and even supported by
(03:56):
Microsoft, Alban Labs, Odin. Gg.Very cool.
Jonathan Hall (04:00):
One proposal I
want to talk about today.
There's many in our backlog thatwe're not getting to, but one I
wanted to call out because it'sfairly easy to explain and I
think it's going to make my lifeand probably a lot of people's
lives easier. How often do youuse a weight group and go, Shay?
Shay Nehmad (04:14):
Basically anytime I
have a bunch of tasks I wanna
run concurrently, which is whyI'm using Go in the first place,
right? Right. And they're alloff like doing web requests or
doing like some heavycalculations or whatever, put
them in a wait group and thenwait, right? Yeah. So whenever I
have to corral goroutines.
Jonathan Hall (04:35):
Right, so it's
going become easier. You've used
wait groups before, you knowthat you have to call wg. Add
for each wait group, or for eachgo routine you add to the thing.
Then in your wait group, have tocall wg. Done to tell if it's
done.
And then the wait function atthe end waits until all of the
started go routines arecompleted before it continues.
(04:56):
But that just got simpler orwill be getting simpler. They're
adding a go function, whichmatches the error group. If
you've ever used that, which isa similar concept matches the
error group functionality. Soinstead of doing wg.
Add and then go and then deferwg done, you can just call
waitgroup. Go and pass it afunction that executes and it
does the add and and the donefor you automatically behind the
(05:16):
scenes.
Shay Nehmad (05:17):
Oh, cool. Like a
super simple API. I'm wondering
now there's that modernizelinter, Right? Mhmm. That seems
like a pretty tough case to tocatch.
But if the modernized lintercould catch that, that would be
super cool.
Jonathan Hall (05:35):
Yeah. I don't
know how you could do that
because sometimes you call w gdot add length of a of a slice,
for example, wouldn't be able tocatch all of those cases, I
imagine. But if you're trying toclear your code base, you could
easily just search for wg. Addand wg. Done and then do your
own rewriting.
Shay Nehmad (05:52):
Yeah, there is a
lot of discussion that's super
interesting about how many usersmisused the API or didn't figure
it out correctly or blah blahblah. But I I like the last the
last comment here. This issuenow tracks the work of
implementing the proposal, wherein reality discussing the API
was the hard part andimplementing it is super easy.
(06:14):
So someone like by stroke ofgood fortune, the implementation
is already complete. But yeah,the design is a hard
Jonathan Hall (06:22):
one. Cool. So
far, that's my my favorite, new
feature coming, O 1.25.Although, of course, we don't
know really what's gonna be inthat. So, but this is at the top
of my list I'm waiting for.
Shay Nehmad (06:31):
I would love it if
Alintra, like, modernized it
automatically, but I definitelywouldn't go back and touch any
code that has concurrency in it.Even in Go where it's the
easiest language to do that,it's just so easy for me to
like, oh, sure, I can make thisconcurrency code look better.
And then the race detector islike, no, you can't. Yep.
(06:53):
Especially your copilot can't.
So don't don't even try it.Right. I wanna share a really,
really cool blog post and I'msort of on the fence. It's a
seven minute read. So and it'slike a bug hunt sort of blog
post where there's a reallyspecific, super interesting,
hardcore quote bug.
(07:15):
Right? If you like reading thesesorts of blog posts and trying
to figure it out for yourself asyou're running sort of like a
murder mystery or a true crimepodcast, I'm gonna spoil it, I
think, as I sort of tellJonathan about this blog post.
It's called leak So spoilerwarning, I guess.
Jonathan Hall (07:36):
Shouldn't we
start a podcast about True Bug
podcast? True Bug?
Shay Nehmad (07:43):
That'd be cool,
like background music.
04/01/2025, an empty run time,alarm bells. Elad Gavra from
(08:07):
Cyclo was hoping to just haveanother calm day at work when
suddenly he got a conversationwith the customer success team.
We think we have a problem. Thissummer.
Jonathan Hall (08:34):
April 1, this
isn't a joke, right? This is
this is a true a
Shay Nehmad (08:37):
true thing. So the
the blog post is, real. It's
really cool. It's from, EladGavra, a team lead over at
Cyclo. And you know, how oftendo you debug memory leaks in Go?
Jonathan Hall (08:48):
I've done it a
few times.
Shay Nehmad (08:50):
But it's not like
it's not like often. Just
because, you know, it's garbagecollected, most of code is
straightforward and makes sense.Mhmm. So he is talking through
in great detail with code andpictures and everything about
how they, like, try to hunt forleaking goroutines that consume
(09:11):
memory by retaining references.Just by the way, the tools they
used to do it.
So, you know, they have pprofenabled, so they went to slash
debug slash pprof slashgoroutine. If you don't know
what that is, Go has super goodbuilt in profile stuff, which
you can turn on by just adding aline, right? And it has almost
(09:31):
no footprint on your production,so you should probably do it.
Honestly, they grab thegoroutine pprof. So are there
hanging goroutines?
With debug equals one, which islike the level of a debug. This
detail is important. Remember itfor later. Okay. They found, you
(09:52):
know, generated a graph andokay, it's related to the SQLite
driver, something from a cloudresource and they show the graph
here and, know, that beautifulgraph where something's red and
they're like, oh, let's look atthe heap profile location trails
to find where it leaks.
Okay. So they narrowed it downto a specific part of the code,
(10:15):
which is okay. It feels like adead end. Maybe the problem is
Indigo runtime. Apparently, itwas, like, in the Go runtime,
they introduced another toolcalled GoRef, which I never used
Mhmm.
Because I never got to a bugthat's this hardcore. But it's a
heap object reference analysistool. So you could like look at,
(10:40):
you know, the call stack, whichcreated every single object at
runtime. Like see the memoryreference distribution and and
of stuff that's reachable by thegarbage collector. And from
that, you can go back to theplaces in the code where the
objects were created.
Blah, blah, blah, blah. Like,they're they're going through
this research and they foundthat GoSMB two has been blocked
(11:04):
for tons of minutes because of arace condition they introduced
and that Go debug, like thepprof debug equals two hides it.
And they actually opened the bugfor the Go runtime, which at the
point of your research, ifyou're opening bugs in the Go
language itself, you know you'vehit a real edge case. So yeah,
(11:29):
you know, debug two should haveincluded in any reasonable
person should include stuff thatis found in debug one, right?
But it didn't, they walkedthrough this entire thing and
fixed it, it's resolved, supercool.
So not only they shared the blogpost, they actually improved the
(11:49):
language. So like Cyclo and theyhad super great stuff. They just
implemented, like they had tofind a fix even after they
opened the three additionalissues. So they just like
generated a monitoring loop andsaw how long that finalizer
takes. So it like triggers them.
(12:11):
It gives them an event and theycan restart the thing. They even
share the link to that repo,which is called F I N Q, think.
So if you have a slow runningfinalizer, which or a blocking
finalizer, you can use this totrack it. So opening issues,
contributing back to opensource, like, guys going above
(12:35):
and beyond in this one, which Ireally liked, just like super
hardcore research. You should goread the blog post, honestly, if
you're into that bug hunt sortof stuff.
Jonathan Hall (12:45):
Or tune in on our
new True Bug Hunt podcast.
Shay Nehmad (12:50):
Next summer. No,
yeah. And Elad just shout out
really good blog posts.
Jonathan Hall (12:57):
The topic of
serious things that happened on
April 1, everybody's favoritegamble parser for Go was
archived that same day. Sort ofthe de facto gamble parser for
Go, there isn't one famously,there isn't one in the standard
library since your proposal wasrejected without even a moment's
thought apparently, Shay. So theGoYAML V3 parser that most of us
(13:18):
have probably been using, it'sprobably the most commonly used
one by Gustavo Niemeyer has beenofficially archived or
unmaintained. He just updated iton April 1 with a note
explaining that he hasn't hadtime for several years to work
on it, which I think some of ushave noticed. There's been a
number of open issues and pullrequests and not a lot of
attention.
(13:38):
So I don't know what the sort ofbest approach to this is. I
mean, you can continue using itobviously, but there are some
other ones out there. I don'tknow if there's another one that
everyone's rallying behind. Ithink there's a few different
implementations. Honestly, I'llprobably keep using this one.
I haven't had problems with it.I don't know. What do you think,
Shah? You're the one who wantsit in the center library. And
even though apparently nobodyelse does.
Shay Nehmad (14:01):
Again, obviously
there's a obligatory, oh, don't
use YAML, right? YAML ishorrible, blah, blah, There's no
actual standard, blah, which iswhy my YAML proposal was
rejected. The next popularpackage is YAML from Kubernetes.
Right? So this is the the go Ithink it might be less common in
(14:28):
terms of how many times it'sbeen imported, but but by the,
like, runtime seconds in reallife, marshaling and
unmarshaling Kubernetes stuffinto Yammer probably happens
like so much just because thereare so many Kubernetes clusters
out there.
I would go with that justbecause you want to flock
towards the most popular one,even though the latest release
was October and it's like April.I don't know, like, is that
(14:53):
good? Is that bad?
Jonathan Hall (14:54):
That's more
recent than the latest real
release of this one, which
Shay Nehmad (14:57):
was over two years
Yeah, the previous one was 2021,
right? I am having a hard timebelieving that since 10/24/2023,
there haven't been anyinteresting security fixes found
or anything like that. Maybeit's because there's not enough
attention behind this library,but that's
Jonathan Hall (15:17):
On the other
hand, YAML isn't an evolving,
changing format. Mean, inprinciple, we should
Shay Nehmad (15:24):
be able
Jonathan Hall (15:24):
to nail it down
and be done with it. Although we
know that that's not really truein practice.
Shay Nehmad (15:29):
I know that there's
this one and people try to
comment on it and there is go cc y go yaml, which I think has,
you know, was developed fromscratch to replace go yaml yaml.
And, you know, they say thatthat one is not actively
maintained, so I have to gocheck that one. I don't know.
(15:53):
Generally, it's just a prettybad situation where there's no
strict this is the best onebecause ones that don't get
released, you're like, oh, maybethey're just done, right? Maybe
they're just stable.
And the ones that do getreleased, like two weeks ago, Go
CC Y Go Yammer was released.You're like, wait, why do they
(16:14):
still have like bugs? Generallynot super happy with the
situation. And whenever I'mgoing to like next time I'm
going to do Yaml, I'm just goingto try to make sure that I'm
using only the simplest featuresjust to not run into any edge
case. That's I guess my bestrecommendation.
Don't try to do anything funkywith YAML. If you find yourself
in this situation where you'redoing that, like, I don't know,
(16:35):
reconsider. There's just so manyedge cases and now that there's
not a quote unquote standardlibrary to do it, I don't know.
Maybe it's just worth thinkingabout other languages that have
all the features you're gonnawant. Right?
We talked on the show aboutstuff like what was that
configuration language? We hadlike two already on the show. Q
maybe? Yeah. Q, c u I, c u e.
(16:58):
Sorry. C u e. Yeah. That's like,configure, unify, something,
execute, which is, you know, agood way to define like schema,
data validation, configuration,scripting, all these sorts of
things, which like you might dowith YAML and, you know, Q knows
how to read and write YAML. Ormaybe if you're like super
(17:19):
hardcore, maybe you need a protobuff in reality and you've just
been using YAML to hide it.
Like, I would seriously considerdoing something else, which I
wouldn't recommend if you werejust using JSON. Right? Like, if
you're just using JSON, that'sfine. You're working with other
web stuff and it just works foryou. Fine.
But if you're using YAML toconfigure stuff
Jonathan Hall (17:39):
Someone needs to
standardize a middle ground
between JSON and YAML. It'sbasically JSON with comments and
a couple other nice things fromYAML without all the like 16
different ways to put multilinescreens.
Shay Nehmad (17:50):
I don't think it's
possible at this point.
Jonathan Hall (17:52):
No, I don't
either, but it would be nice.
Shay Nehmad (17:55):
But one final
comment is if you do
configuration, YAML is not agreat option for you as well,
because there is TOML, which isbetter and super standardized
than the dev tooling community.For Pyproject, it's already
standardized. Like there's nochance of it disappearing. By
the way, I'll fully say unlikeQ, right, which isn't part of
(18:15):
any language standard or bigcommunity. While I do think it's
super cool, like it's still notsuper it's kind of early, right?
That's not going to happen withTOML. So generally, like there
are libraries I would recommend.I guess I would go with
goccygoyaml as my first option.But the moment I do something
(18:35):
slightly more complicated likevalidation or anchors, I would
just stop and fix that becauseat this point, the YAML is like
technical debt, but that mightbe a bit too much. If you're
just using a normal file,goccoyyaml, I think is the best
option.
Jonathan Hall (18:52):
Well, we've been
jabbering here for about twenty
three minutes in recording time,which of course is shorter in
post editing time. But I thinkit's time to jump to our
lightning round.
Shay Nehmad (19:05):
Lightning round.
Jonathan Hall (19:06):
So to kick off
the lightning round, I want to
do a shout out to a projectcalled Godoc.envim. The coolest
thing in my opinion about thisproject is the banner that has,
it looks like a gopher driving aDeLorean from Back to the
Future. So that's pretty sweet.But what it is, it lets you
(19:29):
fuzzy search GoDocs from withinNeoVim. So if you're a NeoVim
user and you want to do a fuzzysearch in your GoDocs, it's
bugging us for you.
This comes from listener. Whatdid you say, was Shai, Frederic?
Shay Nehmad (19:40):
I guess. I hope we
said
Jonathan Hall (19:42):
that right.
Averpill. Thanks, Frederic, for
the shout out, giving us this toinclude an lightning round. What
do you have for us, Shai?
Shay Nehmad (19:50):
I I I just wanna
say I've been considering using
NeoVim instead of Versus Codewith Vim bindings, which is what
I've been rocking for the lastfew years. But I don't know if
you can hear it on the mic. Letme let me just put the mic next
to it. I have a new mechanicalkeyboard. So Nice.
(20:12):
I'm I'm really try I've I'vebeen relearning all my shortcuts
and commands and whateverbecause it's a really funky one.
It's a moon lander. So I waslike,
Jonathan Hall (20:21):
that's why we get
new one to it. Yeah. Yeah.
Shay Nehmad (20:23):
Yeah. Actually, the
first week was horrible. It was
really rough, but now I'm likingit a lot. I'm sitting with my
chest open because it's splitand I could put my coffee in the
middle of the keyboard, which isa power move for my notebook.
Jonathan Hall (20:37):
With a straw, so
you can just drink it without
even lifting your hands?
Shay Nehmad (20:41):
What? Dude, I
should get a cup with a straw.
We should offer like a cup witha straw, the slag for it. That's
such a good idea. I didn't eventhink about it.
Although it's now that I imagineit in my head, it's a bit too
much like a a rat in a cage withtheir bottle hanging, you know?
(21:03):
Anyway, my Lightning Run thingis super fast because it's the
new release of FINE, which isfaster than ever and passes goes
race checks. Yesterday, Andy,friend of the show, released v
2.6, massive update to FINE,which is, like a GUI app
(21:24):
development framework thing,influenced by a material design
where you can develop like Goapps that run locally pretty
easily. And now it's super,super fast without data races as
well. So if you do stuff on thebackground, you can use find dot
do to do that.
But other than that, it's a lotfaster because it has a new
threading model, which soundslike a big achievement for the
(21:48):
fine team. Good stuff. And it'sa super big update. It has,
like, I don't know, maybe 50bullet points on the Mhmm. On
the change.
So I assume it's gonna be, youknow, six point zero is gonna be
slightly buggy. But if you're anearly adopter, that's a great
time to switch and up andupgrade. Cool. Let's move to our
(22:09):
ad break, and then we have asort of preview discussion
about, MCPs. MCPs?
I don't
Jonathan Hall (22:15):
know what that
is. You'll have to teach me.
Shay Nehmad (22:16):
For sure. That's
the discussion. Welcome to our
Ad Break. Thank you forlistening so much. As we
mentioned at the top of theshow, this show is supported by
you, our listeners, and we wannahighlight our Patreons.
(22:37):
You can join our Patreon andkick in $8 a month to help
support the show. We need to payfor the show even though it's a
hobby for us and a way to learn.Jonathan is gonna learn a little
bit about MCPs or I learnedabout the new weight group
stuff. But we do pay for hostingand editing and apparently
refunding hoodies that went out,but didn't get to listeners.
(22:58):
Luckily, they did get tolisteners before I pressed
refund because I was about to dothat.
Anyway, we wanna shout outKelsey Wolf. Kelsey Wolf, thanks
a lot for joining our Patreongroup. I don't know what this is
called, audience, audience. Wereally appreciate it and it
helps just make this hobbyslightly more sustainable. So
(23:20):
thanks a lot.
If you wanna support the show inother ways, or just talk to us,
you can find everything incupago.dev, that is cupago.dev,
where you can find links to ourSwag Store, our Slack channel,
Cupago on the gopher Slack,which is growing. Like a lot of
people are joining. I have ahabit of doing like emoji
response for everybody who'sjoining the channel just to like
(23:41):
make it friendly. We're at fivetwenty eight people, which is a
lot. And I don't know, IskaAmbraejak just joined.
Thank you for joining. I don'tknow if you wanted the shout out
just for joining a Slackchannel, but you were just the
latest example. So yeah, cupago,cupopcase with hyphens on the go
(24:01):
for Slack, or you can email usnewscupago. Dev, that is
newscupago. Dev.
Another way to support the showis to share the show with
friends, coworkers, co students,anyone you think might be
interested in Go. Maybe peoplewho are interviewing for Go jobs
right now. This show could givethem like an edge, cause they
(24:24):
could be like, oh, I'm listeningto a show and I know about the
latest proposals. I would belike hyped to hear about a
candidate who's doing that extraeffort. Someone gave me that
advice recently.
They said, oh, I'm tellingpeople I'm listening to the GO
podcast and I'm learning stuffabout it and I'm sharing it at
work. And the interviewersreally like hearing about that.
So maybe that's like a crowd wecould tap into. So Share the
(24:45):
Show, we don't pay to advertiseand we're not doing a lot of
social media work, we're justposting the episodes and hoping
they're good enough. So sharingit or leaving a review on Apple
Podcasts, Overcasts, Spotify,wherever you listen to your
podcast helps us a lot pushingthe show to other ears.
Finally, I want to mention ourupcoming meetups. Well, yours is
(25:09):
like the end of the year. Right?
Jonathan Hall (25:12):
November. The
CubeCon thing.
Shay Nehmad (25:13):
Yeah. So never
mind. I wanna mention just my
meetup, but that sounds a bit,you know, a bit too much self
centric. So, Jonathan, how aboutyou tell people about where they
can meet me in my meetup?
Jonathan Hall (25:22):
They can meet you
in San Francisco. That's about
as far as I I know.
Shay Nehmad (25:25):
Yeah, so Actually,
that's almost as far as I know
as well because it's stillbrewing. But yeah, I'm hosting
and we don't have a locationyet, but I'm talking to a
company that might be mightmight help us, get to it. But
yeah, in the end of, May,there's an event in San
(25:47):
Francisco, go meet up. And ifyou wanna meet me there, because
I'm the organizer and I thinkI'm currently the only attendee.
Although there are a few peoplewho said they will come.
Feel free to join. It would besuper cool. Two hours, we're
doing one, live podcastrecording and a talk that's to
be determined. Talk to me if youwant to find that slot. It's
kind of awkward because there isa Go San Francisco group, but
(26:11):
their main like, theirmaintainers are not answering.
So if anybody knows them andcould, call them and connect us,
that would be cool. Otherwise,Wednesday, May 28, possibly at
WeWork or maybe at a coolerplace if I can make it happen.
Jonathan Hall (26:24):
We recently
passed 500 subscribers on
YouTube.
Shay Nehmad (26:26):
No kidding.
Jonathan Hall (26:27):
Yeah, like it's
such a red headed stepchild of
social media for us that wedon't really pay much attention
to it, but very people arelistening there. So if you're a
YouTube listener, thanks.
Shay Nehmad (26:38):
Damn. That's super
cool. 508 sub wait. Am I
subscribed? I don't know.
Yes.
Jonathan Hall (26:43):
Am. You better
be.
Shay Nehmad (26:45):
Cool. Cool. Cool. I
should get a new, camera soon.
So maybe we can do, like, oneepisode video just to prop that
up.
That would be fun. It's likescreen shares and things like
that. We did a live episode bythe way, and the video should be
up there as well. If you don'tif you click on live, not if you
click on videos, you can see thethe stream. It was a month ago
(27:08):
for the, hundredth episode.
That was a lot of fun, even ifit was a bit stressful.
Jonathan Hall (27:14):
And even if it
was actually the ninety ninth
episode, which we realized a fewweeks later.
Shay Nehmad (27:18):
Well, you I I'm
pulling like a Trump, and I'm
saying like, no, it was ahundredth episode.
Jonathan Hall (27:23):
Got it.
Shay Nehmad (27:24):
And it was
beautiful. Greatest The
Jonathan Hall (27:29):
biggest crowds
ever.
Shay Nehmad (27:32):
For an American,
you do a worse Trump than I do.
Jonathan Hall (27:35):
I'm sure, I'm
sure. It
Shay Nehmad (27:38):
has the best
pointers and the most beautiful
garbage collection. Everybody'sgonna get their own go routine
all dressed up.
Jonathan Hall (27:47):
I think we should
move on to our preview for next
week.
Shay Nehmad (27:50):
Yeah, for sure.
Jonathan Hall (27:55):
So Shai, I
understand that we're talking
about MCPs. Is a metal band?What is that?
Shay Nehmad (28:03):
So not only MCPs,
also A2As. Does that No. No. So
it's very simple. All, MCPs andA2As are ways to integrate your
AI LLM into your APIs, your DBs,your web requests, your local
files.
Super simple. Join us next weekin LinkedIn Brain Rot, the show.
(28:26):
So obviously LLMs have been asuper big topic, right? Like I'm
literally working at a copilotAI security startup right now.
But even beyond the bubble ofwhere I work, MCPs, which is
model context protocols, havebeen making the rounds and have
been super interesting recently.
Like they've just exploded inpopularity. I don't know if it's
(28:48):
going to die next month. Itmight, but there have been two
big announcements. So I'm goingto give you the like preview of
the announcements, but I want todive into a few projects,
actually use them and maybe evendevelop an MCP myself before
next week so I can be moreinformed about it. Also, I want
to ask our community on Slack toshare if they've been working
(29:08):
with all these stuff like MCPsor A2As so we can highlight it
next week instead of justrandomly highlighting a few
projects.
If they if someone's actuallyused it, that would be
interesting. What is this? It'slike a client server. MCP was
introduced by Anthropic. It'sbasically a protocol, which is
like a standard, but it's justby Anthropic.
(29:29):
So it became standard justbecause they're popular, which
gives your LLM a way to talk todata sources and tools. Right?
And you expose specificcapabilities through the MCP
protocol. MCP protocol, that'sstupid, right? That's like an
ATM machine.
Through MCP servers to giveaccess to the various services
(29:53):
for your LLM. So you could, intheory, develop a model context
protocol server for Jira andthen, talk in natural language
to your, MCP server or morerealistically, the use cases
your AI agent does that. And itprovides like, if you want to
list all the issues in Jira, youtalk in natural language to that
(30:15):
MCP and it translate it to theactual thing that talks to Jira,
right? An API call or whatever.Talk to databases, local files.
Surprisingly, the most usefulcase for it, write and not read.
So if you want your LLM toactually do stuff like create
emails or write stuff or buystock or do stuff for you. Let's
(30:37):
say you want your, I don't know,AI agent to book you a flight or
a meeting at a headrestaurant,right? Relevant for some of us,
if not everybody on the call.But it has to go through a whole
like it needs to open the weband click on reserve and then
(30:58):
check the prices.
And like there are many thingsyou could put in the prompt, but
it actually has to do stuff,right? Call the place maybe,
transcribe the call, get yourconfirmation if that works for
you, check your calendar. So MCPcould help the LLM connect to
all these sorts of things.That's in a nutshell. Got it.
It was a huge announcement andeverybody and their mother have
(31:19):
been developing MCP servers fortheir thing because it makes
sense. Right? You it's like anexplosion of APIs. It's like
people are making the bet thatLLMs are gonna be the new
Internet and this is gonna bethe new web pages. Right?
Okay. Everybody's been jumpingon it. And then April 9, just
two days ago, Google announcedbasically the same thing, but
(31:40):
with their protocol, which iscalled A2A protocol, agent to
agent, which gives agentinteroperability. And they
announced it with contributionsfrom a billion tech partners
like Atlassian ServiceNow. Sothis is the enterprise e version
of that basically, where it'sshipped with McKinsey, KPMG,
(32:03):
Atlassian, Box, MongoDB, PayPal,Salesforce, SAP, SAP
integrations, ServiceNow.
And it basically, again, supportfor agentic capabilities. So
let's allow AI agents to talk totools and even multiple agents
(32:25):
to talk to a tool. So you have aremote agent over in Atlassian
side, then you have your localagent running locally, and then
you can talk between these twoagents and, like, share tasks.
So it's sort of like anothernetwork layer on top.
Jonathan Hall (32:39):
And we can over
to next week to learn.
Shay Nehmad (32:41):
Yeah. There's a lot
of capabilities there. Super
cool. Where the agents firsthave to talk to one another to
figure out what they can do andthen manage tasks and then
collaborate, blah, blah, blah.Our spin on it is obviously
which MCP and A to A servers andclients and tools have been
developed in the Go space?
Because there are quite a lot,actually. There are, like, seven
(33:01):
Kubernetes ones, although Ididn't know we needed so many.
So I'm mostly interested to hearfrom our crowd. If you have used
these technologies or developeda server just for fun or
whatever, let us know. We'lltalk about it, next week when
I'll try to learn a bit moreabout that and share my thoughts
on how it is to do it in Go.
(33:23):
Looking forward to it. Yep.
Jonathan Hall (33:26):
Alright. Same
time, same place next week.
Hopefully.
Shay Nehmad (33:30):
See you then. It's
a Passover, so it the episode
might move a little bit in theschedule, but hopefully not.
Jonathan Hall (33:36):
Alright.
Shay Nehmad (33:37):
Happy Passover to
who whoever is, celebrating,
and, I think that's it. Programexited. Goodbye.