Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Jonathan Hall (00:00):
I mean, this
program is supported by you, our
listener. Stick around tilllater to hear more about that.
This is Cup and Go for08/30/2025. Keep up to date with
(00:20):
the important happenings in theGo community at about fifteen
minutes per week. I'm JonathanHall.
Shay Nehmad (00:24):
And I'm Shay
Nehmad.
Jonathan Hall (00:25):
Hi, Shay.
Shay Nehmad (00:26):
How are you? Yet.
Hola. We need What else? Wait.
May I have more? Konnichiwa? Oh,maybe. Thank you. Baljia?
Bonjour? I gotten really warmresponses. Last week, we had a
segment of the show in brokenRussian that I tried to do
because we talked aboutGopherCon Moscow or whatever
(00:48):
it's called, like the Go meetupin Moscow. And the organizer
messaged me later, was like, oh,your Russian was really good for
a learner. And I was like, oh.
Jonathan Hall (00:58):
Awesome.
Shay Nehmad (00:59):
You know, I don't
wanna stereotype, but you know
when a Russian person is beingthis nice, they're actually like
it's like, nice try. Oh, thankyou for trying. Yeah. Yeah.
Jonathan Hall (01:08):
Yeah. I think
I've had the best compliment
about my Spanish ever standingoutside of a Cuban restaurant in
Mexico City when I was speakingSpanish to some guy that was
standing there and he says, areyou from Cuba?
Shay Nehmad (01:19):
Nice. I'm
Jonathan Hall (01:20):
like, not at all,
but I'm glad that I'm glad that
you thought I had some differentnative Spanish accent.
Shay Nehmad (01:25):
Yeah. The the the
same thing happened to me in a a
Ross conference. I was in a Rossconference and I asked some
questions, a Ross meetup, like,in, Hertalia. And then someone
was like, oh, so what Ross doesyour company do? And I was like,
we actually do go.
I'm just here for shits. Why arewe talking about conferences and
(01:46):
Spanish?
Jonathan Hall (01:46):
That's a great
question. I mean, part of it is
that I just feel like I I'mfeeling I'm feeling incredible
FOMO for for, GopherCon. Yeah.
Shay Nehmad (01:54):
We didn't go to
GopherCon. Yeah. And some of our
listeners did, they made itextremely noteworthy in the
channel. Mhmm. Mhmm.
Oh, you're not going toGopherCon? Oh my god.
Jonathan Hall (02:06):
Stick around next
week. We're hoping to get some
of the organizers on the show totalk about everything we missed
and what might be happening nextyear, which leads to what we're
talking about actually rightnow, which is on the GopherCon
Slack channel on the GopherSlack. They're doing a poll for
which city or what actually, noteven which city exactly the next
GopherCon should be in. Thethree leading options are
(02:28):
Canada, probably either Montrealor Toronto, Mexico City or San
Francisco. If you like the ideaof doing Go For Con in Mexico,
you should go vote.
If you like the other options,please don't go vote.
Shay Nehmad (02:40):
Wait. Wait. Wait.
Wait. No.
I don't this is not the officialposition. I mean, I voted for
San Francisco, though. I don'tknow if I'll be in San Francisco
next year thinking about it. Butit is it is cool that, like, it
(03:00):
could be in Canada or Mexico.Like but do you think it's like
this is what, will determine it?
Like, right now, Canada is 96,and the the follow next
following is San Francisco at44, but this is like Slack
emojis.
Jonathan Hall (03:16):
Yeah. I'm sure
this won't be the the full
deciding factor, but I imagineit will heavily weigh into their
decision. One thing I really Ipulled out of this thread here
is though somebody asked, willthe will it no longer be called
GopherCon US? And the answer isit never has been called
GopherCon US. It's justGopherCon.
The US was sort of unofficiallyadded when other GopherCon
started popping up with theirown suffixes, which of course
(03:37):
led me to the question, what ifwe wanna have GopherCon on the
moon? Can we just call thatGopherCon or do we
Shay Nehmad (03:42):
have to have
GopherCon Luna TBD? I mean,
watching watching the streamingfrom the moon is gonna be kind
of annoying. Like, it's gonna
Jonathan Hall (03:49):
be even slower.
It it just you just set it up at
a sound stage so you can fake itall. That's how that works.
Shay Nehmad (03:55):
Oh. Okay. Again,
not the official position of the
Cup and Go show. Anyway. I don'tknow, but there are there aren't
there, like, considerations?
Well, actually, no. Like, caneverybody go to Canada or Mexico
from The United States?
Jonathan Hall (04:11):
Yeah. American
citizens certainly can. You
don't need a visa if
Shay Nehmad (04:15):
you go to the
place. For the rest of the
people, it's it's sort of thesame.
Jonathan Hall (04:18):
You're here on a
green card, then it would depend
on on your passport, what whereyou
Shay Nehmad (04:22):
can go. I actually
think that, maybe I'm just,
like, Bay Area pilled, but Ithink almost everybody is, like,
on a visa or on a green card oris, the the number of capital a
Americans I'm talking to on adaily basis is not that high.
Jonathan Hall (04:37):
I I do I do think
as a general rule, there might
be exceptions, but I think as ageneral rule, you can enter
Canada if you're allowed toenter The US And Mexico Unless
Shay Nehmad (04:45):
you hate unless you
hate ice hockey. Perhaps.
Jonathan Hall (04:48):
And Mexico lets
just about anybody in except
people from Central And SouthAmerica. It's kind of what I
understood from when I livedthere.
Shay Nehmad (04:54):
I do think it's a
consideration, though. Like,
they're probably not taking intoconsideration. I would, like, I
would definitely love to go toany of these places, including
the current GopherCon. I justwasn't able to.
Jonathan Hall (05:06):
I I I've already
told my wife I'm gonna try to go
to more conferences next year,and she said, okay. This one's
on my list. Whichever city itends up in, I I intend to go, if
possible. But I still hope it'sin Mexico just because the food
there is amazing. It's so muchcheaper there.
And I want an excuse to go backto Mexico, but whatevs. Let's
move on.
Shay Nehmad (05:22):
India. There's
another conference.
Jonathan Hall (05:24):
Yeah. I don't
speak any Hindi, so I'm not even
gonna try this one. Or or manythe other
Shay Nehmad (05:29):
languages speak the
Hindi because Yeah.
Jonathan Hall (05:31):
They speak a lot
of languages and and dialects in
India. But Gurukan India iscoming up September. It'll be on
my birthday. Yay. Oh.
In Jaipur. So I think we talkedabout this on the show a few
weeks ago, but it's a goodreminder. It's coming up in less
than a month. So if you're inthat area of the
Shay Nehmad (05:47):
world Speaker
lineup is up now as well. Yeah.
With all the talks, they lookgreat, man. The talks look
really good. There are a fewvery concrete ones, like,
crafting a custom Kubernetesingress controller for
intelligent traffic controlfrom, Rajani Ekunde.
She's a senior SRE at Okta.Literally, you take the person
(06:08):
working on the thing at the mostrelevant company and come tell
us how they how you do it. Thatsounds like pretty good.
Jonathan Hall (06:16):
Yeah. Should be a
good one. Maybe I'll do Gopher
Hunt India next year also. I'mnot doing this one. Oh,
interesting.
We'll see. You've been to Indiabefore?
Shay Nehmad (06:26):
I have not. A lot
of Israelis, tend to do that,
like, after the army, they'll dolike a
Jonathan Hall (06:31):
Oh, yeah.
Shay Nehmad (06:31):
Hiking, trip, you
know, backpacking through India
sort of thing. But I just, like,immediately went for the
finishing my degree and gettingthe apartment. This is actually
my big trip being in The US.Yeah.
Jonathan Hall (06:46):
Right. Right.
Right. I had the pleasure of
spending a week in Delhi back in02/2008, but it'd be interesting
to go back again.
Shay Nehmad (06:53):
I don't know if the
show can comp you, but as you
said, the the the show issupported by you. So if we get
thousands of Patreons, maybewe'll be able to support the the
flight thing.
Jonathan Hall (07:03):
Fly me to India,
please. Send me $3 a month.
Shay Nehmad (07:07):
For just $3 a
month. Yeah. Okay. I have a news
that they aren't actually newsy.It's more of a discussion.
Okay. So I've done some Go workthis week. I've tried to extract
text from PDFs.
Jonathan Hall (07:23):
Okay.
Shay Nehmad (07:24):
And I started doing
it with Go, search for like all
the Go PDF libraries and the GoOCR libraries because sometimes
PDFs, you know, the text is notcopyable, you have to do OCR.
Yep. And I didn't have a lot oftime to work on it. It's not
like a side project, it's like abusiness thing that I had to get
done pretty quickly. Mhmm.
Jonathan Hall (07:41):
So I
Shay Nehmad (07:41):
was like, I really
hope I could do it with Go
because my current setup is inGo. I couldn't I wasn't able to.
I didn't find good enoughlibraries. And the libraries
that I did find required, like,a ton of installations other
than the things I needed,specifically for OCR. So I
unfortunately reverted toPython.
I had to do it in Python. I waslike, man, is Python really the
(08:06):
thing for, doing data sciencerelated tasks like data
extraction and cleanup? My firstquestion to you, am I missing
something? Is there like anincredible Go data science
community that I should havegone to? Am I wrong?
Like, are you hearing the storyand saying like, oh, Shai's
wrong. He should have been ableto solve this in Go.
Jonathan Hall (08:23):
I mean, Go's too
incomplete, so you can do
anything in Go, right? I lovethat argument when discussing
the merits of various languagesand someone brings that up like,
Yeah, that's completely missingthe point. No, I don't think
there's a big data sciencecommunity in Go. Mean, we've had
some people on the show doingvarious data science y things.
Matt Topol with Apache Arrow.
(08:44):
We also had Ricardo Pinoccio onto talk talking about
interfacing Go with HuggingFace.
Shay Nehmad (08:49):
Yeah. Episode 65.
Jonathan Hall (08:51):
I feel like these
are all sort of, like, bleeding
edge. Like, they're just like,Go is still trying to to get its
foothold in that community. Idon't think you you've missed
the train. I don't think it'sthere yet. I think it's still
just trying I think it's stillpretty pretty new.
Shay Nehmad (09:05):
And you know what
happened at the end? I reverted
back to Go because Python wasn'tgood enough as well. And
apparently, LLMs are thesolutions to everything because
extracting text for PDFs and thePDFs I'm working with are, like,
slideshows, like slide So deckssort of they look nice and when
you look at them, you canunderstand them visually. But
(09:25):
when you just copy the text, ifthey use like, you know, some
sort of diagram where the textisn't read top, like left to
right, top to bottom, it justdoesn't make any sense. Like
right?
It's super garbled. Butapparently, you can send the
file to, GPT five now and justtell it, hey. Read it and
summarize every single pagecorrectly. And it just like
(09:45):
worked. I mean, it does havelimitations on the page or
whatever and I'm working throughthose right now, but I'm back to
go because it's just API calls,downloading files, handling
errors, perfect.
There's this blog post wementioned on the show, how to
use Go for AI, which is, hey,just call the API, it can
probably do it better than you.I had to go through an entire
cycle of trying to solve itmyself in Go, being
disillusioned, solving it myselfin Python and then being like,
(10:09):
AI overloads, you win. And Ijust use an LM for it now. So
now it's back to go. I justthought it was a funny tangent,
but I did go back to go toimplementing it, and there, you
know, it's just standardlibraries, HTTP stuff.
But I was disappointed that Iwas looking it feels like a very
basic capability, like extracttext and do some OCR. It's like
(10:29):
the first thing you do in a datapipeline, it can find a good
solution. I'm sort of putting myopinion here on the Internet,
hoping people will come into theSlack channel, which is also on
the go for Slack, hashtagcupago, and, like, correct me.
Yeah. And they'll discover howto do it.
Jonathan Hall (10:44):
Just post the
wrong answer on Reddit, and
you'll be sure to get the answeryou're looking for.
Shay Nehmad (10:47):
I could do a
complaining post on Reddit. We
just, moved one of those out ofour backlog. It's bit behind the
scenes. Why is Rust better fordesktop applications? If I'll
post like, why is Python betterthan Go for data science?
And some people tell me, oh,it's Turing complete and I like
the type safety. It's not what Iasked. Talking about the Go
(11:08):
blog, we mentioned the AI thing.You have one thing about testing
time.
Jonathan Hall (11:13):
Yes. Yes. I have
a half written script about this
topic, for a video I started onover a year ago before
Shay Nehmad (11:21):
I moved. Need to
finish that up. And we wanna
keep that one for next week.
Jonathan Hall (11:25):
Right? We're
gonna keep it for next week.
Yeah. Yeah. I'm gonna try toflush out my understanding of
this topic, which is spoileralert, test, the new feature
that was added in Go one twentyfour and made generally
available in 01/25.
I'm gonna try to spend some timeon this, hopefully, this next
week if I can to discuss it moreintelligently.
Shay Nehmad (11:46):
So we're putting it
in the future, but if you're
listening to this episode in thefuture, we may have already
talked about it. Confusing.Right? That's exactly the
problem this package is tryingto solve. You're, like, trying
to test stuff, but we'll talkabout it more in-depth next
week.
This week, we wanna talk aboutone of the blog posts they put
out, again, for one of the 1.25,one and a quarter features, Go
(12:09):
one and a quarter features thatthey put out, Containerware Go
Max Proc. So we discussed thisat length in the past. The go
the blog post really breaks itdown super well. So I'm just
gonna summarize it and I'll I'lldo it in a in a in a format I
think will will help youunderstand it. So Jonathan, do
(12:30):
you like doing work fast, likegetting things done and feeling
productive?
Jonathan Hall (12:34):
It depends on
whether I'm being paid by the
hour.
Shay Nehmad (12:39):
Okay. Okay. I know.
I know. I know.
But can you, like,
Jonathan Hall (12:46):
say yes? I'll say
yes. I yes. I'd like
Shay Nehmad (12:48):
to get
Jonathan Hall (12:48):
you so fast.
Shay Nehmad (12:51):
Man, I can think
this fast to, like, lawyer my
way out of all these edge cases.Someone's like, hey. Do you
wanna do a Go For Con in Mexico?And you're like, actually, Go
for Con doesn't have a countryon it, so can we do that on the
moon? Anyway, so do you likedoing work fast?
Yeah.
Jonathan Hall (13:10):
Well, I I will
say yes.
Shay Nehmad (13:12):
So if you had
multiple CPUs at your behest,
you would want to, like, all ofthem to work on things. Right?
Jonathan Hall (13:19):
Yeah. I'd love to
share my work across all of them
so they can all be workingsimultaneously and make things
done faster.
Shay Nehmad (13:24):
That is awesome. Go
has, of course, strong
parallelism, with green threads,so it's not the operating system
threads, and it can schedule,your work across, as many, Go
routines as you want. How manydo you want?
Jonathan Hall (13:42):
A a million.
Shay Nehmad (13:44):
Alright. A million
is gonna be a problem. Right? If
you can run a milliongoroutines, should you schedule
them to, a million differentreal threads? Honestly, you that
budget that much scheduling.
That much context switching,you're gonna have a lot of
overhead. Right? So there's a athing called GoMexprox. It's
been, I think, forever. I don'tknow since when it's been there,
(14:06):
but it's definitely been theresince I've used the language.
Jonathan Hall (14:08):
Yeah. Me too.
Shay Nehmad (14:09):
Which is like a
flag you put in the, like an
environment variable and you saylike eight, and then it's like,
okay, maximum processes you canhave running at the same time is
eight. And that's like a crude,but super, workable tool to do
that. If you have Go max procsat eight and a million runnable,
goroutines, Go will use eightthreads to run eight goroutines
(14:32):
at a time. Will not run, more.Right.
The reason that's so much senseis because goroutines often run
for a short while and thenblock. Right? They read IO from
the disk or wait for the networkor go to sleep or whatever, and
then you could switch to anotherthread. Very cool. If you've
ever used Go on Kubernetes,which makes sense, you would
want the same behavior, right?
(14:54):
You will want the program to usesome number of processes. And if
you don't put eight or whatevernumber, how how many should it
take? The reasonable answer ishow many CPUs I have. Right? On
my machine, I have seven CPUs.
You should run seven GoMex Pro.This is, super obvious, but this
(15:15):
was I think this was done beforeKubernetes and whatever. And
then Kubernetes came along, andyou're running, like,
containers.
Jonathan Hall (15:21):
Would make sense
considering that Kubernetes was
written in Go. Oh, you
Shay Nehmad (15:25):
know what? I
actually don't know. So
Kubernetes is I don't know howlong it's been. The GoMex
Proxing is there from from Go1.5. Really?
I thought it was earlier thanthat,
Jonathan Hall (15:35):
but okay.
Shay Nehmad (15:36):
At Go one point
five? That's basically Go one
point one. That's, like, superearly. No? Well, we're we're
figuring it out.
It doesn't matter, but yeah. Theimportant thing is Kubernetes
clusters tend to run on, like,huge ass servers and then, you
know, have smaller containersrunning on them. The default for
GOMX Prox was logical, CPUs. So,like, the physical CPUs with
(15:57):
hyper threading means which isbasically what you have on every
normal cloud machine that runsKubernetes workloads, counts the
number of cores the machine has.And in Kubernetes situation, you
have a a server with, like, 128available cores because it's a
really strong server, but you'rerunning on it containers where
(16:18):
the pods themselves, Kubernetespods, mean to be like small,
right?
A small server. Yeah. Then yourun them, you run into a problem
where you're you're spawning waytoo many threads than what you
expect. This is something I'vefaced, like, five times. I don't
how many times has this happenedto you?
Jonathan Hall (16:34):
I haven't noticed
it before. So I've definitely
run Go and Kubernetes before,but I so I probably run into
this, but it hasn't been anissue that we've noticed.
Shay Nehmad (16:43):
So for for me, both
in Reco, where we had Go on
Kubernetes, and in Orca, whereI, like, spearheaded, let's move
to Go on Kubernetes, I ran intothis issue twice, and I forgot
about it twice, and we had aproduction bug twice because of
this default. And I didn't even,like, contribute to the issues
or anything. I was just, like,bitten by it, and now they fixed
(17:04):
it for me, which is, I think youcan expect when working with Go,
the new default takes intoconsideration the container
environment by default. So ifyou're running inside a
container that has a CPU limit,like a pod with a CPU limit,
GoMaxRox will default to that.And then as an extra added
bonus, because you're running onKubernetes, a lot of systems do
(17:27):
like, a, increase my CPU on thefly.
Right? It's not actually movingto a new server. You're just
increasing the pod limits onthat server. Or more I guess
more normally what happens isyou you you schedule a pod with
a lot of resources and then,like, cloud cost systems try to
bring it down. You know what Imean?
You asked for two CPUs, butyou're actually using only one
(17:49):
0.1 v CPUs because your serverisn't doing anything because you
don't have any users. So, or forother reasons, maybe your code
is very efficient. So not notonly it takes the the container
environment max prox value, itperiodically checks and updates
that as well. So if you startedwith two CPUs and then
(18:11):
Kubernetes decided to auto scaleyou to eight, your Go program
will like on the fly adjust tothat, which is like a huge
feature to implement. If youactually had to implement
something like this yourself, itcould take you like a year.
Mhmm. Right? It's socomplicated. Yeah. And these are
the defaults of Go now, whichI'm super excited about.
So a brief point
Jonathan Hall (18:31):
of clarity for
the the history buffs among us.
Go max prox did exist before01/2005, but it had a default of
one. 1.5 is when it switched thedefault to the number of single
CPU cores in your system.
Shay Nehmad (18:45):
Nice. When was 1.5?
Jonathan Hall (18:48):
I don't know.
About a thousand years ago.
Shay Nehmad (18:52):
A million,
goroutines, a thousand years.
You're like,
Jonathan Hall (18:57):
2015. It's been a
while.
Shay Nehmad (18:59):
You know? I don't
know if it's before or after
Kubernetes. Oh, Kubernetes wasannounced by Google 2014. Well,
around the same time. We shouldhave, Joe Beta and Brendan Burns
and Craig McLookie in like, onthe show.
Let's do If you're listening tothe show, we would love to have
you on the show, inventors ofKubernetes. Or if you know them,
(19:20):
like hook them up with us.Anyway, GoMac Prox. It's a if
you are running Go onKubernetes, you should read this
blog post. But funnily enough,the only thing you actually need
to do is upgrade and everythingwill work out just fine.
And if you were using, the Uberthing, so I the way to solve
this in the past has been to useauto mexprox from Uber, which
(19:42):
was like a package that solvesthis for you. You just import it
and it does the behavior that'snow the default. You don't need
this package anymore, which I iswonder if they're gonna like,
you know what I mean? They'regonna put a notice on their,
read me that like it's notrequired anymore. I'll actually
I'll open that issue right now.
But, cool stuff. I I super lovethis feature. Honestly, it's
(20:03):
like these sort of things thatmake Go when people say Go is
like production or systemlanguage, this is one of these
things. Right? Yeah.
Like, it just makes you so muchmore focused on the things you
actually have to solve becauseyou don't mess around with these
settings. Absolutely. That everyhuman would know what they want
the default to be.
Jonathan Hall (20:21):
Cool. I think we
have a short lighting around,
but first let's talk about thatSpanish language stuff I talked
about. Not really Spanishlanguage stuff, but the stuff I
talked about in Spanish.
Shay Nehmad (20:30):
Yes. Da. No. How do
you say oui. No.
Oui is French.
Jonathan Hall (20:34):
Si.
Shay Nehmad (20:35):
Si.
Jonathan Hall (20:38):
Alright. AdBreak
time.
Shay Nehmad (20:46):
As Jonathan
mentioned at the top of the
show, this show is supported byyou. The easiest way to support
us is to well, not the easiestway. The most direct way to
support us is to join us onPatreon. We have a Patreon to
support the show. It's a hobby.
We do it for fun, but it'sexpensive, mostly for editing
and hosting fees. So if youwanna support us, you can. We
(21:08):
really appreciate our audiencefor staying and joining. This
week, we have a new, joiner. Wemay have mentioned you last
week.
I don't remember, CharlesCrouch. Thank you for joining.
And all the recent, joiners. Ifeel I feel like people enjoy
the new Cup of Gopher minisubscription layer. I do wanna
(21:28):
remind you if you havesubscribed to the show and
you're doing it using Apple,like your Apple device, don't.
Please do it through the webbecause they're just taking a
cut and it makes makes it moreexpensive for you for no reason.
Just go into your web browserand do it from there.
Jonathan Hall (21:44):
Tim Cook needs a
new yacht though. Come on.
Shay Nehmad (21:46):
I don't know. I
live next to all these people
now, you know? I mean, like,Zuckerberg and and Tim Cook and
all these people, like, myneighbors here in in the Bay
Area. So I don't I don't wannabadmouth them. Alright.
Jonathan Hall (21:56):
Well, we'll say
hi next time you see Tim.
Shay Nehmad (21:58):
If you wanna reach
this Patreon link or our Slack
channel or all the past episodesor all of the our swag store
with, hoodies and cups andwhatever. You can go to
cupogo.dev, that is cupogo.devto find all the things. And
finally, you can, email us@newsatcupogo.dev. Awesome. One
other way to support the show isto leave a review or mention us
(22:22):
on, like, lists and whatever onSpotify, Apple Podcasts,
wherever you listen to yourpodcasts.
We got mentioned on some listof, like, top 60 things.
Jonathan Hall (22:32):
Beadspot?
Beadspot, I think?
Shay Nehmad (22:33):
Yeah. I don't think
they actually listen to the
show. Think it's some sort of anaggregator, automatic
aggregator, but still nice ofthem to mention us. Thank you.
And if you're, like, an avidlistener and I just, like,
misread it, then sorry.
Let me know. You are looking forclients.
Jonathan Hall (22:48):
Yeah. You can
also sponsor me directly and
maybe more directly help me flyto India for GopherCon next
year. I'm looking for newclients. My contract that I'm on
right now is ending at the endof the month, September. So if
you could use some fractionalarchitectural work on your Go
project, hit me up.
Shay Nehmad (23:05):
Where can, we find
these, beautiful services? Yeah.
Boldlygo.
Jonathan Hall (23:10):
Tech is the best
place to find me.
Shay Nehmad (23:11):
Boldlygo. Tech?
That is boldlygo. Tech. And, you
know, there's a lot of greatcontent here.
Funnily enough, Cup of Go is notmentioned even once, like, on
the on your page.
Jonathan Hall (23:26):
Maybe I should do
a better job of
Shay Nehmad (23:29):
No. Supporting the
don't know. But the the there is
a Boldly You can do, like, a devsubscription, world class Go
development for a fixed monthlyfee. And with a bold claim,
talking about boldly Go, you'realready running my code in
production. Care to explain?
Jonathan Hall (23:50):
Well, yeah. I
have contributed a large number
of open source projects writtenin Go, including Go itself,
Echo, Framework, the Sentry SDK,Logris, if you're still using
Logris instead of SLOG, TORP,several and many that aren't
listed there, packages youprobably use that don't have big
brands behind them.
Shay Nehmad (24:09):
You could join,
companies like Unity, Canonical,
Deliveroo, booking.com, andTeamwork to run a Jonathan's
cloud in the back end, includingsome customer testimonials here
that say that there areunexpected outcomes. They should
have specified a positive.
Jonathan Hall (24:28):
Yeah. The
Shay Nehmad (24:30):
mentorship, that
Jonathan provided to engineers
that were newer to go, or theyimproved testability,
productivity, andmaintainability, of the of the
code base vastly improved.
Jonathan Hall (24:42):
Other unexpected
outcomes might include snarky
comments in Slack and and badjokes.
Shay Nehmad (24:46):
Yeah. So go do
that. Link in the show notes. If
your company could use that,that makes a lot of sense. Let's
go to the lightning round.
Let's do it. Lightning round.First of all, Dreams of Code,
who was on the show?
Elliot (25:07):
My name is Elliot. I run
the Dreams of Code YouTube
channel on YouTube, whichcreates video contents about
software development. I actuallyrun two channels. I also run
another one, which is a littlebit more focused on Linux, self
hosting, and open source, butDreams of Code
Shay Nehmad (25:23):
is my biggest one.
Has the command line
applications in Go course on hiscourse platform, which if you've
been following his YouTubechannel, he's like been building
everything end to end, like inGo and I think HTMX or whatever,
including the like, he did thewhole thing. So, you know, it's
like a a real labor of love froma a proper engineer working on
(25:46):
it. And there's an early birdoffer for the full course, $200.
$1.99.
$1.99. Yes.
Jonathan Hall (25:55):
Not sponsored, by
the way. We're not getting any
Shay Nehmad (25:57):
kicks Yeah. Back on
not sponsored. I just I looked
at, like, the lessons and howthey're structured, and I think
they are, probably really good.Like, it starts with, basic
introductions and using Go, andthe only place where you
introduce, like, the coolpackages on how to build like
fancy stuff is one lesson beforethe end, SQC and Bubble Tea and
(26:22):
whatever, which is exactly theway to do it, right? Learn the
fundamentals and then add thefancy stuff on on top.
Awesome. And I just, think it'sit's probably really, really
good. So it's it's currently,off. Actually, the early bird
ends August 2025. So you havethe moment you're listening to
(26:43):
the show basically to buy it.
Jonathan Hall (26:44):
Go
Shay Nehmad (26:44):
now. Seventeen
hours of content with 120
lessons. So I don't know. I Ithink it's probably pretty good.
Jonathan Hall (26:52):
Sweet. You know
what else is pretty good? I
can't remember what this isabout. Sequel Light. We we
talked about this show.
Think was it a year ago? We hada series of of episodes where we
talked about Sequel Lightbecause there were new drivers
coming out, and I think we hadthe author of one of them on the
show. But it's a good time tobring up again the GoSQLite
(27:14):
benchmark repository, whichbenchmarks a whole bunch of
different SQLite libraries inGo. Some are written in CGO,
some are written in pure Go,some use the database SQL
library abstraction, some don't.So there's a library there for
you no matter what your specificSQLite needs are.
Go check it out. Link in theshow notes.
Shay Nehmad (27:32):
Yeah. And the the
benchmark does state that
there's a a clear winner. SQN, Idon't know how they're maybe
SQN, is, like, definitely thethe fastest, which is,
interesting. It it uses, like,just STDIN directly into SQLite.
Jonathan Hall (27:50):
That's really a
curiosity to me. So it's talking
to the SQLite binary justcompiled in C over standard
input and output.
Shay Nehmad (28:00):
And somehow it's
the fastest, which is not what
you'd expect. So it's abenchmark, which is fastest?
What's the best one?
Jonathan Hall (28:08):
I would expect
the fastest one to be the one
written in Sigo.
Shay Nehmad (28:11):
So the actual
answer here is, this benchmark
is is smart. It takes a lot ofcases into consideration, but it
has a simple case and a realcase. The real case is like
insert a 100 users and then 20articles per user, then 20
comments per article, and then aseparate transaction, blah blah
blah. And there's no real clearwinner. It depends on the use
case.
It does seem like a SQN or SQNis pretty fast, and it's
(28:36):
interesting as well because ituses, only STDN. But this is
lightning round. We're not gonnago into details. If you need to
benchmark your SQLite, you canread this, you can take a look
Jonathan Hall (28:45):
at this
benchmark. Lightning fast
discussion about lightning fastbenchmarks.
Shay Nehmad (28:51):
Yes. And that does
it for our show for today.
Thanks for listening. Programexited. Program
Jonathan Hall (29:04):
exited.