Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:01):
Podcasting 2.0 for August 8th, 2025, episode
229, Database Storytime.
We are back in the saddle, ready to
rock and roll.
Let's roll.
Let's go, everybody.
We get to do this this time, once
again, for the official board meeting of Podcasting
2.0. What's that?
(00:21):
It's a name?
Oh, I'm sorry.
This is where we come together to talk
about the future of podcasting, what's happening right
now, and we always reminisce.
We are, in fact, the only boardroom where
talk is cheap and code matters.
I'm Adam Curry, here in the heart of
the Texas Hill Country, and in Alabama, the
man who will track down your user agent,
whoever you are.
Say hello to my friend on the other
(00:42):
end, the one, the only, the pod sage,
Mr. Dan Jones.
So, like, right after I posted using DJL's
fancy link, podcasting2.org slash live, which redirects
to episodes.fm slash something, something, something, something,
(01:06):
that I can never remember and always screw
up.
Right after I posted that, Nathan posted, Dave,
FYI, the podcasting2.org slash live link will
now redirect to pod.link slash podcasting2.0
.live. Oh, he's got the link thing integrated.
That's cool.
He re-inherited pod.link. How does that
even work?
(01:26):
What exactly happened?
I mean, so they bought it from him
and then they just gave it back?
Is that how that, did he have to,
like, write them a check?
How does that work?
They're like, look, we really haven't done anything
with this thing.
You can just have it back.
That is amazing.
I'd love to sell a business like that.
To sell your business like that is fantastic.
(01:47):
It's probably just a handshake deal, you know.
That's probably not what it was.
No, I'm doubting it.
I don't think so.
I don't think so.
How you doing, brother?
I'm doing pretty good right now, actually.
Yeah.
Been a tough week at the office.
Tough week, yeah, tough week.
Well, at least you're not working at Wondery.
(02:08):
I still have a job.
Talk about a tough week for those guys.
I've got impressions on that.
I mean, we don't, ultimately, it's not really
our wheelhouse about inside baseball and stuff like
that.
Well, it's relevant only for one reason.
Because Amazon said, well, you know, podcasting's moving
(02:31):
towards video anyway, so we might as well
shut this down.
Which was bullcrap.
Or reorg or whatever they were saying.
I agree with James.
That is, that's just complete, that's just a
made up thing to say in public.
The sad thing of all this video talk
is that we kind of overlook what it's
(02:51):
really about.
And, you know, considering some of the talk
that went on podcastindex.social between me and
Dave Weiner about a name.
I don't know if you caught any of
that.
No, I totally missed that.
Is there something that happened on the...
Yeah, something happened.
(03:12):
I totally missed it.
I'm kind of glad I did, because I
was on edge all week.
It would have tipped you over, man.
Bill, you've been like, yeah, you pull out
the razor blade.
No, no, you get in the tub, pulling
the Leonard Cohen record in the toaster.
Yeah, you're good.
No, we're not going to do that.
Splish.
I was, you know, I subscribed to his
podcast.
(03:35):
Which is your first mistake.
Well, no, I find him very interesting to
listen to, the things that he's talking about.
The most interesting is if you look at
his arc of AI, it went from, ChatGBT
is the most awesome coding partner ever, to,
I tell this thing to not do it,
and it doesn't give me answers, and it
(03:55):
goes off and does things over here, and
then changes things, like, that sounds about right.
That's pretty much what it is.
That's a common arc with AI.
Yeah, exactly.
But he had a podcast, and he was
talking about, if only there was an API,
if only there was an API that could
(04:16):
do some things, you know, and his idea
was, it was actually, it was an interesting
thought, and that's why I reached out to
him on the Mastodon.
Your second mistake?
Well, no, not really.
It's, I'm fine.
I pray for people like him.
You know, I asked, God.
Yeah, praying for him is not the mistake.
Talking to him on social media is the
(04:37):
mistake.
You're right.
After the talking comes the praying.
Okay.
God, forgive him for he knows not what
he does.
The idea was, you know, there was a
New York Times article, like, who reads that?
But he reads that.
He said, here's the top eight podcasts to
listen to.
(04:57):
And he said, you know, I'm never going
to do that because, you know, I listen
to it in the car, and if there
was just an API that just had a
button, and then it could automatically subscribe my
podcast app, use Pocket Casts to those eight
shows.
I'm like, oh, you know, I'll just say,
you know, hey, Dave, you had an interesting
idea.
I just want you to know there is
an API.
And, and, you know, we actively develop for
(05:20):
endpoints.
And, you know, if you have an idea,
you know, let's, don't, don't.
I already know that.
I already know the end of the story.
Okay.
Hit me, hit me with the end.
Well, it's, the thing with Dave is, if
he didn't build it, then it's, then it's
shit.
So.
No, no, no.
That was, no, that wasn't it.
No.
(05:40):
It's like the insidious nature of calling something
podcasting 2.0. I will never work with
anyone who did that ever.
Okay.
Oh yeah.
Yeah.
Yeah.
Whatever.
All right.
RSS 2.0. Okay.
It was, yeah, whatever.
It's like, meanwhile, he's, he's trying to get
(06:01):
the attention of the, the WordPress people who
literally stole blogging from him, but okay, that's
fine.
Whatever.
Yeah.
And call it WordPress.
Um, it's all good.
Oh, you need a pod ping.
I'm sorry.
Good point.
Everybody.
I'm sorry.
Give me a ping.
I was all wrapped up.
Wrapped up.
Hold on.
My mistake.
Here we go.
I do love my pod ping.
(06:25):
Done.
Um, no.
So back to the, the problem that everyone
is kind of overlooking is what Google is
really doing.
They're not hijacking a name.
They are kind of, you know, RSS.
I mean, podcasting, but that's what they're really
hijacking.
I gave away the punchline.
(06:46):
They're hijacking RSS.
They want to kill RSS based podcasting.
That is their true, whether they even the
people on the front line know it or
not.
That has always been the nature of Google.
You know, just think even the whole concept
of a feed comes from RSS feeds comes
from the name.
Oh, it's my timeline, my feed.
(07:08):
That was always an aggregator led, um, uh,
feature from back in the day, Google reader,
which they ran and saw, holy crap, this
is no good.
And of course they went to, uh, was
it Google plus Google circles, uh, you know,
(07:30):
all these, all these other, and they, and
they shut down Google reader, which effective circles.
Wasn't it Google circles?
You had a circle of friends and Google
squares.
You're my little yellow circle.
And I don't know, it was very complicated.
Typical engineers are going to build a great
product.
No offense.
Um, and, and so what they're doing here,
(07:52):
and I would say they're, they're even stupid
because what they should do is just say,
oh, okay, all your RSS feeds now just
work.
And when you, and when you updated updates
and when you, and when you change something,
it changes and then they should cut it
off.
You know, that's what they did with Google
reader, but they're not even that mean anymore.
Not, not that I think they've, the smart
(08:14):
people have left the building, but that's really
what it is.
They do not want a user controlled feed
experience.
You're talking about Amazon.
No, I'm talking about, no, I'm talking about
Google.
Now this is video.
I'm talking about video in general.
This is not a video thing.
This is, yeah, YouTube does video, but we
know from, from the, from the actual numbers
(08:35):
that 70% of people, uh, quote unquote,
watching a podcast are actually listening to it.
And they may glance at it from time
to time, but, and they may start off
watching, but then they just put it in
their pocket.
Then they're listening.
That's, that's, uh, what was that survey we
had?
Oh, nice.
What are you drinking?
Oh, what is, this is a wixie wixie
(08:59):
pomegranate green tea sparkling water.
That sounds like chemicals, chemicals, baby.
No, this is chemical free.
No, he's sure.
Does it have natural flavors?
Look on the can.
Let's see.
Carbonated water, uh, natural, no organic flavors.
Oh, well that's different.
Okay.
(09:19):
Organic flavors.
Nice.
Yeah.
If it comes from nature, it can't kill
you.
That's right.
But that's different than organic.
Um, so that's, that's really what's happening.
And, uh, and I, and I say this
because when people see the true power of
RSS, which I, I witnessed this in this
(09:42):
past week, when we were off, I was
in Florida, um, at a conference and I
was speaking in front of influential pastors.
Who have all sides, different size churches, but
they have a, their group is about two,
two and a half thousand.
And I was showing them the stuff we're
doing with Godcaster.
(10:03):
And, and it was like magic to them.
You know, I said, well, you know, so
you have a podcast.
Well, no, you can now add it to
this, uh, to this church's, uh, Godcaster station.
But you know, it can also add it
over here.
It's like they, it couldn't believe it.
You don't have to upload over there.
You know, I don't understand.
I don't have to call them.
No, no, it's, it's syndication.
(10:27):
And I was like, are you familiar with
Dr. Rick Scarborough?
He's a, he's like in his seventies.
He's a pretty well-known guy, uh, uh,
former pastor.
He's written a ton of books.
Anyway, I don't think I am.
So, uh, he's in the audience and he
(10:47):
asked a question.
He said, how long should a podcast be?
And I said, until it's boring, everyone laughs.
But, you know, they actually left the room
like crap that I just offend Rick Scarborough.
Sort of boring.
So, so, so I, I cornered, actually kind
of cornered me, uh, right after that.
I said, well, I want to show you
something.
And he shows me, he has this, uh,
(11:07):
this feature called my take.
And it's like a minute and a half
and it's weekly and it's his take on
current affairs.
And it airs on hundreds of radio stations.
They said, uh, this is not a podcast,
is it?
I said, that's exactly what a podcast is.
Do you have a feed?
No.
Said, okay.
So I created a feed for him, actually.
I'm just like, this is too good.
(11:28):
And I just scraped it right off his
website with a script and creates a feed.
Uh, and so I realized that what Google
and YouTube are doing by telling people a
podcast is a bunch of people sitting around
a table with headphones on and microphones, and
it's always video.
It has detracted from the true beauty of
what RSS-based podcasting is.
(11:50):
And when you take a little bit of
time, just a little bit of time to
explain to people the syndication nature of it,
they start to understand, wait a minute, I
can do more with this.
There's more things that can be done.
And so one of our customers, actually, High
(12:11):
Point Church in Lake Wales, Florida, they have
a team.
And so they're Godcaster.
And just for those of you who don't
know, Godcaster is basically a digital podcast app
that, in this case, the church controls what
content is in there for the congregation.
And it's a combination.
It can be live streams.
(12:31):
It can be, you know, all kinds.
But it's mainly podcast, RSS podcast based.
It's very easy for them to type in
some names, you pull it up, and these
are the things that I want people to
hear.
Or I did a sermon, I wanted to
listen to this guy, et cetera.
And it clicked for these people.
So wait, why don't we call ourselves Providence
Voice?
So they're branding.
(12:51):
I like that idea.
And they said, you know, how do we
get Sally, who goes to all the board
meetings, the school board meetings, how do we
get her to do a report and add
it to our station?
And this is where the light bulb went
off for me.
I'm like, oh, well, you just need to
put it into a feed.
And so I think they use, I don't
(13:13):
know if they use RSS.com or Buzzsprout,
but they do some feed creation with some
podcasts.
And they said, wait, so I just make
that like two minute report, a podcast?
I say, yeah.
Yeah, for sure.
And then they started to understand the power
of this, how simple it is to manage
an entire local, hyperlocal actually, resource that people
(13:38):
can listen to.
And of course, you know, we built channel
streams, which turns a bunch of podcasts into
a live stream, you know, with links back
to the original podcast.
So it's, you know, it's all the, all
the things we built here at Podcasting 2
.0, including a remote item.
What's the other one that was, we almost
forgot about them.
(13:59):
The source, source tag, I think it is.
Oh, yeah.
Source tag, using all of those bits and
bobs.
And all of a sudden, you know, now
these guys are seeing how they can link
to each other and they don't really have
to see an RSS feed.
They just know that if I put it
into this box and then I can pull
it up over here, that's all they really
(14:20):
see.
And I was just like, the magic unfolding
before me of how people are looking at
podcasts, not as just a show that shows
up in a app, a app, an app,
but the, the capability to connect these things
together and make a, a bigger hole, kind
(14:42):
of like I was talking about the, you
know, the Rachel Maddow app.
It's like their, their podcast app is very,
very limited.
You can't go around searching for stuff that
they haven't made available.
But the interlinking and all of these different
pieces that fit together makes it a, a
destination for people with it.
(15:03):
And the destination has an opinion.
And that opinion in this case is, you
know, local politics and Jesus for Lake Wales.
And, you know, the pastor also happens to
be the mayor.
So there's a lot of good things there.
Um, and so, you know, if we stop
looking at RSS as just a mechanism to
(15:25):
distribute a show, which is where everyone's stuck
in that mode.
And I've all, I think I've said this
for five years, we've been doing this project.
Where is the innovation?
Where's the, where's the completely crazy idea that
is, yeah, it's an app, but it's not
really a podcast app.
It does something else very specific.
And through, you know, whatever reason you and
(15:49):
I wound up building that with Paul Bailey
and with Gordon, we wound up building an
actual app that does that.
And it's just so beautiful to see.
And you know what, you know, it never
comes up in the conversation.
Uh, does it do video?
You know, people get it.
It's like, oh, I'm listening to this stuff.
Oh, okay.
So, you know, just, it's a, it's like
this customized radio that we control all the
(16:12):
programming and we don't have to be radio
people to understand it.
And it just kind of works and it
updates automatically and they love it.
They really, really love it.
The only thing I would, I would think
would be even better if like every, if
you had a hosting account and you could
add to it like a sub feed where
you just like have an app on your
phone.
(16:32):
And, uh, actually kind of the idea that,
uh, what was, uh, before Spotify bought it,
what was that called?
The hosting company they bought.
Oh, Anchor.
Yeah.
So Anchor, didn't Anchor have an app and
you could do a podcast on your phone
and it was all crap.
Remember that?
(16:52):
Yeah.
Yeah.
You just fire up your, I mean, yeah,
you would just like record yourself on the
phone and then that, that was your episode.
Right.
Right.
So having that as like a sub account,
so I can just have people I want
associated with whatever I'm building with RSS just
to hit something and then send and boom,
it puts it in a feed and it's
(17:13):
done.
I mean, I could build that myself technically,
but I'd like hosting people to be hosting
people.
Um, there is so much, am I making
any sense here?
Yeah, yeah, no, yeah, yeah, no, yeah, no,
that's not an answer.
Yeah, no, no, yeah.
Uh, yeah, you're making sense.
I think, let me, let me go backwards
(17:34):
real quick because I think the, the vid,
the video commentary was, uh, in the Wondery
thing was a head fake.
Yeah, of course.
And, but I think, I think there's two,
I just want to kind of go back
to that real quick because I think that's,
(17:55):
I don't know, my, my take on this
was two, a couple of things.
I think the primary hit of this news
was with people in the podcast industry themselves.
Sure.
But there's a psychological aspect to it because
there's so much, since, uh, I don't know
(18:22):
really when this started, maybe end of 2022,
there's been so much negative news in the
podcast world.
There was only, there's only a few bright
spots you could point to and Wondery was
one of them.
Wondery, you could say, okay, look, you could
hold them up as the pedestal and say,
on the pedestal and say, okay, Wondery is
(18:43):
proof that if you do a podcast network
right, you can be successful and make money.
And when something like this happens, it's like
you got rug pulled.
I think there was someone who said that
you can't monetize the network.
Who was that guy?
I'm trying to think who that was.
(19:04):
I vaguely remember that too.
And I don't remember.
I don't remember who that guy was.
Very, very downer dude.
Smart guy though.
Well, when you have, what'd they have?
300 people.
Oh, did they have that many on staff?
Well, they fired a hundred.
Yeah.
They fired a lot.
A hundred people.
You know, what kind, what kind of payroll
(19:25):
is that, man?
That's 15, $20 million payroll.
When the, when the rows of your, of
your industry sort of, when they get chopped
in that, that way, you have, you have
to know they wouldn't, Amazon would not do
that if it was not, if it was
wildly successful financially.
(19:47):
No, of course not.
No, of course not.
It's an implicit, it's an implicit admission that
the, the, the money aspect just is not
there.
And the, but the other thing that we're
seeing is advertising.
We've been saying this for a while.
The advertising is just not enough.
(20:08):
It's bullcrap is what it is.
You cannot get to profitability solely on advertising.
You have to use subscriptions.
Spotify cut their staff and increase their prices.
YouTube increased their, their premium prices and they're
pushing people hard into premium.
That Amazon, so, but the other thing that
(20:29):
hit me this morning though was, I think
there's also an aspect of this where Amazon
sees that they're giving the, the money that
any money that Wondery was making from subscriptions,
which is the more valuable of the two.
If you have subscriptions and advertising, subscriptions is
(20:50):
the more valuable of the two.
And 30, 30% of that subscription money
was going to Apple.
Um, if you, if you remember the, over
the last few years, sorry.
Um, if you remember the last few years,
I've got a, I just found an article.
We saw this article, this same story many
(21:10):
times.
The headline is Wondery is the winner in
the subscription race this year, but the size
of the market remains small.
Apple says Wondery had the top subscriber channel
of 2022 as the studio was the home
of 16 of the top 20 subscriber shows.
So of Apple's top 20 subscription shows, Wondery
(21:31):
had 16 of them.
Yeah.
And that means that any money that they
were making from subscriptions, a third of that
was going to Apple.
Now that's a reason to stop doing that
and bring all that content into Audible.
That, that is because now you say, okay,
if you have a hardcore subscriber who really
(21:53):
wants to subscribe, now they'll come over and
subscribe on Audible.
They're not giving, they're not going through Apple
podcasts anymore.
So I think that the, there was financial
problems, clearly.
That's just obvious, or they wouldn't do this.
But then the, the money they were making,
which wasn't evidently very large, a third of
(22:14):
that was getting siphoned off over to Apple
podcasts.
So I just think that there's, I mean,
the psychology aspect of this inside the, the,
the quote unquote podcast industry is, oh man,
I thought, you know, I thought these guys
were, were, were killing it and they clearly
weren't.
And then the other side of it is,
(22:34):
this is just a pure money play on
Amazon's part.
They're getting their house in order.
This is the same way that, that Spotify
had to.
I think this, the conversation we're having now
is exactly the problem, but I'm, but I
think what I'm trying to, I think what
I'm trying to say, cause I don't really
know what I'm saying ever, honestly.
(22:54):
Okay.
I know what you're saying.
Is RSS is a beautiful technology and we've
distilled it down to shows and money.
Right.
Yeah.
And what I'm saying is what can we
do differently with RSS when what you put
(23:16):
in your feed, how much you put in
your feed, you know, what the actual is,
is the content always supposed to be a
show and, and what happens on the other
end.
So right now we have, you get a
transmitter.
By the way, this, this was absolutely valid
in the beginning.
You get a transmitter and your app is
(23:37):
the receiver.
And what we've been doing for the past
year shows me that, well, not entirely.
The RSS feed is a building block that
you can put all kinds of different types
of content and not necessarily a show.
And on the receiving end, you can build
(23:58):
something completely customized for one particular function.
And in this case, we happen to choose,
you know, we basically built a podcast player,
a podcast app for a total addressable market,
(24:19):
my favorite term, TAM, of over 300,000
churches in America that can fill that with
whatever they want and create an experience for
their audience the way they want to.
So we've put an intermediary into the mix.
I'm not saying that that's what has to
happen, but it's a different...
(24:40):
A repeater.
Well, it's like a, a remixer.
That's actually a very good idea.
It's a remixer.
A DJ, we're a DJ.
In a way it's, it's a remixer.
You're, you're, you're, it's a curation device.
And that's, and what is the number one
problem we've had?
Oh, discovery.
There's no way to discover.
There's no way to discover.
(25:01):
Well, I may look towards a certain person
and say, oh, I'm going to, my discovery
is going to be with that person.
And the way I'm going to consume that
from that person is going to be in
their app, in a, in a separate app.
He might, he might.
I just had a, I just had a
killer idea.
(25:22):
Go.
Uh, everything that gets shared goes into a
feed.
Oh, and not...
Are you killing?
Are you kidding me?
I'm feeling your smalls.
Exactly.
All right.
Okay.
A feed of shares.
So this is what I'm talking about.
It's like, let's just forget the money for
(25:42):
a second.
It's forget, forget shows.
You know, it's like if I could subscribe
to, when we used to have these experiments,
just, I just want the weather updated on,
on whatever device I'm using every hour for
my location.
You know, that's just, it's a simple, simple,
um, example.
(26:05):
And you know what?
There's probably no money in it.
Maybe there is, I don't know.
But there's so many cool things that we
can do with remixing and intermediaries instead of
transmitter receiver, which is what we've been stuck
in.
And you know, when, when your competitor, which
(26:25):
is Google, who is basically trying to kill
RSS again, is zigging, we need to zag.
We need to do something completely different.
It's very hard because the comp, you know,
the podcast industrial complex is centered around money
and monetization.
You wanted to say something?
I think it's, well, it just hit me
(26:47):
that it's like, you have to answer the
question, why?
Like, why does Google want to kill RSS?
Why have they had a 20 year hard
on to kill RSS?
Because it always is a threat to their
(27:10):
model.
The YouTube model, you know, on our, on
our, um, Well, let me help you.
Let me help you.
The money that is in podcasting is not
the reason Google is doing this.
They're not going, oh, look, there's another billion
dollars we can get.
(27:31):
No, it's really not it.
They want all your base belong to us.
They just want it.
They want your content.
They want your content and they want it
for free.
And they want you.
Yes.
Yes.
That's it.
They want your content for free because what
they've realized is is that they've realized the
same thing that AI has realized that the
AI companies have realized has realized.
(27:52):
There's not enough content.
They've already ingested the entire internet and it's
not enough.
It's not enough to fulfill the promise that
they've, that they've given the promise that they've
given on YouTube is that it's your new
TV.
Whenever you tune, whenever you jump on your
(28:13):
YouTube, you're always going to find something to
watch every, there's always going to be something
interesting there.
And I can tell you that's not true.
But also the last thing they want is
for you to subscribe to something and actually
get what you want all the time.
That makes no sense to them.
Outside of them.
Yeah, that makes no sense to them.
(28:34):
They, they want to keep you engaged with
what they think is what you want.
And, and in the process, you know, that
it's, they are definitely hooking us in, but
they want to take the control away from
you, the, the listener, the viewer, the user,
and do it all for you.
And a lot of people are very happy
with that.
I'm sure we have a lot of time
(28:54):
on their hand on their hands, but I've
seen time and time again from all ages.
Uh, where do I find your podcast?
Well, do you have Apple?
Yeah, I think so.
Um, but, oh, I can just get it
from the church app.
Oh, okay.
I'll get it over there.
And whenever they want that, they go over
there and they don't care if it's a
(29:17):
podcast app, if there's other things they could,
they just want the stuff that they were
told they can get over there and they
get it from there.
Right.
Uh, oh, it's on your website.
No agenda still, I think 30% of
people still go to no agenda show.net
and click play and leave their browser window
open.
And that's quite a lot of, that's a
lot of people, you know, that's hundreds of
(29:37):
thousands of people who are doing that.
It's just the fact.
So all these different things we can build
with remixing, and this is where that source,
it was so beautiful when, when, when you
point out the source element, just to reiterate,
so we now have an app and, and
(29:58):
you open that app and it shows you
stations in your area by geo location.
You click on one, you follow the station,
but you can just, you know, bop around.
What do they have?
What kind of content do they have?
Or, oh, what's this?
Click.
It's a live stream.
Oh, I just fell in the middle of
something.
Okay.
I'm listening to this.
Oh, that's interesting.
(30:18):
Now that's radio.
And I find myself more often than not
just listening to the program for a bit.
And if it's really good, I'll be like,
yeah, I want to find out.
I want to listen to this when it's
good for me.
I want to put it in a queue.
I want to listen to it later.
And that's one click away and I have
the source.
And oh, there's all these other episodes.
I might go back and listen to that.
It's true discovery.
(30:39):
The stream is, it's almost irrelevant.
It's just a discovery mechanism.
What's going on?
Click.
Oh, okay.
Surprise me.
Oh, okay.
That's interesting.
I'll go and listen to that later.
It's completely, it's a completely different model from
what podcasting in the monetization sphere really is.
(30:59):
It's very different.
Every, all the big players are trying to
construct walls around their, around their systems.
Now they can't afford to, it's a money
thing with them.
And they're not trying to cap.
They're not trying to capture the money that's
in podcasting because there's not very much money
(31:21):
in podcasting.
It's, it's the amount of money that's in
podcasting is completely insignificant to any of these
large companies.
Is it complete?
It is just such a small number.
It's irrelevant to their bottom line, but it
does represent a threat to their money in
a different way.
And that's through your attention.
(31:42):
And, and the data you bring along.
Yes.
And so that, that is all that this
is about.
It's all that this is about.
And the, every time, every time something happens
where there's a shift within podcasting, like what
just happened, it is a signal that these
(32:04):
walls that they're building are getting, are getting
tighter, which means there's more threat.
They perceive more threat internally.
Yes.
They, they're looking outside and say, and feeling
threatened and they double down.
So, and I, and I, and RSS has
always been at the core.
It's always, Google has always been terrified of
(32:26):
RSS because it completely bypasses their entire setup
completely.
And, and the, you know, this, this leads
into the, to that whole, you know, to
the HTML working group trying to get rid
of XSLT.
I don't know if you saw that.
Briefly.
Is that XSLT?
(32:46):
Is that the style sheet that flows over
an RSS feed and then shows the content
as like a webpage?
Correct.
Boom.
Yeah.
Nailed it.
Nailed it.
Yeah.
And somebody from the HTML working group.
It's basically one more step for Adam.
Oh, got a view source.
Okay.
Yeah.
Yeah.
Right.
Right.
(33:07):
Somebody from the HTML working group.
Who is this?
Mason Freed.
Chromium developer.
He proposed, well, he said, what is the
issue with the HTML standards?
Let's see.
XSLT v1, which all browsers adhere to was
(33:28):
standardized in 99.
In the meantime, XSLT has evolved to 2
.0 and 3.0. Uh, the bottom line
of what he's saying is 1.0 XSLT
is all that's in browsers these days.
It's proven to be a security problem because
for historical reasons, all of the browsers rely
(33:50):
on what's a one library called LibXSLT, except
for Firefox.
It uses his own thing as usual.
Um, but that's a C, C++ code base.
And there's memory safety issues in there.
So it's proposed that XSLT would be deprecated
in browsers.
(34:11):
This is what he's, I don't know if
he's even proposing it.
He's just asking the question, should it be
deprecated?
Um, and you know, the response, I'm not
saying this, I'm not saying his motivation is
this, but what this is, what it, but
what it boils down to, what it, what
it amounts to, honestly.
(34:33):
Is a direct attack on RSS.
That's right.
Because XSLT is not just, it's not only
for styling.
It'll, it's, it's a templating language for X,
for XML.
So it's a way to, I mean, if
you look at XSLT, it's got, it's got
(34:53):
control flow.
I mean, it's got four, you know, it's
got, uh, uh, for each loops, it's got,
you know, conditionals it's, it's, it's a language,
it's a templating language.
And so you can, you can use it
to do very complex things and, uh, to
display XML.
But since is this good or bad?
(35:16):
Is this good or bad?
Sounds like a good thing.
Well, you know, I, I think some of
the, I think it's really not good.
It's, I don't want to assign a sort
of quality to it, like a moral quality
to it, as good or bad, because it's,
it just is a thing that exists that
is in use.
(35:36):
But they want to get rid of it?
Uh, I don't know if he even wants
to, I think, uh, I think what he's
proposing was, you know, it's the way this
HTML working group works is proposals are made
and they work it out.
Um, they work through it and people sort
of, uh, vote with their commentary, uh, in
(35:59):
a way.
And then, uh, at the end, you know,
at the end of the discussion, uh, choices
begin to, to be proposed, you know, and
it's still firmly in the discussion phase until
the let's, let's, let's have a conversation about
this phase.
And it does, you know, the, the issue
(36:21):
is XSLT is primarily used for displaying RSS
feeds nicely in web browsers.
That's, that's, that's what 90% of the
use is.
Sure.
But that doesn't mean it's the only use.
Um, there's still lots of other use going
on of XSLT, uh, as well.
(36:43):
And the total page loads for X, you
know, for XML in browsers is, while as
a percentage is low, the total, the total
volume is high.
Still.
And anyway, I, the reason I'm bringing this
up is because RSS is, since it's XML
(37:07):
based, anything that diminishes XML in the browser
also diminishes XML on the quote unquote web,
which is ultimately a diminution of RSS.
And I think that that we have to
(37:30):
keep that in mind.
We need to fight for some of these
things to be retained, not necessarily because we
can't live without them if they were to
go away, but we saw what things like
Google Reader going away did to RSS.
Mm-hmm.
And every time there is a, it's like
(37:52):
a Jenga tower.
Every time one of those little blocks is
pulled out, the tower that is RSS gets
weaker.
And, you know, that's, we have to just
keep as many blocks in that tower as
we can.
And it's useful.
I mean, XSLT, the ultimate, the best outcome
of this would be that XSLT in browsers
(38:14):
would be upgraded to a more modern version
that they would support 3.0. Mm-hmm.
And because it's not, like I said, it's
not just styling.
You can also use it for delivery.
You can also say, you know, well, this
feed is huge.
(38:35):
Alberto gave an example of using a 4
-H loop in XSLT to minimize the amount
of data that's returned.
Or do pagination or whatever.
Yeah, yeah.
Things like, there's, the browser is, I mean,
we had XHTML for crying out loud.
We had XML as the basis for the
(38:57):
browser's rendering itself a few years ago.
Yes, I remember that.
Yeah, I remember that.
Yeah.
Yeah.
XML is important.
Well, let me throw two things at you.
Okay.
Actually, it was a very interesting, there's a
clip I played yesterday.
Hold on a second.
(39:19):
Scrunch, there's a company and this kind of
folds into AI.
Listen carefully to this.
Chris Andrew is CEO and co-founder of
Scrunch AI.
Scrunch tries to help customers' websites get noticed
by AI bots so that their name or
products appear in AI answers.
(39:41):
We're seeing companies that are desperate to get
their content consumed by AI models.
He's talking about companies that sell products and
services, like sneakers or oil changes.
Andrew says that visibility can lead to more
transactions, even if there are fewer overall clicks.
He sees a future where a whole new
post-human web emerges to feed AI.
(40:02):
The websites of today, full of pictures and
videos, were designed primarily for eyeballs.
So I have a thesis that we're going
to move to a non-visual internet because
the internet is going to be for AI.
And AI wants words.
The secret is in the name.
Large language models want language.
And as a society, we have built a
(40:22):
very confusing, over-designed, over-incentivized internet that
is heavily interactive.
Websites as we know them won't vanish altogether,
he says.
People will still need to visit them to
buy stuff.
So forget the hypey stuff there.
(40:42):
Where women wear comfortable shoes.
Where RSS feeds are interlinking to each other
constantly.
We have all the building blocks.
We have the remote item.
We have source.
I think remote item is actually kind of
(41:02):
the most exciting part of that.
Where we're interlinking to all of these different
things.
They link out to transcripts.
There's a lot of different things.
I mean, there could be an interlinked web
of RSS feeds that would be incredibly beneficial
for any type of application to pull in
(41:25):
or search or archive or index to do
things with.
Like Gopher.
Basically, I'm talking about Gopher.
Let's bring back Gopher.
Finger.
Finger my .plan file.
(41:46):
Um, publisher.
Thank you very much, Chad F.
Um, there's something we talked about.
I mean, there's something to be said about
that.
Well, XML serves a role.
It serves a very important role.
And we've, you know, man, I feel like
we're, I feel like we're talking about stuff
we talked about like five years ago.
Easily.
Sure, sure.
(42:06):
Um, XML.
XML is important because, um, Let me, let
me throw this at you.
So what you said, you've got an RSS
feed of shared.
I mean, just think about all the interlinking
(42:27):
we could be doing, but aren't doing.
We have all of these, all these different,
we have pod role.
We have, you know, all these different feeds
that can be created.
You can be surfing around on this invisible
RSS web, interlinked web that with XSLT actually
could be viewable, would be viewable to you
(42:48):
as like just your web browser becomes an
app again.
And you know what I'm saying?
And so you just, you just click on
something and, oh, I'm in this world.
Uh, and the XSL, the T part, the
template part determines your visual experience.
But underneath anybody can walk this tree and
(43:09):
figure out all these different things and can
pull in pieces from.
I mean, why wouldn't I all of a
sudden be linked into, um, the true fans
ecosystem.
And now there's all this other stuff that
I'm linking in between a person tag and
location tag.
I mean, it is so much more than
what we're doing.
(43:29):
Just trying to show, you know, uh, an
icon of a head of someone.
Oh, he was a guest.
You know, you know, do you know what
I mean?
You know what I mean?
I do.
Yeah.
I do.
I do know what you mean.
This is like world outline.
Yes.
Yes.
But without the OPML.
And without Dave Weiner.
Right.
So it's, it's the same idea.
It's, it's a.
(43:49):
Gosh, I keep coming back.
This freedom controller.
I keep coming back to the same stuff.
Don't I?
Yeah.
I want to re I'm resisting.
No resist.
Resist.
Resist.
We must.
Wait a minute.
Where's Al?
Where's Al when we need him?
Hold on.
Resist.
Here we go.
(44:10):
Man, Al is like so old, he's at
the bottom of the list.
He fell off the board.
But resist we much.
We must and we will much about that
be committed.
There you go.
Resist it, Dave.
My thoughts exactly.
But you know, so.
Yeah, I agree.
The XML is a generic markup language.
(44:34):
And that is so useful.
God, it's so useful.
I mean, HTML is not that way.
HTML is geared towards display.
Yes, yes.
And we built a total visual web.
Oh, yeah.
Please don't say JSON because before you know
it, Daniel J.
Lewis is going to be like, we can
do all this in JSON.
(44:56):
That's why his middle name is JSON.
That's right.
And the JSON is just a serialization language.
It's just XML is critical to the web.
It just really is.
And anything that diminishes that, we should be
expanding that, not cutting it.
(45:18):
And I think hosting companies should, you know,
do a six-week sprint and come up
with some ideas of what you can actually
do with interlinking your RSS feeds.
Yeah.
Let's bring creativity back in again.
We have this beautiful resource, you know, the
(45:40):
podcast index as your starting point.
Podroll.
Yeah, podroll.
But even the index isn't really necessary if
you're just linking through XML files.
Isn't podroll, it just hit me that, I
feel like podroll is the first time that
(46:02):
a feed from one hosting company has been
directly referenced by a feed in another hosting
company.
I think you're right, except for remote item.
We did some remote item stuff, but that's
a little more complicated.
Well, blogroll is based on remote items.
For the first time, you have an RSS
feed at Blueberry, structurally inside the feed linking
(46:28):
to an RSS feed at Buzzsprout.
Maybe we're looking at this all wrong, man.
Do you know what I mean?
We've been looking at it from the transmitter
-receiver model, whereas it's the interlinking part that
nobody can do.
Only RSS, and I'm just saying XML, sure,
(46:49):
but let's just say RSS because we have
the tags.
We have all these interlinking tags, and once
you give people the power to interlink, it
becomes something completely different.
We should just have an RSS-based web
with style sheets on top for all I
(47:11):
care that just lets you surf around, but
it's structured.
You know, like, oh, this guy, I'm going
from him to this.
This is what was beautiful about the web
in the beginning, or really Gopher, I say
it laughingly, but it was like, wow, I'm
over here, and this link be over here.
The linking, which was created by other people,
(47:31):
was what made it so nice.
That has been broken down into I got
to use this app and that app and
this app and over here got that app,
and nothing really interrupts or interlinks anymore.
Think about the search engines you could create
with that much interlinked structured data.
Well, look at bingit.io. Yeah, it's killer.
Bingit.io is based on XML.
It's a complete XML engine built on, well,
(47:56):
in this case, OPML and RSS.
I don't know.
You mean clipgenie.com?
Yeah, clipgenie.com, yes.
There's something there that we've just forgotten, and
by the way, in this age of verification,
which is coming, it's unavoidable, we're not going
to get around it, where apps are going
(48:19):
to be forced into age verification, and it'll
start with the big social networks, but eventually
it'll come down to any app in any
app store or even to get into the
app store.
It's coming.
Yeah, I mean, isn't Australia doing it?
Is that right?
The U.K., Australia, Canada, it's coming everywhere.
(48:43):
There's lots of legislation on the books here
in the United States.
Think about the children.
By the way, not without merit, but we
still have the browser.
Barely.
Barely.
Barely.
We're hanging on to the browser.
But the good news is anybody can create
a browser.
(49:03):
There's enough frameworks out there you can create
a browser.
I don't know.
I just want to bring this creative thinking
back into the process instead of a show,
monetization, download, stats.
It's boring.
It's very boring.
I know it pays a lot of rent
(49:23):
for a lot of people, so I don't
want to discount that.
For me, too.
It does for a while, though.
I mean, the Wondery thing shows us that
it's not ever a sure slam dunk.
I mean, I don't know.
I mean, it feels like a lot of
podcasting lore is unraveling a little bit in
(49:49):
the last few years.
Well, of the PIC, sure.
But, you know, it's all focused.
It all boils down to money.
Oh, yeah.
Everything, whether it's value for value, it all
boils down to money.
Instead of, wow, I can just throw this
idea I have, and I wrote something in
(50:09):
a markdown for all I care, and I
link it to this, and then someone else
links through there, and real discovery.
Our version of discovery is, hey, chat, GPT.
But we could even make that better by
giving AI large language models, you know, trees
to parse.
I mean, Dave Weiner's right on his podcast.
(50:32):
LLMs, they suck.
I mean, they totally get in your way.
He's completely right, and if that's our future,
I would like to go ahead and exit
stage left.
We need to do database story time.
Database story time?
Yeah.
(50:52):
I'm sure you saw the ungovernable misfits.
No.
What did I miss?
Exposed a huge SoundBytes API bug.
No, no, no.
I don't know anything about this.
Do we need music for this?
Are you doing a story time that we
need music for?
I mean, you can play music.
It's going to be a long story, though.
(51:13):
We might need a 20-minute music bed
here.
Okay.
Let's try it.
Okay.
And now, database story time with your pod
sage, Dave Jones.
(51:36):
You're going to have to stop that.
I can't even think straight.
What kind of podcaster are you?
The crying violin was killing me there.
It was my in memoriam music.
Yeah, weeping for the database.
Yeah, so ungovernable misfits.
(51:56):
I don't know if you've known.
There's been an ongoing problem with that one
feed.
No, I don't know.
Did you know about this?
It sounds familiar, but fill me in.
Okay.
Let's see.
Well, they're ungovernable, so that's part of the
problem.
(52:17):
Misfits.
Here we go.
Feed ID 352598.
3529 or 8?
352598.
Okay.
So the ungovernable misfits, it's Linkin Park Rules.
It's the guy on podcast.
(52:38):
I'm sorry.
352598?
352598.
And Linkin Park Rules pops up about once
every couple of weeks and says, hey, I
just posted a new episode, and the podcast
index is.
Not updating.
(52:59):
No, it's not.
No, no, it's more than that.
It's a blank page.
Oh, okay.
It shows nothing.
On my page, and I'm like.
That's disappointing.
It is disappointing.
This is the feed from Podhome?
Yes.
Yep, from the Dutch Masterberry.
And so every time I go and I
(53:22):
look, and when I go and pull the
get episodes by feed ID endpoint of the
API for that show, 352598, it would come
back and say 500 server error, internal server
error.
Oh, no.
(53:42):
And so then if I continuously reduce the
number of maximum episodes returned down to, let's
say, five, eventually I'll get a response.
And the response would contain hundreds of identical
sound bytes.
Ah.
Okay.
(54:03):
And so I was like, well, okay, something's
screwy.
Like 562.
Yeah.
So there's like, there would be, these are
duplicate sound bytes.
Well, this is gone.
And so in order to get the show
(54:24):
back working in the index, I would just
reset the feed and then everything would go
back to normal.
It would all be perfect after that.
And for another few, another two, three weeks,
same thing happens again.
And so what I thought was happening, and
(54:46):
this is because Barry at Podhome, a long
time ago after Podhome first launched, Barry actually
had a problem with his system where it
would create duplicate sound bytes, many duplicate sound
bytes in a feed.
Mm-hmm.
(55:06):
And he said he, and we reported it
to him and he said he fixed it.
He's the lying Dutchman.
And so this has always been in the
back of my head that I'm thinking this
is some sort of regression, a bug on
Barry's side.
(55:27):
And, but I'm trying to look at it
objectively, but I'm still always thinking, okay, it
has to be something where when the feed
is initially published, it has a whole bunch
of sound bytes, but then later once the
(55:47):
feed is rebuilt, that gets fixed or something
like this.
So I'm, I'm, I'm, my thinking on this
is polluted by the initial problem a long
time ago.
Mm-hmm.
But we need to talk about database indexes.
Okay.
When you don't index a database correctly, a
(56:09):
database table, you, what ends up happening is
you, you chase, you end up chasing slowness
as, as if it's unoptimized code.
You think a lot of times you think
the problem is in your code and the
problem is actually at the database.
(56:30):
So I, I always index a table, secondary
tables in the database the same way.
And so what I mean by secondary tables
is, you know, you get your primary tables,
you have the feeds table, which all the
podcasts are in, then you have the episodes
table, which we call NF items.
(56:53):
So you have those two tables are the
core of podcast index database.
Everything else is considered a secondary table.
That's just the terminology I use because those
are going to be things like soundbites, chapters,
person, locations, things that attach themselves to an
(57:13):
episode or a feed.
And you, and I always index tables like
that the same way.
And unless it's something very kind of unique
in that I use a compound index because
a lot of times we don't want or,
(57:35):
uh, or need or have a unique ID
for each of those tags.
So say take something like, well, something like
the soundbite tag, a soundbite tag doesn't have
an ID, you know, it doesn't have like
a globally unique ID for every soundbite that
exists.
So you have to sort of come up
(57:56):
with your own unique ID and a unique
ID for a soundbite tag could be, uh,
just all the attributes in the tag.
Those would all add up to be unique.
Um, so any, you know, another example of
the person tag.
So you might have a compound index on
(58:18):
all the attributes of the person tag, the
name, the bio, the avatar, the role, all
that kind of stuff combines.
If you just like smooshed all that stuff
together, you would have this big, big unique
value within the feed.
And that, what that would do is it
would naturally exclude duplicates.
(58:39):
So if somebody put the same tag in
there 20 times, you would only get one
of them because that's your unique index on
that table.
Right.
I'm with you.
I'm following.
Yeah.
So RSS can have duplicates.
It's not against the rules.
It's just XML.
You can have duplicates.
You can have the same ep, you can
(58:59):
have the same, uh, episode tag, uh, excuse
me, item tag with, uh, the same content
in it 27 times.
But you don't want the same GUID 27
times.
Oh, but you can.
Okay.
You know, you can have it.
It's not against the, it's not against the
rules.
It's not, it's going to, it's going to
(59:21):
break stuff, but it's not against the rules.
Yeah, it'll break stuff.
Yeah.
But it doesn't violate XML.
And so you have to naturally figure out
a way to filter that.
And as they get, as those things are
ingested, grip, yes, you can grip it, uh,
grip pipe.
(59:41):
Um, so you can, uh, so the way
you do that is by having well-constructed
compound indexes on, on, uh, XML data that
does not contain a unique identifier.
Well, the soundbites table did not get indexed
this way.
(01:00:02):
I figured that was the punchline.
Uh, I don't know what, I don't know
what exactly brain fart I had, but it
just, I just did not index this table
the right way.
Okay.
So where does that leave us?
So this means duplicate soundbites.
(01:00:22):
Oh, we're being created.
Uh, anytime there was a new episode.
Oh, it would create a new, a new,
uh, no, go ahead.
I'm just guessing.
Yeah, no, you're, you're on the right track.
Any, so the way the aggregators work is
that they only read, they only re-ingest
(01:00:44):
a feed if they detect a new episode.
So, um, in, or if they see, well,
that's not exactly true.
If they detect a new episode or some
significant change to the feed.
So then they'll re-index all the episodes
and bring them all in.
So since that's not a common occurrence, most
(01:01:05):
of the time with most feeds, you, it's
not like we were getting a new set
of soundbites every single time it scanned the
feed.
It was only when there were, there was
a new episode or some significant change was
made.
Right.
So I looked in the soundbites table was
four gigabytes.
(01:01:27):
It had 36 million soundbites in it.
And I was like, uh, that can't be
right.
That's not this, that seems a little excessive.
Um, so the soundbites table has a column
that references the episode ID from the episodes
table.
And I saw hundreds of soundbites for episodes
(01:01:49):
that only in the feed had like a
few.
Um, and then I looked on the index
and I looked at the structure and I
looked at the indexes that were on that
soundbites table and I was like, Oh, this
is okay.
So that's step one of the bug.
This is a multifaceted bug.
That was, that was part one.
Part two is this.
(01:02:11):
We've touched, we've touched on this in other,
uh, in another context before, but we've talked
about database table relationships.
So a simple example is this.
So imagine you have, um, imagine you have
a database of, let's say, let's say you're
a bookstore.
(01:02:31):
You have a database of books.
You have a books table in your database
and you have an author's table in your
database.
There's a column in the books table called
author.
And that column references the author's table and
that's what's called a relationship.
So that's, those are table relationships.
(01:02:53):
That means the value for the author field
of a book in the books table is
related to an entry in the author's table.
And you define those related, the defining the
relationships in that way is what keeps all
the data structured.
And that's what, if you, if you hear
(01:03:13):
the term, uh, a relational database, that's what
that means.
The way that the way this is typically
achieved is through, is you link, uh, is
you, you, the linking of something like an
ID.
Okay.
So you'd have like, there'd be an ID
column on the books table.
(01:03:35):
Every book would get an ID, a unique
ID.
And then there would be an ID column
on the author's table where they were, every
author would get a unique ID.
And in the books table, the author column
would have a reference to the ID column
in the author's table.
So every time you pull a list of
books, you're also getting a list of authors
of those books.
(01:03:57):
Um, and you do that through what's called
a join statement.
So you would say something like select all
books from the, you know, select all the
books from the books table and then join
the author's table onto the book, uh, onto
that result set, where the books.author equals
(01:04:19):
the author ID.
So now what you've gotten is you've gotten
all the books and then you've gotten all
the fields from the author's table that go
along with that book.
Mm hmm.
That creates a full, the full result set.
Okay.
And you do, and the joins are how
(01:04:39):
you build out all the data you need
in a single call rather than having to
do, go look up a little bit over
here, a little bit over there, a little
bit over here.
So Nate, you know, what I just described
is a one-to-one relationship.
So every book has one author and you
(01:05:00):
can visualize, you can visualize what this would
look like in your head.
If you think of just like an Excel
spreadsheet where every row is a book and
then there are column called authors with one
name in it.
However, however, obviously there's more, there's, things are
(01:05:21):
more complicated than that because now imagine that
books can have multiple authors, you know, which
is, is obviously a thing that happens.
So now we're talking about a one to
many relationship and you would tip it the
way you would typically handle this in a
relational database is you was, you'd have like
a three way table relationship.
(01:05:41):
You'd have like a database menage a trois
where you'd have a books table, an authors
table, and then you would have a pivot
table that links those two together.
So you may call it like the book
authors table.
(01:06:01):
So this book authors table has three columns.
It has an ID of its own because
that's good practice.
It has a book ID column and then
it has an author ID column.
So this, the, the purpose of this table
is to link authors with books.
Now, if you want one particular book, we
(01:06:23):
book, let's say, um, uh, as JCD, uh,
JCD book online, the book vinegar, the vinegar
book and it has, um, you know, multiple
authors.
It has him and Mimi.
So you could query the books table and
(01:06:49):
then join the book authors table on that,
on that book ID.
So let's say that the book ID for
that is 512.
You'd say select all the books from, you
say select from the books table where the
book ID equals five 12 then you're going
to join the book authors table, uh, where
(01:07:10):
the book ID equals five 12 then you're
going to join the authors table where the,
uh, author ID equals book authors, author ID.
So you're basically linking, you're chaining these things
together to get a complete results set where
you have books and all their authors.
(01:07:30):
Now, what do you think the results of
that?
What do you, if you were to visualize
that output as a spreadsheet, what would it
look like?
You lost me at Mimi.
So if you have, if you have multi,
if you have a result set from a
database query where one of the tables that
(01:07:52):
you're querying has multiple results, but the one
that it was joined onto only has one
result.
Okay.
So you're searching for one book, but you
want to get all the authors.
And what it's going to give you back
is a, is a set of rows, just
like an Excel spreadsheet, right?
(01:08:12):
Of authors.
So what goes into all those other columns?
Because what you're having is you've got the
book title, the book publication date, the book
publisher, blah, blah, blah, blah, blah.
And only one of the columns is author.
So what goes in all those other columns
in the results set?
Because you're going to have two entries.
(01:08:32):
You're going to have two rows, one for
JCD and one for Mimi, but you still
have all these other columns and what goes
in those columns.
And I can tell you what goes in
those columns because the way SQL works is
you're going to get an exact duplicate row,
except for the author is going to be
different.
So what is going to look like in
the resulting output is that you have two
(01:08:53):
identical books with two different authors, but you
don't, you only have one book with two
authors, but that's not what the results set
looks like.
So SQL is broken.
Yes, we brought, yes.
Um, so for this, this is the way
SQL works.
And for this reason in the API code
(01:09:15):
of the podcast index, and this is kind
of, you know, it's very common.
I have to pull out those duplicate rows.
You have to do something.
You have to do something that takes a
result set that looks like that.
And then files it down to have only
the episode.
(01:09:36):
So I'm like, you remember, I'm looking for
episodes here and I want to get all
the sound bites that go with those episodes.
So, so, and one episode can have multiple
sound bites.
So you're going to get that episode back
multiple times.
Oh, you have to do something that filters.
Yes.
Okay.
So here's, we're back to gripped.
We're back to gripped.
This is the actual I'm posting in the,
(01:09:59):
in the boardroom.
This is the actual code from that gets,
this is the function that gets called when
you do an API call on podcast index
for get episodes by feed ID.
Um, there's some stuff that the endpoint does,
but, but this is the main workhorse that
(01:10:20):
gets called at, at the database items by
feed.
Yes.
And so you can see, uh, I think
it's line two 83.
You can see that this is, it's filtering
out.
Okay.
It's saying, um, I'm it we already know
(01:10:44):
we're going to get lots of iterations of
the same.
We're going to get what is in effect,
duplicate episodes.
So we want to filter through those duplicate
episodes and we're not looking where we get
the episode once.
And then we add the sound bites to
that episode as separate parts of the response
(01:11:05):
object that we're building to send back in
the API call.
But we only want to add the sound
bite if we haven't already added it.
Um, and so because this is complicated, complicated,
but, but remember, this is not just sound
bites.
This is multiple joins.
(01:11:27):
So what's getting joined here, you can see
the list of joins up in the code.
It's joining the chapters table, the transcripts table,
the soundbites table, the person's table, the value
table, the social learner, the value timesplits and
the nfguids.
Yeah.
So there's a lot of joins going on
here.
So you're going to get multiples of all
these rows many, many, many times.
And that's going to fill up memory and
(01:11:47):
bork the result.
If you don't, if you're not careful to
exclude them.
Yes.
So this was part.
If only you built this in Frontier, this
wouldn't be a problem.
Frontier.
Yes.
Yes.
Userland.
And for some reason in this case, I
(01:12:08):
wasn't doing that either.
This is the fixed code.
The other code, I just, I was just
taking whatever I was given and sticking it
back in there.
It was pulling all the soundbites from the
SQL response without ever looking to see if
it had already had that soundbite in the
response object.
Oh man, this is what a crazy bug,
Dave.
(01:12:29):
What this was bugs all the way down.
I mean, this was a complete, this was
a complete brain fart on my, on my
side of things.
I mean, this was, I still don't understand
why I got this so wrong.
The only thing I can think, my only
thinking here is that I was doing, is
(01:12:51):
that I was putting the soundbite stuff in
play and that I got, I may have
gotten interrupted in them and just forgot what
I was doing because this is not normal.
This is what I typically do on a
situation like this is I, I basically just
take, and this is what every programmer does.
You take what you did before and you
(01:13:12):
just replicate it again.
You do the same thing again.
You know, you take, because all these things
follow a pattern.
I mean, the persons, chapters, soundbites, they all
follow a consistent pattern.
So you just copy and paste over your
code, then make a couple of modifications and
you, you know, you do your thing.
But that's, that's just looking at that soundbite
code.
I was like, why did I do this?
(01:13:35):
Cause it was completely different than the rest
of the code.
But you know, the human element came in
because I kept thinking the whole time about
that old bug that Barry had.
And I just was thinking this has to
be on his side.
Um, and as the new, and it was
enough of a head fake because every time
(01:13:57):
I would reset the ungovernable misfits feed, it
would remove everything related to that feed from
all the tables because like part of table
relationships is you can sit, you can set
what's called cascades.
And so what you can do is every
table that references.
So, so we have an episodes table, right?
(01:14:18):
And each episode gets an ID.
Well, all the, all the things like transcripts,
chapters, uh, soundbites, persons, all those tables that
hang off of it, the episodes table, they
reference those episode IDs.
So if you set a cascade on, on
those reference on those secondary tables, you can
(01:14:40):
have it where when you delete the episode,
anything on another table that references those, those
entries also get deleted.
So that's very convenient because you can wipe,
you don't have to go clean up after
yourself.
Everything just gets, but you know, it's like,
okay, well this episode is now gone.
Well, everything that referenced that episode, that also
needs to be gone because it's now invalid
(01:15:02):
data.
So it would wipe everything.
Um, and this would temporarily solve the problem
because now there's just the exact sound bites
from the feed in the database.
There's no duplicates at all.
And I was like, okay, well, maybe there
was a caching problem on Barry's side, blah,
blah, blah, blah, blah.
(01:15:23):
Because now it's fixed.
Um, but then as new episodes were released,
the sound bites would begin to duplicate and
then it would build up over time.
So the here's, so the fix for this,
Oh, thank God there's a fix.
The fixes is implemented and done.
The first, first, stop all the aggregators from
(01:15:48):
ingesting sound bites because you gotta, the sound
bites table at this point needs to be
read only.
So we don't want anything being written to
it.
So then you, then I exported all the
sound bites, every record out of the sound
bites table into a CSV file because I
don't want to have to reread all these
feeds.
Um, cause I don't know which feeds have
(01:16:11):
the problem, have the, yeah, well, have, um,
sound bites in them.
You know, I just don't cause I'm getting
rid of the sound bites table.
Yeah.
So you export all the sound bites entries
into a CSV file.
Truncate the sound bites table.
Now, truncate is a SQL function that you
can do.
It's like instantaneous.
(01:16:31):
It just basically empties the table.
You don't have to do like a whole
bunch of deletes.
And the nice thing about that is it
doesn't lock the database.
So you can just basically just, it's gone.
Empty the sound bites table, modify the indexes
on the table so that now it includes
the proper indexes so that you won't get
duplicates.
Um, making a compound index, download the CSV
(01:16:57):
of all the exported, you know, sound bite
entries, create a temporary table in a SQLite
database with the same index parameters as what's
now in this, in this, in the main
database, import the CSV file into the SQLite
table.
Basically it's using SQLite as a way to
(01:17:17):
de-duplicate.
And then export out of SQLite back to
CSV because what I, because I don't want
to have to upload a humongous CSV.
I mean, this thing was four gigabytes.
You know, I get to get this thing
as small as I can.
So export that CS, that now de-duplicated
(01:17:39):
the CSV back out.
And I wrote a PHP script, PHP script
that would just like slowly ingest these back
into the sound bites table.
Cause I didn't want to do like a
mass import.
Then go in and fix the API code.
So this properly de-duplicate, de-duplicating the
SQL results, then turn the sound bite aggregation
(01:18:01):
back on in the, across the aggregator fleet.
So that was, that was what happened.
Um, I guess Sunday and Monday of last
weekend, uh, uh, was.
You needed that.
You really needed that.
That was great.
It was, it was wonderful.
Yeah.
(01:18:21):
Yeah.
And you know, hearty apologies to Dutch master
Barry.
I, I was, I was blaming him for
like three months on this and it was
my problem the whole time.
And, but now, but we got it fixed.
And also, also apologies to Oscar and, uh,
(01:18:44):
for blaming them.
And I didn't blame them as I just,
cause Oscar depends on a podcast index to
get value value splits.
Yeah.
And it wasn't, nothing was coming out.
It was breaking.
Yeah.
It would just work.
Yeah.
So anyway, I, it, it was my problem
the whole time, but now we got it
fixed.
(01:19:05):
This has been another episode of Database Storytime
with Dave Jones.
Please join us next time when Dave will
explain out of memory errors on Linode infrastructure
right here on Database Storytime.
(01:19:34):
Next week.
What does it mean when you go to
a bulletin board and it says too many
connections?
Oh man.
Okay.
Well you've, you've eaten up all of the
rest of our time for today.
I'm sorry.
No, that's okay.
It was, this was, I mean, okay.
I actually was working on an excess LT
style sheet in the meantime, but you know,
(01:19:56):
otherwise, well actually, you know, I, the person
I really blame is clearly not myself.
The person, the person I truly blame is
John Spurlock.
Oh really?
How does Spurlock get the blame for this?
Because he gets full database dumps of the
podcast index with every table.
He should know.
He should have seen this.
(01:20:17):
He should have seen this months ago.
What are you doing?
What are you doing Spurlock?
Yeah.
He's just, he's clearly not paying attention.
He's asleep at the wheel.
I want to thank some people who support
the podcast index.
Many of you have been supporting it for
five years now.
As we continue to bring you the boardroom
with all of the, we got warts and
all in this one, man, man.
(01:20:38):
Thank you Dave so much for you do
all this for no money.
Exposing my flaws in public.
That's wonderful.
That's, that's part of it.
But man, what you have built is just
a beautiful system and it's so highly appreciated.
I'm tearing up.
You can support the podcast index and all
(01:21:00):
of the infrastructure that Dave needs to make
all of this work.
And it always does.
I mean, have we ever had any real
actual downtime?
I don't think so.
On the index?
Yeah.
I don't think we've ever had it like
a, like a downtime downtime.
Like it didn't work.
I don't think so.
We had downtime one once I think when,
(01:21:21):
didn't we have a downtime once?
I don't think, see, this is what I
mean.
No, your error log is like two bites.
It's been created.
Let's not talk about downtime.
Boost that came in while we were chatting
and of course we appreciate you supporting this
(01:21:43):
project value for value.
You can go to podcastindex.org at the
bottom.
There's a big red button.
You can hit that and you can support
us with your fiat fund coupons through PayPal.
We love boost coming into the modern podcast
apps row of ducks from Martin Lindeskog known
as Lyceum.
And he actually, so he always has like
a running dialogue.
So I got to find it and then
(01:22:03):
read it in reverse.
So let me see if I can find
his first one.
So he sends 420 boost for the hackathon,
then a hundred great to hear what's the
next step.
It's like he's sending us text messages.
I'm not replying.
And he says, as a side note, I
(01:22:24):
like that you were showing comments on podcastindex
.org for your podcast.
Yes, this is a, is this thanks to
the thread on Macedon activity pub protocol?
Yes, that is exactly what it is.
It's the the activity.
No, what is it?
The what's the tag?
Social interaction.
Yeah.
Yeah.
(01:22:44):
We keep using that and I'll just keep
using it.
He says you have your ducks in a
row.
That's why I sent 22, 22.
Perfect.
We got a boost from Sam, Sam Sethi.
Hey, the Seth, Seth Meister, triple seven.
The original goal of RSS really simple syndication
(01:23:05):
was to grab data from around the web
and bring it into the Netscape portal.
So stocks, weather, sports, et cetera.
My boss Mike Homer had the original RSS
feed idea and Danny Libby coded the first
XML RSS.
Today we have come full circle and have
the podcast portal page with podcast blog events,
merch, et cetera.
See, I thought I was coming up with
(01:23:26):
something new, but Sam has already done it.
It's amazing.
It's amazing.
What happened?
The way it works.
1776 from Lyceum again, Martin is code Liberty
boost.
He says salty crayon with the triple seven
audio or video is the simple V8 that
still has knobs, buttons, and a gear shift.
Video is 2025 vehicles with a giant iPad
that keeps your eyes off the road.
(01:23:48):
Audio is King.
Thank you.
Another salty crayon three, three, three, just a
node rebuild test in the pipe.
It worked.
It sure did.
And there's the delimiter.
So you're up a drip.
Scott, we'll get some, get some monthly's here.
I'm going to, these are all mixed.
These are all mixed up.
(01:24:09):
Monthly's we got drip.
Scott $15.
Thank you, Dre.
How's the weight loss journey going, man?
I haven't heard an update.
I want an update.
Yeah.
What's the scale scales.
What's the scales.
What's up with the scales, man.
Chris Bernardik $5.
Thank you, Chris.
Michael Kimmerer $5 and 33 cents.
Oh, RSS.com $777.
(01:24:34):
Oh, I've got the angel number lined up
for us.
Thank you gentlemen.
Thank you so much.
Thank you.
Really appreciate it.
You guys, you guys rock.
All the hosting company guys rock.
They're always helping us out.
They know.
They sent us a message donations and support
(01:24:54):
are rolling in.
Turns out Dave's forest retreats have magical fundraising
powers, but even when he's not off grid,
the love keeps coming.
It's amazing.
How does that work?
Get out of town.
That's great.
Uh, Kevin Bay $5.
Thank you, Kevin.
Uh, Cameron Rose $25.
Thank you, Cameron.
Uh, Chad Pharaoh.
(01:25:15):
What's up, Chad?
Chad F $20 22 cents.
Brendan at pod page 25 bucks.
Thank you, Brendan.
Uh, new media $1.
Martin Lindeskog, Mark Graham $1.
Oh, look at there.
Speak of the devil.
It's Oscar Mary $200.
Call a 20 inch blaze on the Impala.
(01:25:36):
You deliver bugs and we get value in
return.
That's awesome.
Thank you.
Yeah.
I give you bugs.
You give us $200.
That's right.
Thank you.
Thank you, Oscar.
Um, yeah, my, my dad, uh, was a
programmer and RS 400, uh, AS 400 programmer
and he had a, in the, uh, I
didn't know.
This is the more, you know, I didn't
know about this.
I didn't know he was an AS 400
(01:25:57):
guy for a long time.
He started on the, uh, IBM system 32.
How about that?
If you remember that?
Oh yes.
I have one in the corner.
Is the system 32 then the, that went
to system 36 and then that became the
AS 400.
Yeah.
I had an AS 400 at one point.
You had one in your house?
(01:26:17):
No, in my office, uh, when I had
my company and IBM was our customer, specifically
the AS 400 division.
And I think I told you this, they
gave us that.
Oh, and they said you had to serve
it from AS 400?
You gotta run your web server on the
AS 400.
Okay.
Yeah.
And they come visit the office.
Oh, there it is.
Look at it humming along.
(01:26:38):
Meanwhile, in the background, Linux.
It's all, it's all Apache.
Apache.
Exactly.
Yeah.
That's, uh, do you remember how big those
AS 400s would get?
The ones with the big disk packs?
Well, mine was about this.
You could get them, they were gigantic.
No, the one I had was about the
size of a filing cabinet, but that was
kind of the standard model, I think.
(01:27:00):
That was mostly disk in there.
Oh yeah.
Oh yeah.
Definitely.
So the back, the system 32 in the
old days had, uh, or maybe it was
the 36.
I forgot.
It's the precursor to the, to the AS
400 had what they called disk packs.
Did you ever see one of those?
No, I don't think so.
So a disk pack looked like a briefcase,
(01:27:21):
except imagine that the briefcase is laying down
flat and the handle is on top.
And so that was your personal disk pack.
And you would, and you had a, you
had a big, uh, a big opening on
the top and you would come in and
drop the disk pack down into the slot
(01:27:42):
to load anything that was on your, was
on your personal drive.
And so, but it didn't have the thing.
The cool thing about the disk packs is
that they did not have electric brakes on
the spin, on the spindles.
It would take forever to spin down.
(01:28:03):
It would gyro as soon as you pulled
it out of the thing, you'd be chasing
it around.
Oh, it was spinning around.
Yeah, for like, it would, it was like
gyroscoping in your hand.
You'd be chasing that thing for like, I
don't know, 30 seconds.
That's awesome.
Everybody would pull it out and immediately get,
they'd get yanked to the side.
Yeah, boomer moment.
(01:28:24):
Yeah.
Lauren Ball, $24.20. Thank you.
Appreciate that.
Basil Phillip, $25.
Thank you, Basil.
Podverse.
Hey, that's Mitch and the boys.
Yeah.
50 bucks.
Wow.
Thank you.
Thank you, Podverse.
Appreciate that.
And then we got, yeah, we got some
booster grams.
Let's see what we got here.
Let me re-sort.
Those were the monthlies or those were the
(01:28:45):
what else?
That was monthlies and monthlies, yes.
Okay, everything.
Got it.
This is good.
Thank you, everybody.
This is nice.
Keep those servers humming.
Bruce the ugly quacking duck, $22.22. He
said, when the comfort leaves, people are forced
to make a move.
However, how people move is the point.
Thanks for the episode.
73s.
73s.
That's key to 5 Alpha Charlie Charlie.
(01:29:08):
Very philosophical on this one.
Oh, through fountain.
This is user 5935256.
He says, first Bitcoin, or he or she
says, first Bitcoin donation ever.
And it has to go to the podcasting
2.0 team.
Thanks for opening a whole new world to
me.
Go podcasting.
Oh, awesome.
How many sets?
(01:29:30):
$22.22. Very nice.
Let me give you a go podcasting for
you.
Welcome to the party!
Cole McCormick, did you read Cole McCormick?
No, I did not, no.
Cole McCormick, Satchel of Richards, 1111, through Fountain,
he says, I was born in 1997.
(01:29:50):
I feel like I'm one of...
That's the boomer of me.
I was born in...
I like how I get labeled as a
boomer.
Oh no, get used to it.
There's just no way you can get it
right.
Whenever you talk about something that's before the
iPhone, you're a boomer.
(01:30:12):
I'm about as Gen X as you could
possibly get.
No, no, no.
I'm a boomer.
No, you're a boomer, man.
You're a boomer.
You're Gen X too.
You're not a boomer.
Well, I'm September 1964, so that I call
myself a Ben X.
You're a boomer.
You're the...
You're Gen X's hair.
That was John C.
(01:30:34):
DeVore.
Oh, sorry.
No, that's not right.
I thought it was a boomer.
Another great show.
Boomers.
There you go.
Yeah, yeah.
Yes.
I was born in 1997, says Cole McCormick.
I feel like I'm one of the only
people my age who even know what an
(01:30:55):
RSS feed is and why podcasting is awesome.
I'll be sure to drill all this opportunity
to my six-year-old nephew.
Gen Alpha will be RSS.
There you go.
Hey, there you go.
Very good.
We need that.
Get them a style sheet.
Everybody gets a style sheet.
You get your birth certificate and a style
sheet.
(01:31:17):
ComicStripBlogger12855 through Fountain, the delimiter.
He says, Howdy, Dave and Adam.
Today, I'd like to recommend a plastic fantastic
podcast called Unrelenting.
It airs 33 minutes before your Podcasting 2
.0 podcast on no agenda stream.
Unrelenting co-hosts are Jean from Austin, Texas
(01:31:39):
and Darren from a village near Chicago.
More infos at www.unrelenting.show www.unrelenting
.show Last week, their talk about ice cubes
took my breath away, but they tackle many
other topics like health, computer hardware, trading, content
creation, snake feeding, etc.
(01:32:00):
Yo, CSB.
I've seen Jean's snakes.
He has them in the house.
He has two humongous snakes.
He's got a python that I think is
11 feet long.
Iso.
Yes, Iso that.
It just decides it curls up in the
(01:32:22):
bathtub like it wants a bath and then
he gives it a bath and then it
goes out.
That snake sleeps most of the time.
He's got a smaller one, 5 feet.
And they just slither around throughout the house.
And then when we had the snowpocalypse and
the power went out.
What did he do with the snakes that
(01:32:43):
day?
Well, the problem is if it's too cold
for the snake, the snake dies.
Well, if it's too cold, the snake just
shrivels up.
Do you know what he did?
He actually laid down with the snakes to
keep them warm for five days.
Jean, you went too deep.
With his body heat.
Now he was very concerned.
(01:33:03):
He was like, what am I going to
do?
My snakes are going to die if it
gets 2 degrees colder.
I said, curl up with them.
He said, okay.
Not in the microwave.
No, no agenda millennial.
Not in the microwave.
That'll heat them up.
That's a great idea.
Tasty snack.
(01:33:25):
Jerky.
You guys are the worst.
You're the worst.
All right.
Boardroom, thank you very much.
Dave, do you get to chill a little
bit this weekend?
A little bit, yeah.
There's going to be some work going on,
but I'm going to try to not think
about work.
Okay.
(01:33:45):
Well, you deserve it.
When I'm not there.
That's exactly right.
All right, everybody.
Thank you so much for being here.
We will be back next Friday with another
Board Meeting of Podcasting 2.0. You
(01:34:15):
have been listening to Podcasting 2.0. Visit
podcastindex.org for more information.
Go podcasting!
We can do all this in JSON.