All Episodes

June 16, 2025 • 13 mins

Don't forget to visit cupogo dot dev, where you can find links to all the things!

★ Support this podcast on Patreon ★
Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Shay Nehmad (00:00):
This show is supported by you. Stick around
till the ad break to hear moreabout that. This is CapaGo for
06/14/2025. Keep up to date withimportant happenings in the Go

(00:21):
community in about fifteenminutes per week. I'm Shay
Nehmad.
Due to scheduling issues, I'mdoing this episode alone. I
think it's the time I'm doingthe episode alone, so please
forgive me if it's kinda weird.I'll keep it short. No proposals
today, just a few projects andsome lighting round things to
keep the good stuff like, youknow, proposals and the

(00:43):
interesting discussions for theepisode with, Jonathan, which
should come out towards the endof this week. Kicking it off
this week, a lecture by Ezo Salafrom aura.dev, which I saw, on
YouTube.
The link is in the show notes.How they built a rock solid
agentic orchestration with Go.So if you're into like all the

(01:04):
AI features, it it agenticworkflows, automating your
entire life end to end and allthat stuff, Orad. Dev built
their own system to orchestrateall these agents. It's a very
high level overview, just likequick fifteen minute lecture,
but it was interesting.
It's all in Go. But like always,the Go part is very simple. Just

(01:24):
showed a few structs and themain part was the data
engineering behind it.Basically, as I was saying,
let's assume you're past all theagent problems, like prompt
engineering, unstable resultsand whatever, but you have a few
agents and you wanna like herdthem to actually perform a task
together. They have one agenttalking to system x, one agent
talking to system y.

(01:46):
So let's say you have theseagents and you got past the
prompt engineering and theunstable results and whatever,
there are quite a lot ofdistributed systems problems. If
you have one system talk oneagent talking to system a and
another agent talking to systemb. What Aura developed and as
always like demoing through thelecture is that they had to
develop like a babysitter, forall these agents. They built

(02:09):
something called a plan engineand, you know, it was went
through a few iteration. Themain, like, insight of the
lecture is that they landed onusing a concept that already
exists called an immutableappend on the log, which is
exactly what Kafka uses underthe hood to, like, store
messages.
If you read the book, DesigningData Intensive Applications, you

(02:32):
know already what the solutionmeans. And if you don't if you
didn't yet, I recommend it. Ialso have notes about it written
down somewhere in my blog. Whydid they choose an append only
log? So it's good for atomicoperations and if one of the
agents like goes haywire, theycan sorta reboot it and it can
read everything that happened inthe plan so far and like rebuild

(02:55):
the state from scratch.
There are cons to this approach,of course, which Ezreal goes to,
and there's like a live demo.It's kind of funny because all
this, like, incredible agentictech, but the way to show the
demo was to take the lapel micand put it on the laptop while
displaying the video. But Ithink it's an interesting take
on, like, a dev toolkit forresilient AI workloads. If

(03:17):
you're struggling with thatthing as well, this lecture
might be a good fit for you. Andagain, link in the show notes.
However, if all these AI agenticsystems, whatever are destroying
your website, there's a newproject that's really, really
trending on GitHub with the besttagline I've seen in a while,
Anubis. The tagline being, weighthe soul of incoming HTTP

(03:38):
requests using proof of work tostop AI crawlers. It's a really
early stage thing. You know, youopen the website and it's like,
this is all placeholder text. Itwill be fixed.
Give me time. I am one personand my project has unexpectedly
gone viral. So sorry, Techaro.I'm gonna send a few more people
your way. But it's a go projectwhere it's a Web AI firewall

(04:02):
that tries to, like, block bots,AI bots, you know.
And if you host your own webinfrastructure, you've probably
seen an uptick in the, like, asdescribed in their readme, the
endless storm of requested floodfrom AI companies. It's pretty
lightweight. And according tothe readme, it's a bit of a
nuclear response. Like, it'llblock good bots as well. Your

(04:25):
your definition of good bots mayvary, but for example, the
Internet archive, alwaysconsider a good bot because it
prevents like link rot and oldblog posts and old content that
I, don't have access to anymoreis still there on the Internet
archive, which is great.
I've just used it this week, butit might like block that as
well. And, yeah, it's been goingpretty viral with, I don't know,

(04:47):
8,000 stars. I I think half ofthese are because of the name
and the tagline. Just weighingthe soul of incoming HTTP
requests to stop AI crawlers issuch a thing that's easy to
connect to. When you open awebsite, it's gonna like show
you the like loader that checksif you're a bot or not, which is
nice.
Under the hood, it uses multithreaded proof of work to make

(05:09):
sure that users' browsers are,like, not, an AI browser. I
haven't looked into the code tosee how it works, but it seems
like a cool project. Mostly gounder the hood. There's some
JavaScript here as well, ofcourse. So if you're pro AI,
lecture.
If you're anti AI, tool. Kind ofhard to do all these segues

(05:29):
without John, but I'll keep ontrying. There was a post on
Reddit. It's about sixteen daysold now, but a pretty cool
project that seems super useful.Go dump.
So I've been using a SPEW to,like, pretty things that I need
while testing or developing athing. Very useful for, like,
CLI tools, mostly for debugging.It's just nice to be able to

(05:51):
dump a struct into the, youknow, standard output and see
what it does or send the errorin case of logging. However, the
default printing in fmt dotprintln or printf leaves a bit
to be desired. I used to reachfor a go spew, which implements
a deep three d printer for, youknow, just to aid in debugging.

(06:12):
Obviously, it's really best to,you know, just have a debugger
and debug it, and you shouldn'tdefault to log printing as your
debugging, method of choice.Like using a debugger is a skill
and it's worth knowing, butsometimes it's just not
practical. Right? You're runningon a server, the thing only
happens on the server and youcan't, attach a debug, you know,

(06:34):
there because of production orany other reason. Sometimes it's
also just nice to printsomething to dump the state.
So I used to, use GoSPUE andhonestly, I'll probably still
reach to it just out of force ofhabit. However, this new,
library seems super nice. Like,it prints things really well

(06:56):
with, you know, colors. It dealswith all the types, slices,
arrays, maps, like nested typeslook really well. It just looks
really, really, really good.
Like, it's the perfect outputthat I would, like to see. Also
includes, like, field inspectionand reference tracking that
doesn't go into cycles andescapes control characters.

(07:18):
Like, it deals with everything,including time. So next time you
need to print something fordebugging, I would consider
GoDump from Go four g. I'vetried it.
It's pretty and I've tried itand it's pretty good. One other
GitHub project I wanna shoutout, is very low level tool,
that asserts that your Go toolis in line and, like, bounce

(07:39):
check eliminated. It's called gc assert. If you're, like, super
crazy about a performance of aspecific thing and you wanna
make sure that, you know, thatthe compiler does something,
it's sort of hard to validatethat. On the other hand, you
might only wanna do it like, youmight only wanna look at the end
performance and not at specificcompiler decisions because,

(08:00):
like, why would you care?
But if you wanna make sure thatsomething happens, you can use
GCA cert with a directive likeGCA cert inline. It's like a
comment you put in your code andit will cause GCA cert to fail
if the line is not inlined orlike bounced checked. So it's
sort of an assertion that the Gocompiler does what you need it

(08:23):
to do. You can use it as anexternal binary, which to me
makes more sense. But you canalso use it as a library.
So you can like import the GCScert and run GCS cert on
something. So if you want to runit as a unit test or an end to
end test as well, you could dothat. Other directives this
package offers is our BCE and noescape, which are slightly more

(08:46):
complicated and I think won'tcarry very well over audio. But
the readme includes examples.This is very useful for low
level performance optimizationsor assertions, and it's from
Jordan Lewis, the director ofengineering at Cockroach Labs,
so CockroachDB.
So it stands to reason that, youknow, Cockroach team are using
this tool to, like, implementand improve the performance of,

(09:10):
CockroachDB. It seems like thesort of tool that comes out of a
postmortem. But if anyone fromthe cockroach team is listening
and wants to shine some light,we would love to have you on the
show for sure. That does it forthe projects I want to cover
this week. Forgive me, doing theshow alone is very hard.
Let's move to the ad break, andafter that, we have a short
lighting round. This show issupported by you. If you wanna

(09:39):
help support the show, pleasesign up on Patreon as a Cup of
Gopher or a Cup of Gopher mini,which is cheaper. The show is a
hobby. John and I do it for funand to learn about Go and to,
like, stay on top of things inour actual careers as software
engineers.
It's an expensive hobby, mostlyfor because of our time and

(10:00):
editing fees and hosting fees.Trust me, you do not wanna
listen to this show unedited. Soto help like offset these costs,
we really appreciate our Patreoncommunity for, just chipping in.
This show is useful for you andyou have some free funds. We
would appreciate you chippingin.
If you wanna find that link toPatreon or anything else,

(10:20):
including our swag store, whichwent down as the entire Internet
went down this week, but I Ichecked it and it's back up. You
can find everything atcupago.dev. That is cupago.dev.
If you wanna talk to us, you canjoin the Go for Slack, hashtag
cup - o dash go, or email usnews@cupago.dev. That is
news@cupago.dev.

(10:42):
Other than directly financiallysupporting the show, I wanna
give a new light on another wayyou can support us. So if you
are a content writer or the sortof person who doesn't, leave
reviews very often, I wouldstrongly recommend for you, if
you wanna help us promote theshow, of course, to leave a
review on Spotify or ApplePodcasts or wherever you blog.

(11:05):
Why is that important? It'simportant because AI crawlers,
which we've, spent a few minutesdiscussing in the beginning of
the show, tend to scrape thesesources to recommend, you know,
people like all theserecommendation engines, but also
specifically if you go intoChatGPT right now and you write,
hey, any good sources for Gocontent? So it will help Cup of

(11:29):
Go, you know, like stand out.
And we're trying to do the showpretty reliably every week and
bring pretty good stuff. So Ihope this will work. Let's do a
live experiment. I have a veryloud keyboard, but let's see if
it works. What's a good sourcefor GoPodcasts?

(11:50):
So I'm just asking four o rightnow. It's searching the web. Go
Time is number one. Of course,they have a ton of,
listenership, but I thinkthey're done already. Go
Podcast, by Dominique Sapir isthe and Capago is With kind of a

(12:13):
weird, quick fifteen minuteweekly updates and Gil Op Go
community news with interviewfeatures, newer but frequently
updated.
So, you know, if more peoplewrite about us and about the
show, it'll get into moretraining data, which is like the
new SEO. Right? So I don't knowif that encourages you or
discourages you, but we wouldsure appreciate it. Getting more

(12:36):
people into the show is alwayssuper nice. That does it for our
ad break.
Thanks a lot for listening. Thisweek's episode's kinda rough.
It's just me. But let's do aquick lightning round, close it
out, and then wait for Jonathanto be back next week. Lightning
round.

(12:56):
Just one funny item for thelightning round on Blue Sky,
Andreas Eckert found thefollowing function, is lit or
single. I am neither, so Ithought it was funny. It's a
function that in the h t p s t dlib that reports whether a
segment is non dollar literal ora single wildcard. And it's also
unused, which is really weird.And one side quest I'm taking

(13:21):
from this post is to try anddelete this function and see
what will happen because it'sunexported and unused.
Seems like we can just delete itand I'm probably missing
something. But I'll I'll openthat issue as a follow-up and
try to delete this unusedfunction just to, you know, do
some contrib. Let's see how itworks. And I'll keep you all
posted about that. Thanks a lotfor listening this week.

(13:44):
Program exited. Goodbye. Programexited. Goodbye.
Advertise With Us

Popular Podcasts

Stuff You Should Know
Dateline NBC

Dateline NBC

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

On Purpose with Jay Shetty

On Purpose with Jay Shetty

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

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

Connect

© 2025 iHeartMedia, Inc.