Podcasting 2.0 for May 9th, 2025, episode
220.
Blame the box.
Hello, hello, hello, friends and countrymen.
Welcome to the official board meeting of Podcasting
2.0. This is where we talk about
all kinds of stuff, and also about podcasting.
It's unbelievable.
We are a boardroom, and we're one that
never signs an NDA because it's in our
DNA.
I'm Adam Curry, here in the heart of
the Texas Hill Country, and in Alabama, the
man who can build an onboarding process sooner
than only fans.
Say hello to my friend on the other
end, the one, the only, Mr. Dan Jones!
But not nearly as profitable.
Well, there's that.
The billion-dollar gorilla.
Is it fun?
Is it fun doing the onboarding process?
Okay, maybe I should define fun, yeah.
I wouldn't say fun.
Yeah, but it's something you hadn't done before.
It's a challenge.
Yeah, I mean, I've done it with stuff,
you know, for, like, things that don't really
matter that much.
You know what I mean?
Like, you know, okay, I've got this web
thing, and there needs to be a way
to sign up for something, but, like, the
index, in API accounts, stuff like that, where
it's like, okay, I just need to take
an email address, generate you a password, email
it to you, and then I'm out.
You know, wipe the hands.
In an ideal world, that's exactly how it
should go.
Yeah.
Yeah, I got you.
Like, when it actually matters to get all
the details right, and you're thinking about security,
you know, and you're thinking about the 8
,000...
Things that can go wrong.
Mm-hmm.
Keeping in sync with Stripe, making sure that
you don't, that you are resistant to the,
you know, 10,000 bots that are going
to try to credential stuff you on a
daily basis.
It's just all of that, and then it
also has to be, you know, like a
screen that makes sense when you're selecting your
product or whatever that you, that it's clear
and it's...
And it doesn't screw up on multiple screen
sizes.
It's just, I don't know.
There's parts of it that are interesting, but
a lot of it is just kind of
tedium, you know.
I got you.
Thinking like a person who wants to hack
you.
And then trying to not be, you know,
and then trying to thwart yourself.
Oh, yeah.
You are low energy today.
I'm very low energy.
I am beside myself.
I'm beside myself with anger and grief.
Anger?
Is this a, is this...
I'm going to assume this has something to
do with vibe coding.
Yes.
You assume correctly.
I feel you slowly hitting a wall.
Oh, no.
I hit the wall three weeks ago.
I've been just going on pure...
What's the term?
Just drive.
I have to say, AI sucks balls.
The more, the more...
Every single...
I've been working on this for hundreds of
hours, Dave.
Hundreds of hours.
A long time.
Hundreds of hours.
And no matter what I do, it gets
it 80%, 75% there.
And then when you start to tweak stuff,
it creates spaghetti.
And it can't even figure out what it's
doing.
I think that this one simple script is
now 2,500 lines.
Yikes.
That's a lot of lines.
It's ridiculous because it tries all this stuff
and it's got all these try traps and
then you say clean stuff up and everything.
AI is stupid.
Stupid.
100% stupid.
I'm really, really frustrated.
Because I've tried LiquidSoap, FFmpeg, ISIS, Butt, MPD,
and it always runs into the same trouble.
It just can't understand just some basic logic
without...
When you go into debugging, it builds crap.
It's like the initial script is like, oh,
this is going to work.
And then the minute you start to say,
okay, let's do this, then it goes to
crap.
It goes to absolute crap.
Getting...
This is not what I do.
I mean, obviously, this is not what I
do.
And so I can see what code is
doing, but once you're beyond one page, I'm
like, okay, now I'm kind of lost.
And I can look at a code block,
but how it all fits together, and then
just all these try-elts, like, oh, no,
no, no.
You saw the code last week.
It's twice as big as that now, and
it still doesn't work.
Basic concept.
Is it better?
Is it better at all?
No, no, not at all.
It just keeps getting worse.
It's like entropy.
It's pure entropy.
It just keeps getting worse.
I mean, I got up yesterday morning, 5
a.m. I'm working on this until basically
9.
I'm like, okay, I got to get my
No Agenda stuff done, which is really two
hours longer than I would have gone.
Right after the show, I work on it
until past midnight, and still it doesn't work.
So I recognized this obsession with you a
couple of days ago.
I began to see that it was becoming
unhealthy.
It's beyond unhealthy.
Just the way that you were, the timing
of the signal messages I was getting from
you, and the language choice you were using,
I'm like, no, this is in his head.
It's got him.
It's got his hooks in, and this is
not going to end well.
No.
I've been there.
I've been there, brother.
And it's so bad, because you get pulled
into a false belief that you're almost there.
Just one more iteration.
And of course, this is podcast episode, so
I'm sorry, James.
I've been using Pod News.
Pod News is the perfect test feed, because
it's got everything in there.
This is probably IAB certified downloads.
Oh, yeah.
No, I'm not IAB certified.
So it's perfect.
And the episodes are three to five minutes.
So if I'm looking for a transition in
between episodes, I'm looking for metadata to update,
all that stuff is perfect.
Bro, it's insane.
It is absolutely insane.
I don't know what to do.
I mean, this should be a hundred lines
of code.
Really shouldn't be all that difficult.
And yet.
You know what I forgot to do?
Oh, crap.
I forgot to tweet.
What did you forget to do?
Did you forget to tweet and toot?
I forgot to send out the things.
Yeah.
I forgot to send this live, so there
you go.
That's my fault, too.
But this gives me a chance to test
Nathan's fix.
Yeah, so all of this bitching and moaning,
no one needs to know about.
No, I don't think it's fixed.
He fixed it.
Did he fix it?
Yeah, he said he fixed it.
Oh, okay.
We're about to find out.
It looks like.
So now this is interesting.
Let me put that in there.
Oh, this whole server is not even responding
now.
Oh, that you're.
My Linode, yeah.
Yeah.
How do I reboot that sucker?
Let me see.
I can't even SSH into it now.
That's interesting.
Not undefined.
Reboot.
There we go.
Reboot that sucker.
Oh, man, man, man.
All right, I'm going to paste this.
So, yes.
I'm going to paste this into the Mastodon.
We'll see if it's undefined.
Is it undefined?
Release the code.
Chad, I wouldn't want anyone.
I don't even want to.
I'm embarrassed to even send this to anybody.
This is crazy.
We are not undefined.
Yes.
Oh, we are defined, baby.
Nice.
We're defined.
Nathan, good job, brother.
We exist.
Yeah.
That's good.
It's good.
Nice work.
So.
So, you noticed my unhealthy obsession.
I guess it kind of came through.
Yeah, and I was.
So, I've dabbled with a little bit of
vibe coding on the GitHub using the GitHub
bot.
Oh.
And kudos, Nathan.
Good job, brother.
We're now fully defined.
Thank you, brother.
So, here's what.
My first go at this was to.
I've been building, and we can talk about
this for a little while.
Yeah, okay.
There's nothing else in my mind.
There's nothing else going on in my head
but this.
I've been building this, you know, as I
have opportunities building this new parser, the new
speed parser for the index.
And this is what it's like at the
beginning of any new project, and this is,
I'm going to emote you right now.
Do I want to hear this?
Yeah, this is the way these things start.
Whenever you start a fresh project, a fresh
coding project, you have all these dreams about
what it's going to be.
And one of the, you know, you think,
you have an initial sort of sketch in
your head of the way this thing is
going to work, and you see it all
so clearly.
Oh, it's never been clear in my mind.
I mean, I can literally flowchart this thing
just right now.
I can tell you exactly what it needs
to do and how it needs to do
it.
This box, by the way, kicked me out,
and now I can't even log back in,
reboot it and everything.
Maybe the box was bogus.
Does that happen sometimes?
Blame the box.
That's a good one.
Blame the box.
There we go.
It's the box's fault.
That's valid.
I mean, you got, you have valid all
out, you know, you have outs here.
You can blame the box.
That's okay.
How about, I'm not a software engineer.
How about we start there?
Anyway, I interrupted your story.
I want to hear what you have to
say.
I honestly, I honestly think that has less
to do with it than you, than you
may feel.
Because I mean, it's obviously got something to
do, but I don't know that it's the
big, I don't know if it's the biggest
issue.
Because like, so you flow chart this thing
in your head and it all makes perfect
sense.
And if you could just stop there and
never write the software, it would be perfect.
In my head it works so, I mean,
I can describe to you exactly what it
does.
You ready?
Okay.
Yeah, please.
You parse an RSS feed.
In this case, it happens to be feeds
.godcaster.fm slash player underscore three dot XML.
I'm doing this from memory, by the way,
I don't have to look at anything.
You parse the feed and you're going to
download, you're going to download everything that you
don't already have from that feed, because believe
me, streaming URLs and stuff, that's a death
trap.
If you want to restream something you're downloading
at the same time, you're going to run
into trouble.
So you might as well just download them
and create a cache.
I'd rather have two terabyte drive than deal
with that nonsense.
That was the first three weeks until I
discovered that just is not a good idea.
I'm sorry.
You're going to get some of that by
the way.
So then you want to start streaming these
to an IceCast2 server.
You want to start streaming them with the
correct metadata.
Now, the metadata you're sending to the IceCast
server has to have a server name.
That server name needs to come from the
title tag of the channel of the RSS
feed.
You with me?
Gold.
Okay.
So that, that's one right there.
That is, that is, that's about five days
because you got to, you got to parse
that out.
Okay.
So that kind of works.
That's, that's working.
Now, if you do not have any, what
I call interstitials in your little folder, by
the way, it creates a folder and everything
and assets and you know, downloads everything by
player underscore number name.
Say what an interstitial is.
So that's between show one.
So in this case, pod news is a
test, but I don't want to use pod
news.
I want to use the real feed.
So you may get Fox news hourly report,
which is five minutes.
And then the next, and this, by the
way, you have to sort it by newest.
So you want to send the newest thing
out.
And then in between the first and second
item in the feed ordered by newest in
pub date, you have like a, you're listening
to Adam's funky, fresh feed to stream.
Yeah.
Okay.
And you can have a whole bunch of
those.
You want five of them.
So you're creating a playlist, right?
The minute you download everything, you're creating a
playlist.
And in between each of these MP3s from
the, from the RSS feed, you're putting an
interstitial.
If you have no interstitial, you use a
default and there's no funky, fresh mixing.
Just play one to the other.
I don't need any crossfades.
I haven't gotten to that yet after 200
hours.
So you still with me?
Right.
Okay.
When the second file play or actually whenever
any file plays, reparse the feed, see if
there's anything new or if anything has gone
away.
If it's gone away because it dropped off
the feed, clear it out of the cache.
If anything new has come in, download it
and queue it up next.
So rebuild the playlist.
So if I'm listening to Fox News business,
a Fox News report, and the minute that
starts to play, parse the feed, nothing new,
boom, okay, get the interstitial.
You go to the next one, which is
the daily minute, whatever it is.
When the daily minute plays, check the feed
again.
Is there anything new?
Yes.
Ah, there's something new.
Download it.
Rebuild the playlist.
Schedule that to play next and then keep
going.
And repeat.
And then when you get at the end
of whatever, how many ever files are in
this playlist, start over again.
But the key is you have to check
and really, I mean, I went down a
massive rabbit hole trying to check like 10
minutes before, you know, or five minutes before
the episode ends.
Yeah.
That's, that's a lot of fun.
You get those, you get, that sounds not
good.
No, like FFMPEG is going to try and
figure out how long that is, how much,
I dropped all that.
Just give me the basics.
And that's really it.
And please make sure the metadata that you
send is correct every single time, which is
95% of the time, the MP3 files
are done properly and you can get it.
By the way, you're going to encounter all
kinds of crap in these MP3 files, like
images.
You got to ignore all of that.
Okay.
I can get past that.
But then you just get into the intricacies
of these, these streamers.
These FFMPEG is basically a huge pile of
elephant crap, just jammed together with all this,
all these bits and bobs and the dependencies
and all that.
And I've tried it as a bash script,
as a PHP script, as a Python script.
And initially everything will start to look great.
The minute you add some logic, it all
falls apart.
It just all falls apart, completely falls apart.
So that's, that's really all I'm trying to
build.
It doesn't seem like a huge thing.
If I had, if I had to imagine,
I would think that this thing that you're
trying, that you just described, I would have,
I would guess just off the cuff, depending
on which language it is that you're looking
at with thorough error handling and edge case
handling and all that, probably 2,500 lines
of code.
Well that's what AI has eventually created.
But really when you, so this is interesting,
this box is just not letting me in.
That's interesting.
I wonder, I wonder if, I wonder if
half of the problems were the box just
freaking out.
What happened to the box?
So it's, it's Linode for CPU cores.
You should be able to get into it
through a LISH console.
Okay, LISH, so I got, what's a LISH
console?
It's just a way to get into the
actual console, like a, like a, like as
if a monitor was attached to the, to
the box.
Okay.
Like you can see what's actually on the,
the output screen of the VM itself.
All right.
So I just got it.
Oh, that's interesting.
LISH.
Okay.
So I do my password and, and try
again.
Does it have a different, does it have
a different password?
Does it have a different password?
It should be your root password.
Oh, I see.
Yeah, let me paste that to you in
the, in the boardroom so you can see
what my root password is.
Yes, please do that.
Please share, share with the, share with the
class.
I mean, I would think that this, and
this is what I was kind of getting
at earlier is all these things, when you
first describe them, they are straightforward, but it's
all the stuff that go, it's all the
little gotchas and edge cases.
That's where you get, that's, that's what, yes.
Well, but honestly, Dave, it's, it, even without,
that's why I love the pod news feed,
because it's consistent.
It's consistent.
And then the minute I just try to
add some little different logic into it, it
just falls apart.
I mean, the AI, and I've tried them
all, none of them can successfully complete it
beyond, as I said, like a 75%
success rate of it working.
And all of them just create bundles and
bundles of code.
When you get to the point in, in
a, in a browser with your AI, where
it says, there's too many characters for me
to output.
I like that one.
Yeah.
It's like you're, you're over the token limit
or whatever.
Yeah.
Did you, did you see what I got
yesterday where it said, I apologize.
I apologize.
It wasn't a little apologizing to me.
Yeah.
It was telling you a sorry over and
over again.
Yeah.
So it just, it just doesn't seem like
a horribly difficult thing to do, you know?
Well, so what I asked the GitHub, I
was, I was building this, this new parser.
What I asked the GitHub agent or AI,
whatever you want to call it, bot, is
initially I say, so I've got a working
sort of framework for this parser and I've
had it for a, you know, for a
few weeks and haven't had a lot of
time to devote to it.
So I've just, so I was like, I'm
coming back to it now.
And I was like, okay, the, what I
want, what I would like to see is
if what I have done so far, cause
I've got a lot of, I got a
lot of, uh, hopes and dreams for this
thing.
It was just like anybody does at the
beginning of a new, of a new project.
My hopes and dreams have been dashed.
Your hopes and dreams are for it to
just not lock up your box.
Yeah.
I'm actually, I'm just deleting it out of
spite.
I'm just, I'm just done with it.
I'll start a new one.
You're deleting the whole VM?
Oh yeah.
I deleted it.
Man, nuke it from orbit.
Oh yeah.
I'm, I'm, I'm done with it now.
That's okay.
Oh, you, now you see, now you're in
the jaded phase.
What comes next?
Please tell me what's next.
What is the next thing that will happen
to me?
What comes next is a signal chat.
Hey Dave.
That's what comes next.
No, no, no, no.
See, that is exactly, exactly what I don't
want to get to.
That is...
You're resisting this.
Yes.
Oh no, it's, it's, it's not going to
happen.
It is not going to happen.
Um, so, you know, one of the, one
of the goals I have is for this
thing to be modular.
Yeah.
Like a few years ago, uh, you know,
our main parser that's still in, that's still
working now is, uh, the party time parser.
Mm hmm.
And, uh, so then we had, I forget
exactly how this came about, but right.
I ended up giving off the source code
to Ryan Hirsch.
Well, I mean, it's public source code, but,
um, Ryan Hirsch got it and ended up
making some improvements to it and, uh, and
started using it for podverts.
Mm hmm.
For their, for their ingestion system.
Well, then his version of party time just
became an, uh, really an entirely separate thing
because I'm terrible at JavaScript and he's really
good at it.
So he, he really just kind of like,
you know, morphed it into an actual good
piece.
Now, why is JavaScript the preferred language for
that?
Now that I'm an expert in multiple languages,
I have actual curiosity.
I don't think it is.
You're not going to get an argument like
that from me.
I, I, I'm right.
The new one is written is I'm writing
is in rust.
I'm, I'm frustrated with the overhead of node.
Uh, node JS as a parser is just,
I just don't, I just don't like it.
I mean, some people have a completely back
-to-back node.
Some people love that stuff though.
I mean, like, I guess it's like anything
you like Greer, you like Gouda, you like
Swiss.
Gouda.
I think some people like, well, some people
are really, are pretty good at JavaScript.
Is anybody really good at JavaScript?
I'm just saying pretty good at Java.
Some people are pretty good at JavaScript.
And then they like, they like to have
their entire universe be in JavaScript.
Yeah, sure.
And that's, that's understandable.
But I mean, like I've been bouncing around
between 10 different languages my whole life.
So it's not a big deal.
Um, so I, I don't think that, that
it's the way to go.
And, and the fact that I wrote it
in JavaScript so long ago is annoys me
too.
So this is a whole fresh story.
Old stuff.
Like, oh, I can't believe I did that.
Yes.
And so one of the things that's, so
one of the things I like about what
Ryan Hurst did was he made it, he
made it very modular.
So you, it's very easy to just plug
in a new tag.
Each file, like each, I think each tag
is like its own file in the source
code.
He's got it all nice.
And, and it's just so elegant.
Sexy.
The way that it's laid out.
He's done it sexy.
Very sexy.
And I'm like, well, I want that here.
I want, I want that here too.
I'm going to make every tag a module
and, and, and that I can import and
all that kind of stuff.
And, um, thank you Bowler.
So then, um, so I've, I've got, I
had a lot of it laid out and
it's still pretty, uh, still pretty, you know,
pretty, pretty fresh and new.
And so I'm like, okay, I'm going to
stop and I'm going to ask GitHub AI
bot thing.
What, what is the actual name?
Because we got to give names to these
things.
So when we're cursing them out.
Oh, Copilot.
Copilot.
Oh, Copilot.
Have you tried Copilot?
Is that one of the ones you use?
No, no, no, no, no.
Cause I'm, I mean, GitHub is, is, I
understand what GitHub does.
It's never worked for me.
I'm always confused.
Where's the issue?
Where's the comment?
Where's the thing?
Then it's one time it's in a dropdown.
Then it's in a tab above.
Then you want to download something.
No, you need to go to the sources.
You go to raw.
I mean, I'm raw dogging the code, baby.
Now you're, you're, you're right about it.
GitHub is a mess, but.
Okay.
Thank you.
I feel much better about myself knowing that.
Yes, it's a mess.
What are you doing?
I had to put in my two factor.
Oh, your T2FA.
My 2FA.
I'm going to say, I think I'm trying
to get into the Copilot.
Yeah.
Okay.
So Copilot is just GPT 4.0. And
now it doesn't do autocompletes.
And by the way, please do not email
me with all your fantastic tricks that you
do with AI.
Because it all sucks.
Everyone's like, Oh, if you just do it
this way, it works.
And especially Brian of London love you.
No, I don't need to know.
I don't need to know.
I'm giving up on this.
I'm going to, I'm going to do it
in basic.
So what I said, what I told, I
said, I said, I said, write me a
rust.
This is the, I'll save that for later.
Write me a rust.
I said, write me a rust program.
And I gave it out.
I gave it the most explicit detail.
Write me a rust program.
I've been down that road.
Yeah.
Okay.
Explicit.
Yes.
Write me a rust program that will take
a, a podcast RSS feed.
Extract the items from it.
And I said, extract the channel data and
the channel nodes and the item nodes from
the feed and convert those into, into SQL
insert statements.
Seems straightforward enough.
And, and output those to the console and
write those statements to the console.
And then I said, be sure to include.
And then I gave it a long list
of tags, title, description, image, GUID, podcast location,
podcast person, blah, blah, blah.
Well, what it gave back was a main
function with the beginning of something.
And then just stop.
Yeah.
That was it.
It just basically just, it just barked.
It couldn't.
It did.
It's like it started.
It said, here's, here's the thing you asked
for.
And it's, it opened a main function and
then just closed it.
It's like, I just gave up.
It was like, dot, dot, dot.
I don't think I can do that.
So it just stopped.
So then my next iteration of that was
I was scaled my instructions way back.
And I just said, write me, you know,
a Rust program that will extract items from
an RSS, from a podcast RSS feed and
insert those items into a table with SQL
insert statements, output it to the console, something
like that.
This time it worked fine.
And it does, and it, and it compiles
and it runs like a champ.
But it is way, way less, like, it's
just, it's like, take, I want you to
take this thing and do this other thing.
Yeah.
And it's like, with each one is only
one step.
Like if you start to give it more
than one step, it really does not like
that at all.
Oh really?
So if you give multiple commands in one
go, it's actually tougher?
Yeah.
And if you say, be sure to.
Oh no, no.
But when I catch, when I catch myself
talking to like a human being, I get
up, I walk around outside.
I'm like, I got to stop this.
You walk the dog.
I mean, when I'm actually all uppercasing to
the AI, I know I'm in trouble.
I know I'm in trouble.
You mother.
It's like, yeah, yeah.
That's not, that's not going to respond.
That's probably why I started apologizing to you
so much.
Because you berated, berated.
Like the reason I did this was the
point I'm trying to get to is.
I think really what this stuff is useful
for.
Is kind of a.
Code checking yourself against some.
I hesitate to say best practices.
But against sort of some popular ways of
doing a thing.
Because what this, what these code bots are
trained on.
Is everybody else's code.
Well, and you know what?
The universe is full of crap code, man.
Oh, it's full of garbage, you know, and.
But, but GitHub has tons of good code
on it too.
And so if you say, you know, right.
Write a Python script that downloads a file
from the Internet.
And then.
Displays it on a, on the app, on
the console.
You know, you're going to get some, it's
probably going to work.
And you're also probably going to, it's probably
going to do.
Show you this concise code in a way
that's pretty.
Good.
Like it's going to show you a good
way to write that code.
And so I was, I was thinking.
Well.
I want to just double check myself and
see if I have over complicated.
The thing I'm doing.
And in some ways I saw that I
had over complicated it.
And in other ways I saw.
That what I was doing was actually pretty
good is on the right track.
Like, because, because if you can go through
the code.
And if you understand what you're looking at,
you can see quickly.
Oh, yeah, I see.
I could have done it this, this way.
And you're like, you know what?
That might be a, that actually might be
a better way to do it.
Or you could say I could have, or
you can see that.
Oh, I could have done it this way.
And no, no, that's not going to work.
Like, yes, it does work in this code,
but it's not.
I, this is going to cause problems down
the road.
What was really interesting at a certain point.
And Grok has this think mode.
Think.
Stay away from the think mode.
Because when you said, well, it's then it
thinks about everything.
And it thinks out loud thinking.
And so you say, okay.
So I eventually took a script that was
working.
And I said, this is what it is.
It's these are the two things that's, that's
wrong with it.
And I said, think about it.
Well, after about half an hour, it came
back.
And it basically written the script in 20
lines.
And it didn't do anything right.
And then great.
Take into account that if you're using Python
or, you know, you got modules.
Oh, well, you don't have that module.
Oh, pip install this.
Pip install that.
Pip, pip, pip, pip, pip, pip, pip, pip,
pip, pip, pip, install that.
Oh, yeah.
You're all over the place.
Pseudo app install.
Pseudo app update.
Pseudo app upgrade.
And then it goes through all these laborious
steps.
Test this, test this, test this, test this,
test this, test this, test this, test this,
test this.
I just described what it has to do.
And it can't.
It can't.
It can't do it.
Darn.
I feel bad for you.
I feel this frustration.
And like, I get it, man.
like it's, it's, it's, the promise failed.
It's completely, completely.
They made a promise and it failed.
Yeah.
This is not, this is not, I mean.
But just, so the boardroom's getting bored, B
-O-R-E-D.
So it's, this is not about AI, it's
about something I want to build.
I just want to build this.
And you know, I've tried, I started in
liquid soap and liquid soap, this, what a
great program if you have the right version
with the right sources built, you know, compiled.
And you know, and you have the right
version and the right documentation for the right
version.
It's like this, it just doesn't seem like
it should be so hard.
I actually think that, so here's, here's another
sort of thing.
Doesn't anyone have this?
Doesn't anyone have this, what I just said?
Hasn't, someone built this already?
Called, you know, RSS to stream?
But I think, but Adam, I think the
problem though is that I don't think humans
are very good at determining how hard a
problem actually is.
But we, we see it as a series
of.
Tubes.
Series of, a series of tubes.
Do I still have that thing?
We, we see, we see a vision of
the thing complete and all of its working
parts.
We see it all simultaneously.
Yeah.
In our head.
But if you actually take that thing and,
and to us, it's like, okay, here's, here's,
I can, I can imagine all the parts
and here's a, here's what is all, I
can see it all working together.
Well maybe.
But if you actually can like break that
down into a series of linear events to
say, do this, then this, then this, then
this.
You find out that that thing that you
visualized, it's, it's a valid vision.
It does work.
But getting there is the, is way harder
than you thought.
Is that the part of software development that
really just takes years and years of banging
your head against the desk?
I think, I think, I think it takes
years of failure.
I'm packing 20 years of failure into 200
hours here.
Yeah, it takes, it takes a long, it
takes lots and lots of failure to realize,
to automatically know when something is not going
to work and you don't, don't try, don't
try it this way.
So BitPunk, BitPunk underscore FM.
Yes.
In general, the idea is to turn an
RSS feed into a internet radio station.
And what that means is you want to
be able to schedule little jingles or station
IDs in between the episodes.
That should be at random if you have
more than one, but never the last one
you played.
So that's that.
And then the tricky part is, two tricky
parts.
One is you need to continuously be looking
at this feed because if a new item
shows up in that feed, which could be
an hourly news report, as an example, you
want to schedule that next.
You want to get that up as soon,
but even if it's a Joe Rogan, that's
fine too.
I'm not picky about that.
Whatever, whatever is new, you need to schedule
that in next and then keep going down
the list.
But if a new thing pops up, you
got to put that in.
And so that's the logic.
And then- You're missing, you're leaving out
one critical part and it's, this is not
just an RSS feed.
This is multiple feed.
No, it's one feed.
Like I'm saying, but the desire here is,
is to be able to do this mix
and match from multiple feeds, right?
No, no, no.
We already have that.
We have the godcaster.fm feeds are, it's
one feed per player.
Oh, oh, I see.
Yeah.
So it's just one feed.
It's one feed.
I want to be able to run multiple
instances of this program.
And so, and then please, when a new
episode starts, send the metadata to Icecast, please.
And then, you know, all the other bits
and bobs, like set the server name according
to the title, tag of the channel.
That's icing on the cake if I could
get the first part working.
That's it.
That is, that's what I'm looking for.
And I've described it a million different ways.
I've done it simple.
I've done it, broken it down by modules.
And the most frustrating thing is, you know,
to generate code, it can take five minutes.
And then at the end, it'll just stop.
Oh, I'm sorry.
I apologize.
I didn't write the script because some, oh,
I'll do it again.
And then it does, it throws us some
Kanji character in there that breaks it.
Oh, I don't know how that got there.
I'm sorry.
I forgot the bracket.
Oh, oh, oh, oh, oh, oh, oh, oh,
oh, oh, oh, oh.
Yeah, that's it.
That's it.
It's just, it's, thank you for saying that.
It just seems like, it doesn't seem like
a hard problem to solve with someone hasn't
solved before.
And I think that that code is out
there.
Yeah, maybe somebody has solved it.
Maybe not.
I mean, this is what LiquidSoap was built
to do.
LiquidSoap, I mean, that, I've never gotten it
to work in that.
It's just like, ah.
Dependency.
Is LiquidSoap a program or a language?
Or both?
It's a functional language, which is, I think,
a little trickier than other things, if I
understand correctly.
And what, what interprets LiquidSoap?
Like, like, what, do you write a LiquidSoap
script and then give it to a program?
Yeah, yeah, binary.
Yeah, it has a binary, yes.
Okay.
I mean, but there's lots of fancy stuff.
It's a script language.
Here it is.
So LiquidSoap, so you, do you think that,
oh, it's OCaml, oh, okay.
Yeah, oh, yeah, there's another.
Boy, I know a lot about OCaml.
Set your environment.
And yeah, you got your virtual environment and
your OCaml environment.
And you got your camel with two bumps
and the one has water in it.
And there's all kinds of camel stuff.
You have smoke in the camels.
So what is AzuraCast?
What people keep talking about AzuraCast.
Is that something that.
Yeah, well, that's just a front end to
LiquidSoap.
There's a number of programs out there, but
the point is, I need a command line.
I don't need a whole web server and
a UI because I need to spin up
a hundred of these or 200 of these,
one for each feed.
So I just need a quick down and
dirty thing that just runs.
Yeah.
I mean, I'm sure somebody has written something
like this before.
Yeah.
It's just a matter of, I just, I
just think it's a little harder than you
may.
Clearly.
No, I'm all in on this.
I'm all in.
It's harder than I thought it was.
For sure.
I just nuked the whole box.
I was so mad.
And then I realized, oh crap, I put
NGINX on that for reverse proxy.
Oh, at least I know how to do
it.
So you had no backup and you just
nuked it.
No, no, it's okay.
Sometimes you just got to wipe the slate
clean and start on a Saturday.
Yeah, so the streaming parser, there's
some interesting things here.
I've been fighting some of the, some parsing
things really the last couple of days.
Well, let me, actually this, the ungovernable misfits
podcast.
This has been a consistent, this has been
a consistent problem.
What is the ungovernable misfits?
Why do I not know about this?
What's, what is this?
It's just a, it's just a show.
They, they have a value blog and stuff.
It is podcast index ID 352598.
Oh, okay.
The things you learn by heart at a
certain point, yes.
Served from Podhome.
Which should be good.
Uh-huh.
So, the problem that, this is a bizarre
issue.
Every, just all frequently, when they publish a
new episode, I will get a ping from
either them or Oscar.
Mm-hmm.
Saying, you know, hey, my, the feed is
not updating in the fountain.
Yeah.
And whenever this happens.
We've seen, we've seen this many times.
Yeah.
Yeah, and so, this is a Lincoln Park
rules.
That's, that's the.
Ah, yeah, okay.
So, Lincoln Park rules say, hey, you know,
hey, here's the same issue again.
It's not updating in fountain.
And if you go, and at that moment,
if you go check the index website for
their feed, none of the episodes will load.
And for the first few times this happens,
like the first couple of times this happened,
I reset, I just did a feed reset.
After a minute or so, it was fine.
Everything looked great.
I'm like, huh, that was, you know, that's
strange.
I don't like that, but whatever, it fixed
itself, great.
And then, of course, then it keeps happening
and it's like, oh, okay, what's wrong?
Well, then I figured out that whenever that
would happen, yes, that's right.
It's only happening with Podhome hosted shows.
That's right.
So when I, cause then it started, it
happened to a couple of other shows.
It happened to one of Randy Black's shows,
maybe two.
I'm not sure.
But it, I've never seen this problem outside
of Podhome.
Hosted feeds.
Okay.
So the next time it happened, I went
and I just opened up Postman and did
a call directly to the podcast index API
for that ID just to get the episode
list.
And then what I saw was it was
returning a 500 error.
Internal server error.
Internal server error, yeah.
Yeah, I'm like, whoa, that's weird.
And so then, so I got on the
server, on the front end servers and found
the error.
And the error was a PHP out of
memory error.
And that should never happen.
Because that, on a properly configured PHP machine,
the only real reason you should have an
out of memory error if you're trying to
load some stupid big file, like a gigabyte
file or something like, something silly, if you're
just doing something absurd, or if you have
a bug in the code.
And I was like, you know, a bug
that's just gonna run, you know, like an
unending while loop that has a memory leak.
I'm like, okay, well, something's wrong here.
And I look and I finally nailed down
the issue.
The issue was it had tens of thousands
of soundbites in this feed.
Oh, so it was running out of memory,
I guess.
Yeah, it literally, the PHP FPM process was
literally running out of memory, trying to return
the results that had something like 25,000
soundbite tags.
Wow.
And they were all duplicates.
They were all just duplicate soundbite tags.
They were the exact thing over and over
and over.
And they were in the database.
Now, these are being generated by AI, I'll
bet.
No.
Yeah, I think Podhome does that.
Yeah, I think Podhome generates that with AI.
Well, see, I talked to Barry a few
times about this.
And he has assured me, he's like, no,
we had a problem with duplicate soundbite.
He said they had a problem with duplicate
soundbites at the very beginning.
Like early after he launched.
And I remember him having that problem, but
then they fixed it.
But something, I cannot figure out what is
happening.
Because when the feed initially releases, it gets
thousands of duplicate soundbites.
But if you wait a little while, and
I don't know what that time window is,
I don't know if it's five minutes or
an hour.
If you wait a while and then hard
reset the feed, meaning delete all the episodes
and re-pull the fresh feed down, then
all the soundbites are gone.
Which that doesn't make any sense.
I mean, I doubt his, I mean, I
don't, it's hard to believe that this is
a Podhome problem because how would that make
any sense?
I mean, you're not, Podhome isn't going to,
Podhome's system is not going to generate a
feed, then like a few minutes later, regenerate
the same feed.
You know, so that's, I can't figure that
part out.
So, so what I, finally what I ended
up doing is, I'm like, okay, I'm going
to have to go back to the parser
and put a limit into the number of
episodes to the number of soundbites it's allowed
to retrieve.
So I've like put a hard limit now.
It gets a maximum of 10 soundbites out
of a feed item, an episode, and once
it hits 10, it just moves on.
Like it doesn't try, it's not an unlimited
thing anymore.
And so maybe, I mean, that will, maybe
that will solve it from here on out.
But then, you know, now I'm back in
the parser again and I'm looking at log
output and I'm seeing that occasionally we're having
memory problems and Node.js is running out
of memory.
And so this gets me back into the
parsing world.
So now, you know, I'm like, ah, this
again, because I thought I had solved that
problem a while back.
So then I'm like, okay, I'm back to
the, to building this new parser.
And you can have, you can have multiple
ways of doing this.
And I want to talk about this because
of, and if you, you know, feel free
to stop me at any time.
No, no, I'm listening.
This is a, this is an interesting issue
you're talking about here.
Yeah, so, you know, you can have, you
can kind of, you can do XML parsers
in probably three ways, but two main ways
for sure.
You can do a streaming parser or what
I'm, what I'm going to call a buffered
parser.
Okay, so the example of a buffered parser
would be you grab, you grab the file,
the XML file, you read through it and
assemble all of your tags into objects.
And then you output those objects to something
else.
Okay, so you're, you're assembling an item tag
into an object and then handing it off.
And so then your code is going to
get that object and do something with it.
A streaming parser is different.
A streaming parser sets up a series of
events and you dial up and tell what
events you want to monitor.
And so an event is going to be
something like, an event would be something like
this.
It would say, you get an event for
the tag started.
So like item tag opened, another event for
when the tag ended, another event for when
it hits some text within the tag, another
event for when it found an attribute in
the tag.
So you're getting from top to bottom as
it goes through the file, you're just, it's
just firing off events based on what you
told it you wanted to watch for.
It's much more memory efficient because you don't
have to read and buffer the entire XML
tree in order to just get a few
things out of it.
Because even if you're parsing a lot of
stuff, there's always going to be stuff that
you don't care about.
And you're grabbing it and discarding it as
you go.
So my goal from switching to a buffered
style parser like we use now to a
streaming parser is to stop.
Because I don't want to just do, I
don't want to do this thing where you
just translate XML into some intermediary object.
But it seems like you shouldn't have to,
isn't that, doesn't that make no sense?
Isn't that what XML is all about?
Yeah, see that's, and that was my thought
as well.
So, you know, with the way we're doing
it now with party time is we're taking
XML, transliterating it into some other language or
object type to only then transliterate it again
into a SQL statement so that the database
can put it in there.
So what I want to do is I
want to go straight from XML to SQL,
no intermediary steps.
I just basically want to just transliterate straight
from XML into a SQL insert statement, stick
that statement in the queue and shuttle it
off to the database for execution.
Bada boom, bada bing, and you're done.
Now, I mean, this does have added complexity,
you know, and some downsides.
SQL statements in code, they're not just text.
I mean, securely handling SQL properly, you have
to use something called parameter binding.
So there's a custom object involved depending on
the SQL library you're using.
And you have to realize that the SQL
statement object, you have to take a SQL
statement object and serialize it on one end.
Then when you stick it in the queue,
then it comes out the other end, you
have to deserialize it on the other end.
And so both sides of the queue need
to be using the same library.
So you can imagine I've got the parser
here, I want to send this SQL statement
off to the database that's got this new
episode data in it.
And so I'm going to, but I'm going
to put it in a queue so that
it stacks up and things get executed in
order.
Well, whatever's on the other end of the
queue that's popping those SQL statements off and
giving them to the database, whatever software that
is, has to be using the same library
that you used to stick it in the
queue.
You could use two different libraries, but you'd
have to use, you know, that's almost worse
because then you might need to do like
extra steps.
It's, that's pretty messy.
So like, I've got the, you know, I've
got this basic code working, but the next
sort of the next steps are, I am
going to merge in some of the concepts
from this vibe coding thing that I did
to get in, because I like some of
the ways that it's formatting the layout of
the code itself.
But then there's this next step that has
to happen where you take all of the
SQL statements.
So what you get is like, you get
an insert, a SQL insert statement for every
single thing in the feed that you want.
You get, you're inserting an episode, you're inserting
a soundbite, you're inserting a chapters link, you're
inserting the insert, insert, insert, insert, insert over
and over again.
Well, you can take all of those inserts
and you can batch them together.
The SQL language allows you to do a
batch insert where you can just group a
whole bunch of insert statements into one big
statement.
And the current version of PartyTime does that.
So there's going to be this extra step
at the end where it takes all these
inserts and converts them into a batch insert
and then delivers that through the queue.
That way you're only, you may only be
inserting, you may only be executing 700 batch
inserts rather than 75,000.
And that's just kinder to your database.
So that's kind of where that whole thing
is at so far.
And we were getting there, but we really
need this, we really need a better parser
at this point.
So, yeah, well, so exactly.
So doesn't this exist?
Hasn't someone already done this?
I don't know.
I mean, maybe, maybe they have.
So if, and this again goes back to
the hopes and dreams of a new project,
if this turns out the way I want
it to, then this can be, this would
be a parser that anyone can use and
adapt to their own needs.
Yes, Eric PP, you're right.
He says, it sounds like you're converting a
stream of XML events into a stream of
MySQL events.
Yeah, yeah, that's exactly right.
It's kind of a different version of my
problem.
It really is.
Yeah.
You convert, you're taking, you're trying to go
directly from one thing to another without going
through a bunch of intermediary steps.
Yes.
And some steps are necessary, intermediary steps are
necessary, but you're trying to make those as
lightweight as possible.
Yeah, yeah, I think you're right.
And so if this turns out the way
I want it to, we could, you know,
we could release this code, open source this
code, and then people could take this code
and just adapt it to their database.
So basically you would just take this parser.
Okay, yes.
And it would work with any database?
Yeah, because what you would do, what you
would have, what you do is you would
just give this parser your database schema, you
would map it to your schema, and then
just turn it on, let it go.
That's the hope.
Two sides of the same coin.
Now try to describe that to Copilot.
Ha ha ha ha ha ha ha ha
ha ha.
Maybe just give the, feed it the transcript
of this episode and see what it does.
Yeah, listen to this episode and build it.
There you go.
That's exactly, exactly what you want.
That is the promise of this trillion dollar
industry.
It's totally trillion dollars.
By the way, how beautiful is it that
Cash App now does lightning as predicted?
Oh, yep, yep.
Venmo is going to be next.
It's PayPal.
All these guys are going to do it.
But they only do Ellen URL, I presume.
I haven't actually looked at it.
Have you looked at it?
Ellen, yeah, lightning address.
Yeah, lightning addresses, yeah.
Yeah, they don't do KSYN.
Okay, because I have not seen it before
when I heard from, and what I read,
is that Stephen B has this working with,
I think, CurioCaster, but certainly with SplitKit and
maybe some others, which is just awesome.
Yeah, he posted and said he tested it
and it works fine.
And how, is it difficult to configure that?
Can you use that as your wallet?
I mean, is it something you can just
strap onto your podcast app at this point?
Yeah.
Does it have an API?
Oh, strap onto your podcast app.
Yeah, your podcast, yeah.
Can you just say, okay- You can
definitely stick it in your podcast podcast value
recipient tag, yeah, as your Ellen URL address.
And so, yeah, you can just, you don't
have to- Okay, now the boardroom is
getting a little uppity.
He wrote it in liquid soap.
Okay, all right, got you.
That's hilarious.
I don't know about, they do have an
API, yes.
I just don't know much about it.
I never really looked into it because we
didn't- Oh, okay, Stephen B says you
can use it as your receiving wallet.
Okay, got it.
Yeah, yeah, yeah.
Okay, not as a sending wallet.
I think they have an API, though, for
a sending wallet as well.
Yeah, welcome to the Cash App Partner API,
Cash App Pay Developer products.
Oh, another thing you got to sign up
for.
Sign up here to get your tokens.
Get your tokens.
Basic payment processing workflow.
Now, I don't know about the Bitcoin stuff.
They've definitely got an API to cash out,
but I don't know about the Bitcoin.
Cash App, Bitcoin API, sending and receiving Bitcoin.
Well, Stephen B says Splitbox does it.
Oh, the Splitbox does it.
Oh, okay.
I got to look into this.
It's all coming together.
This is all happening.
It always takes 10 years, and I've promised
myself this project would take five, so we're
about right.
It's only been five years.
Only five years.
When you're like you, and you just think
in decades, five years, that's a deal.
It's a bargain.
I'm telling you.
It's a bargain.
What else has been going on in podcast
land that we haven't paid, besides the fact
that apparently now we're a $7 billion industry?
No, that's bull.
No, that's only if you take Patreon.
I mean- And YouTube.
And you put YouTube.
If you put YouTube in it, yeah, I
can see where that comes from.
That's what they did.
They put YouTube in it.
Oh, they literally put YouTube in it?
Oh, okay.
All right, boys.
All righty then.
Okay, I got you.
I got you.
Yeah, it said if you had to put
in Patreon and YouTube, you get to $7
billion.
Okay, yeah, that makes nothing but sense.
Do you have any post?
I've been thinking a lot about the post
-Apple stuff, their announcement of the in-app
purchase thing.
Okay.
Have you got any- No, no, I
mean- Do you have any non-hot
takes, any cold takes on that?
Well, we talked about it last week.
I'm not sure what, has anything changed, or
would you have more thoughts on it?
No, it just took some time to, I
mean, I just- To process it.
To process.
Sort of digesting it and thinking about how
it was, like, what are the possibilities of
a- Well, to me- Imagine a
world where- Imagine a world, yeah.
Well, to me, it's like a boost button.
Yeah.
You know, I mean, not entirely.
When did he get Sethy on?
Because Sam Sethy, you know, he has that
hooked up into Apple Pay, which I think
makes a lot of sense because it's just
a credit card payment.
You're not paying an extra 30%, are you?
Or you shouldn't have to now.
You know, just- Not if you, Apple
Pay doesn't- Doesn't charge you.
Usually Apple Pay doesn't charge you the commission.
Right, you should just be able to hit
the boost button and it says, okay, pay
with Apple Pay, boom.
Shouldn't you?
Or is that bending the rules because you're
not actually linking out to something external?
Well, yeah, I don't know about that.
I don't think you could do that.
People want to know what Fountain showed me.
I'm sorry, that's under NDA, people.
I can't talk about it.
But the Fountain Boys will come on in
a week or two and talk about it.
Yeah, you can't violate friend DA, et cetera.
Friend DA, yeah.
No, you can't.
So, I mean, the thing I've been thinking
about, I don't, Windows Weekly this week, Paul
Thorat was saying that like the next version
of Windows 25H2 or Windows 12, whatever you
want to call it, is sort of looming
and Microsoft's hinting at it strongly.
And one of the comments he made was
they seem to be reemphasizing apps, like local
apps.
With Microsoft?
Yeah.
What does that mean?
Oh, not cloud-based, you mean?
Yeah, like they're reemphasizing, making the start menu
sort of a center of the universe again
and reemphasizing apps.
Versus just everything being web-focused.
And I think that's pretty, that might be
a sort of like a canary in the
coal mine of where the future lies.
You mean apps versus web-based?
Mm-hmm.
Well, I think we've seen that.
I mean, that to me sounds totally spot
on.
People, the app culture, and I've said this
before, it's like when, just observe somebody in
your life, how they operate and say, ask
them to do something simple.
And look up this concert, this movie time,
or eight times out of 10, they've got
an app for it.
Or they'll think, they'll say, I've got Google,
I've got DuckDuckGo, I've got, fill in the
blank, and they see that as a search
app, not as a web browser, they see
it as a search app.
And they just type it in, and it's
crazy because it's always at the bottom.
This is the big thing I've noticed.
They have the search bar at the bottom
of their, it's a browser, but they don't
know it's a browser.
And it's a huge difference when you move
it down to the bottom, people don't think
of it as a place where you can
type in a URL.
Yeah, that started with Apple when they moved
it to the bottom in Safari and all
that.
Yeah, and so people type it in, and
then they just think that, I've got a
Google, I've got a DuckDuckGo, they don't see
it as a browser anymore.
By the way, speaking of such, I heard
that Apple is considering stopping their contract with
Google for Google search to be the default
and use their own, here it comes, Apple
Intelligence Search.
Where did you hear that from?
Let me see where that came from.
It was, it's like one of those messages
I got from somebody, it came from Bloomberg.
Apple eyes move to AI search ending era
defined by Google.
Because that's been rumored that, it's been rumored
that Google was going to be required to
stop paying default search fees by the antitrust
regulators.
That's just been nothing but rumors.
So this sounds like Apple may- I
think it's happening.
They're getting a lot of money from Google,
that'd be hard.
It's like seven billion or something.
It's a lot of money, but in Apple
terms, it's really not.
Seven billion, that's still a bunch.
I mean, that's still a lot of money.
There are days when it doesn't fall out
of my pocket, that's for sure.
I dropped a billion, oh, what's that on
the floor?
I'm sorry, what did I just lose?
They made like 85 billion in the quarter,
and I mean, seven billion, that's maybe 10%.
Yeah, that's a lot of money.
They've always wanted to be in the advertising
game.
They've always kind of skirted around it.
Oh, Nathan says 20 billion.
Per quarter?
Is that annually, Nathan, or is that per
quarter?
That's poof.
That's surely, that's annually.
But I'm telling you, Apple is always-
20 billion dollars?
There's no way they would give up that
money.
There's no way.
Apple has always wanted to get into the
advertising game.
They're willing to, they do play a long
game.
It's just, I don't think anyone has the
vision over there over how do we make
advertising not suck.
I don't think it's possible, personally, but they've
always wanted to do that.
And maybe that's what they're thinking.
Like, well, if we do AI search, and
I'm sorry, Apple Intelligence Search, and then we
contain that in your special secure chip on
your phone so no one has it, except
we know how to manipulate it, and then,
you know, they may be trying to do
the old, well, I only want ads that
I want, one of those moves.
Uh-huh, sure.
It's possible.
I was just, I guess what I was
thinking about is, I was kind of already
thinking sort of like this, and then when
Paul said that this week, I was like,
oh, it kind of made two things connect
for me.
Is, as good as progressive web apps are,
and as good as the web is now,
and it is truly, I mean, really, really
good, it's still not a native app.
It's not as fast, it's not as reliable,
it just, it does not have, it just
doesn't have that thing.
It doesn't have the feel, it doesn't have
the feel.
It's not the feel.
It doesn't.
It's the feel.
I mean, they've really corrupted our brains with
this stuff.
And RESTful APIs are slow.
They have a slow round-trip time, even
with really responsive servers, they're pretty, they're still,
you have to pay that penalty.
But I just think that, what is a
world without, let's say that this in-app
purchase thing sticks, and Apple and Google are
no longer allowed to force app developers to
only use their in-app purchase systems.
And so then they can go, you can
always easily go outside of the app to
do your subscription management and sign up for
new services and all this kinds of stuff.
It really, it honestly brings the native app
thing, it brings native apps back to the
front, really.
Because, I mean, having a PWA is, a
lot of times you feel forced into it
because they're going to hamstring you so hard
if you go into the app store ecosystem,
either through Google Play or the app store.
If some of those restrictions are pulled back,
and I mean, we're seeing it now.
I mean, everybody and their brother is rushing
to put- Sorry.
Sign-ups back into their apps, links out
to do subscription management in their apps.
And it really makes it where the barrier
to entry financially to have a native app
is just much, much lower.
And then, like, then you can have your
native app.
If you're using something like React Native, which
seems to be a great framework that people
are just able to rapidly develop in, things
like React Native, you could have your app,
it's almost as easy as writing a website.
So then you could just distribute your app
to all these various places.
I really, I guess what I'm trying to
say is, I really think that this is
going to be a landmark, if it sticks,
it's going to be a landmark decision that
may end up taking focus away from web
apps back to native apps.
And I mean, on Windows too, and Mac.
You can have native apps on all the
platforms without having to pay, without having to
suffer for the privilege.
And I don't think that's a bad thing.
I mean, True Fans, I mean, I think
Sam would agree with this.
I mean, one of the reasons True Fans
was a web app instead of a native
app first was because of all the garbage
he would have had to deal with, of
all the financial difficulties of the tax, the
30% and all the rules.
He just didn't want to have to deal
with all that stuff.
And he was sort of more the ruler
of his own kingdom if he could have
a web app.
And this may turn out to be a
really important decision that brings that, this sort
of like levels that playing field.
I don't know.
I just think it's going to, I think
we're going to look back at this and
see that it was a bigger deal than
we may have thought.
Yeah.
The world is changing.
It's going to have wider ramifications.
The world is changing, my friend.
Things are happening right before our very eyes.
And don't forget the stable coin.
Did they vote on that yesterday?
You know, they had it.
But they voted it down.
They voted it down?
Mm-hmm.
Really?
It failed, yeah, in the Senate.
Wow.
Who voted that down?
I think all the Democrats got together and
blocked it.
That was my understanding.
It had to have 60 votes to proceed
in there.
Wow.
48 to 49.
They had to have 60 votes?
Yeah.
That was my understanding from the article I
read.
Wow.
So now what do they do?
Suffer.
I don't know.
Thune took action to allow the bill to
be brought back up for another vote.
Oh, that's over for a while.
That's over.
Well, that's kind of a mini-win, I
guess, for the Bitcoin people.
Hmm.
That's interesting.
But what about innovation?
You know, I had all those, it was
so up and down the party line.
So here's Senator Scott.
These are all really short.
Senator Scott, he's pro-stablecoin.
The Genius Act establishes common- By the
way, just calling it the Genius Act, what
is that all about?
What are you trying to tell me by
calling it that?
Why don't you just call it the Stablecoin
Act?
No, it's the Genius Act.
It's like, you know, the Patriot Act.
It's like, this is not a good name.
The Genius Act establishes common-sense rules that
require stablecoin issuers to maintain reserves backed one
-to-one, comply with anti-money laundering laws,
and ultimately protect American consumers while promoting the
U.S. dollar's strength in the global economy.
This is about keeping innovation and opportunity on
American soil rather than driving it overseas.
Okay.
Loaded.
Now, who was that?
Scott, Senator Scott, the black guy.
Where's Scott?
Yeah, he's got power.
Tim Scott?
Yeah, I think it's Tim Scott.
He's got juice.
He's got juice in the Senate.
So then, the representative of the British banks,
Senator Elizabeth Warren.
First, the bill ignores basic consumer protections that
apply to every other financial product available in
America.
If you are sending a U.S. dollar
from your PayPal wallet and you get scammed,
the CFPB has the authority right now to
help you get your money back.
But if this bill passes and you're sending
a stablecoin from your PayPal wallet and you
get scammed, you may just be out of
luck.
I think that's a new thing, the PayPal
wallet.
That's the pope, our new pope has instituted
the PayPal wallet.
And here's Senator Loomis.
She, of course, is behind most of the
stablecoin, the genius bill.
This bill promotes responsible financial innovation and protects
consumers.
It's that simple.
This bill also strengthens the dual banking system
by creating a strong pathway for both state
and federal stablecoin issuers to operate on a
level playing field under robust supervision.
Wyoming pioneered digital asset legislation in 2018.
And I'm proud to say, this bill builds
upon my state's hard work and success and
framework that creates a very fair, but highly
transparent and regulated process.
You know, I'm kind of glad this thing
failed.
Go lightning, everybody.
That stuff just works.
Yeah, Catholic technology.
That's what the PayPal, it comes with Catholic
technology baked in.
Here's another, I got two more.
Another pro guy, Senator Hagerty.
I think he's from Tennessee.
Stablecoins can actually play a pivotal role in
spurring modernization.
Modernization through stablecoin, woo-hoo.
Whether it's improving transaction efficiency, freeing up working
capital, or driving U.S. treasury demand.
Now there's the truth, driving U.S. treasury
demand.
That's what it's all about.
Finally, somebody said the quiet part.
Yep, yep.
The benefits of a clear regulatory framework for
stablecoin are immense.
I want to acknowledge the hard work of
my colleagues on both sides of the aisle
who've worked tirelessly on this bill and have
consulted with countless industry participants, academic experts, and
government stakeholders to put together a truly bipartisan
effort.
And where was my phone call?
And I want to underscore that the current
draft is in the manager's package that's associated
with it.
We're going to vote on it today.
We'll address the many claims that were lodged
by the ranking member today.
And they will clarify the fact that many
of the claims simply just aren't applicable here.
Okay, and then the last one is Senator
also Brooks?
Also Brooks?
Are you Brooks?
No, I'm also Brooks.
I'm also Brooks.
Also Brooks is all in.
It is critical that as we address emerging
markets, we do so in a way that
protects consumers, that drives innovation, and that allows
everyone to participate in and benefit from these
markets.
And that also prioritizes American leadership.
I believe that our bill provides an important
foundational framework from which to build.
And that today we have an opportunity to
make positive changes toward our common goal.
We've heard some concerns that our revisions to
the state preemption language may have unintended consequences.
And I'd like to thank Senators Hagerty and
Lummis for their commitment to work with us
to address these concerns and to do so
on the floor.
Yeah, I don't think this is ever going
to pass.
Well, I mean, if it didn't pass this
time, I don't see how it can pass
because it was very bipartisan.
It had the momentum for a while there.
It had the momentum.
But I think these people are all, the
banks probably don't want it.
Whatever, it's fine.
We'll just keep using lightning.
It's good.
Lightning works.
Yeah, I don't know.
Well, I mean, look at, I mean, the
consumer protections are built in.
Just look at all of these wonderful protections
we have in our boosts that we've received.
Yes, so it's so protected.
It's protected.
I feel so protected as a consumer.
So I mean, the stable coin, the problem
for the banks there is that it becomes
so low cost.
They just can't gouge you on fees anymore.
If you have a pure digital version of
the dollar, it just kills.
No, no, the whole idea, no, the banks
should just buy treasuries and create their own
stable coins.
That's all they have.
You have your JP Morgan coin.
You'll have your Guadalupe bank coin.
But honestly- The Guadalupe bank coin, that
one's going to be hot.
That's our bank, Dave.
I know, I know.
Guadalupe.
No, it's like, that's the beauty of Bitcoin.
I am my own bank.
The problem is people are retarded and they
forget.
I'm sorry, they're like, oh, I lost my
password.
I lost my key.
I lost my words.
I don't know what to do.
People have no responsibility anymore.
People act like, these politicians act like if
you get scammed and lose your money-
The government should be there.
In the banking system, that you have all
these ways to recover.
That is bull crap.
I've heard hundreds of stories of people getting
scammed and not getting a dime back from
them.
Oh, no, no.
No, you don't have, the CFPB is not
going to come fight for you.
Elizabeth Warren comes in on her steed.
Believe me, that ain't happening.
If somebody drains 20 grand out of your
savings account, you may get it back.
You may not.
I mean, it's just as dicey as stable
coin.
I know a guy here at the church,
he had $40,000 he got pig butchered
out of.
He ain't getting that back from the bank.
No.
The bank's like- There's the CFPB.
Call Elizabeth.
Elizabeth, come in here and help us.
Anyway, sats are working just fine.
I want to prove it by reading a
couple of boosts that came in.
And look at this.
Stephen B boosts 1,000 sats from an
app called LNURLPayment, which I'm thinking is the
split box.
And he says, oh yeah, split boost from
Strike.
And right before that, split boost from Cash
App with 1,000 sats.
Wait, from Cash App?
Yeah, so he's, what he's doing- Oh,
it hits the splitter.
The split box, yeah, it hits the split
box.
Yeah, which is beautiful.
This is a beautiful system.
Of course, I'm- Stephen B, you're a
mad scientist.
He is a mad, hey, make my streaming
script.
Don't, no, don't, Stephen, stop.
No, no, no, don't, don't, don't, don't.
Don't do it, don't do it.
And then 1,000 sats from Music Side
Project, which is all Stephen B.
One QR code splits to all wallets.
Yeah, exactly.
We got 10,000 sats with the sats,
which was a nice little mini baller boost
from the Tone Wrecker.
He says, catching up on the boardroom boost
with today's live show.
Out of the loop.
Well, you're back in.
333 from Anonymous, we're lit!
Finally, yes, once I finally hit the lit
tag, I was, I got my energy back
about a third into the way of the
show, man.
It's been a tough- Yeah, I heard
you pick up.
It's been a tough week.
It's been a very tough week.
Short Road Ducks, 222 Salty Crayons.
They're doing an early test after Node Albi
Hub lockout after my episode was released.
These scissors are getting heavy.
Yeah, I've had that happen where, you know,
you reboot your start nine and then it's
supposed, Albi Hub is supposed to come back
up.
And then, you know, I noticed like, I've
been boosting people.
I've been sending sats, streaming sats.
And I look at my podcast guru app,
like failed, failed, failed, failed, failed, failed.
And I, oh, I forgot to unlock it.
Cause you got to unlock the Albi Hub
and it doesn't always automatically unlock or at
least that's my experience.
I've been there with my Node before on
that and not realized it for like a
day.
I'm like, oh crap.
It's bad, right?
And you feel bad.
Like, I feel like, I feel icky.
Like, oh, I stole that content.
Let him pay for it.
It didn't feel good.
Hey, Dirty Jersey Horror sends us 1976 Satoshis.
Y'all be good, he says.
And Sam, here we go.
Thousand sats from Sam coming in from true
fans.
Stripe enabled iOS to web payments this week
and support stable coin.
Glad true fans uses the Stripe API.
Yeah, I know.
Stripe does stable coin and some, they don't
do Bitcoin or lightning, but they do, they
do stable coin and something else.
Yeah.
Stripe is, Stripe, who owns Stripe?
Is that a big banking outfit?
They're self-owned, aren't they?
Who owns Stripe?
Let's see.
Doesn't Jack Mahler's own everything at this point?
Let's see.
Stripe is, was founded by brothers.
Yeah.
Looks like they're, looks like they're still in
there.
They're probably worth something.
They have venture capital.
Oh yeah.
Sequoia.
Oh yeah.
Oh, they got all, they got all the
usual suspects.
Hey Dave, whatever value for value have we
received in between these two wonderful board meetings
to keep everything running, to keep the engines
going, to keep the smoke coming out of
the stacks?
We got a PayPal from Oscar Mary of
$200.
Whoa, 200 smackaroos.
Baller, shot caller, 20 inch blades, only Impala.
Thank you, Oscar Mary.
I'm going to presume that's from all the,
all the kids there at Fountain.
Yeah.
But either way, thank you, appreciate that.
Yeah.
That's right.
Thank you.
We got some Boostergrams.
And I'm going to make sure that I
do this right this time because I got
the timing wrong.
Boost.
I think this is right.
Boostergram.
S3TH, I guess that's Seth, sent us a
1,008 sets from True Fans.
Thank you.
I see more and more True Fans popping
up, popping up on the Boost.
Me too.
Yeah, I'm seeing it happening, it's good.
I'm seeing quite a few of these come
through.
There's a, oh, this must be a stream.
Yeah, this is a, he's, Seth is streaming
like 1,000 sets.
A minute?
Like a minute.
No.
Is this a minute?
Because that's 3.51 PM, 4.06 PM,
4.08 PM.
No, he's just happy.
He's Boost happy.
There's a bunch.
He's Boost happy.
He's Boost, Boost, Boost happy.
No, this is stream action.
Boost, Boost, Boost.
Is stream action, yeah?
Oh, okay.
This is automated.
Wow, he just turned on his stream and
let it rip.
Well, thank you.
Thank you very much.
Yeah.
SourceD, that's Archie over at the Podverses.
1701 Boost through Podverse, he says, more coding
talk.
You got your, you got a lot of
coding talk today, bro.
You got everything you need.
No more coding talk.
Next week, I'm just going to be like,
oh, it's working.
It's all good.
I feel good now.
I'm fine.
You know, you know what?
I can identify the exact moment when you
cheered up.
It's when you deleted that VM.
Totally.
I deleted the VM being, I'm like, I'm
not going to figure out why I can't
get in.
I'm not going to use this tish, shish,
mish, shish, shish kebab thing to get in.
It's uppity.
It could have been responsible for some authentication
errors I was seeing.
I'm just starting over fresh.
I'm going to, after this, I'm going to
walk the dog.
I'm going to have dinner with some friends.
And then tomorrow morning, I'll sit down fresh
and I'm going to write it all out.
And I'm going to just be real, real
methodical about it.
And what you told me today was very
valuable.
I think I'll just do it little, little
bitty baby steps in module, modules.
If you're having a bad day, go delete
a VM and it'll just make you feel
better.
It does.
I'm going to do it after the show.
Something very powerful about it.
Like, ah, I'm deleting you, bastard.
Off you go.
I'm just going to pick one at random.
The only thing I'm sad about is crap.
I had that Nginx all set up for
SSL.
And my Ocaml, my Ocaml environment is gone.
Oh no.
Ocaml.
Ocaml, Ocaml.
The weirdest name of a language ever.
Whatever.
And it's a weird, it's a weird thing.
I mean, it's got a whole, it's own
environment.
It has its own ecosystem.
Who invented that?
What else uses Ocaml?
I want to say that, I think, I
think Ocaml was a sort of a concept
language that influenced a lot of other language.
I think Rust borrows a lot of stuff
from Ocaml, if I'm not mistaken.
It's not used a lot directly, but I
think it did it.
It's sort of like a, what's that?
Was it Lisp?
Lisp language had a lot of like, other
languages borrowed a lot of the concepts from
Lisp, but not a lot of people program
directly in Lisp anymore.
Except people who use, what's that editor?
Not V, what's that?
Emacs.
Emacs is all Lisp-based, yeah.
Let's see, Bruce the Ugly Quacking Duck, 2222,
a row of ducks, the podcast guru.
He says, wow, Apple made a big change.
It's a shame it took a judge for
them to do the right thing, 73s.
73s indeed.
Well, that's how they operate, man.
That's what big company, that's capitalism for you,
baby.
We'll know that the earth has shifted when
the Apple podcast apps puts a funding tag
link in there.
Yeah, right.
Well, did you hear back from my guy
over there?
Who, Ted?
Yeah.
Oh, on the funding tag?
Yeah, you said Ted, surface a funding button.
No, I have not emailed him yet.
But even if I, he won't reply, but
I'll still, you know.
Yeah, he gets it, he saves it all.
He probably has to save it in some
secret folder so no one at work can
see.
He's communicating with those heathens over there at
Podcast Index.
Yeah, it's like one of those hidden folders
where you keep all your porn on your
hard drive.
I wouldn't know.
He's also got- I had it on
my VM.
That folder's got all of Ted's porn and
all of the emails from Podcast Index.
It's pretty much side by side.
Archie says, 7777 through Podverse, he says, where's
the Git repo for contributions?
Which, what are you trying to contribute to,
Archie?
I mean, you just look in the org.
If you go to githubpodcastindex-org, then all
the repos are there.
There's, you know, if you tell me what,
which one you're looking for, I'll direct you
to the right place, brother.
Oh, is that, are we at the bottom?
Well, yeah, we got the delimiter.
We got CometStripBlogger, 14,550 sats through Fountain.
And CometStripBlogger says, howdy, Dave and Adam.
Today, I'd like to recommend to your listeners
the best podcast in the universe, a podcast
called Accidental Tech Podcast.
Wow.
That's, I feel like- Feel dirty?
I feel like you've been slided, yeah.
Well, this is what advertising feels like.
I mean, at least- Advertising is a
dirty business.
You know, you got to do host reads.
This is a host read, baby.
I'd like to recommend to your listeners the
best podcast in the universe, a podcast called
Accidental Tech Podcast.
Stop, stop, stop, stop, stop, stop.
Back it up.
What?
He says, today, I'd like to recommend to
your listeners the best podcast in the universe,
colon.
No.
You know what I said?
No, that's what he wrote.
There's only one best podcast in the universe.
That's what I'm saying.
That's why I felt dirty.
Yeah, that's the no agenda show.
But okay, we'll read your host read.
I think this is a, I think he's,
this is a- He's riling me up.
He's daggering you in the side.
Riling me up, yes.
That can be found at www.atp.fm.
This podcast is hosted by a Tumblr millionaire,
Marco Arment, and two former software engineers who
dumped their day jobs and switched to podcasting
full-time, Casey Liss and John Syracusa.
They jibber jabber about software development, Apple technologies,
tech news, but also cars, and a lot
of personal anecdotes and banter.
Yo, CSB.
Well, thanks, CSB.
It's painful.
But a boost is a boost.
A boost is a boost.
That's a $14.50. What is this?
I saw Bitcoin was above 100,000 again.
Did you see that?
Yeah, it's blowing up currently.
Really?
Oh yeah, it's going up.
Oh, I haven't checked it.
You know Adam's really consumed by something when
he doesn't know the current bit.
Oh, 103,287.
When he doesn't know the current Bitcoin price,
you know that he's consumed.
Don't you have a bit clock?
It's covered.
I thought you had a bit clock.
It's obscured currently by stacks of books and
papers and ideation.
My studio is a mess.
I'm living like a hermit, baby.
I'm living like a hermit.
I'm a mess.
This AI vibe coding is not good for
you.
It's not good for me, no.
But, but, but, but, but I have perseverance.
We've got some monthlies.
We got Joseph Maraca, $5.
Randall Black, that's Randy, $10.
Thank you, Randy.
Lauren Ball, $24.20. Thank you, Lauren.
Basil Phillip, $25.
Thank you, Basil.
Thank you.
Podverse, the boys over at Podverse.
That'd be Mitch and Creon and Archie, $50.
And Mitch personally gave us $10.
You guys are all so lovely.
We appreciate it.
And it was nice on the last boardroom
to just stop for a second and just
think about all the things we've accomplished.
And I can't help but doing that.
I was smiling most of the week, in
between, you know, vibe coding.
I was like, look at what we've done,
man.
Look at what's been built here.
And it seems like, you know, I think
we had a real dip about a year
ago.
People were like, oh, what's happening?
What's going on?
But I feel optimistic.
I just feel optimistic about it.
Maybe also because you and I are building
something based on it.
But anybody can do it.
That's the beauty of it.
And then, you know, I know that the
Fountain guys got some new stuff coming out,
which I can't even explain.
You know, they'll explain it.
They're coming on the show in a week
or two.
And, you know, Sam Sethi's kicking butt and
Mitch is, you know, recoding everything.
So we're about to go into a new
morning.
It's a new morning in podcasting.
The sun is shining.
The birds- A new day has dawned.
The birds are singing.
Podcasting is good again.
Welcome to morning in podcasting.
Yeah.
Is this your Reagan throwback?
That's my Reagan.
That's the best Reagan I can do.
That actually sounded kind of Reagan-y.
I'll give you a six point.
Well, thank you.
Six points for that.
Six, I get a passing grade, a passing
grade.
All right, everybody.
Who knows what we'll encounter next week?
Are we getting Rocky on soon?
Is she able to come back?
I know we bumped her.
Yeah, I had a mess up because I
- No, it was my fault too.
You were gone two weeks in a row
and I thought it was only one.
So, and then I was like, and then
I have not had the mental wherewithal to
reschedule her yet.
I'm glad you mentioned it because I will
do that to you.
Yes, yes.
All right, boardroom.
Thank you all very much for being here.
Thank you for your boosts.
Thank you for, did we have PayPal's?
That was the PayPal's you just read, right?
Yeah.
Yeah, okay.
That was it.
If you want to support the index, we
appreciate it.
Go to podcastindex.org.
If you scroll down to the bottom, big
red button, you click on that.
It takes you to the PayPal and soon
available as a button in all your apps.
Hopefully, we'll see.
Brother Dave, you going to be coding this
weekend or are you going to take it
easy or what's the plan?
Coding always, every day.
And, but then also we've got, my daughter
is going to be in a band thing.
Her rock band is going to be playing
here down on Main Street.
Oh, cool.
They're having like a block, they call it
a block party.
Nice.
Having a bunch of like young people bands
playing and stuff.
And they're pretty good, man.
Like some of these young bands, they did
a cover of, one of them did a
cover of War Pigs by Black Sabbath.
Really?
Dude, it was so good.
I was like totally jamming.
Yeah, there's some good artists around here.
Oh, that's awesome.
Yeah, they were all like 13 or something.
I was like, jeez, man, y'all are
killing it.
You need to start streaming them.
Go lit from your phone.
Yeah.
Oh, I should, I should.
I should put it on.
Yeah, why not?
You can do it.
I don't have any, I don't have an
open source way to do it now because
no agenda tube is gone.
Oh.
I don't have the, I don't have a
stream.
I need your stream to be up and
running so I can tap into it.
Okay.
I need your vibe code.
I will.
Take me off.
Good luck with that, Dave.
I'm waiting.
All right, everybody.
We'll be back next week.
Thank you for hanging out with us today.
Great board meeting.
We'll
see
you next time.
Bye.