Algorithms + Data Structures = Programs - Episode 189: C++26 Reflection, std::execution & CppNorth
Episode Date: July 5, 2024In this episode, Conor and Bryce chat about the highlights from the recent ISO C++ Committee meeting in St. Louis, their upcoming trip to CppNorth and more!Link to Episode 189 on WebsiteDiscuss this e...pisode, leave a comment, or ask a question (on GitHub)TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachShow NotesDate Recorded: 2024-07-03Date Released: 2024-07-05CppNorthReflection for C++26C++ Senders and Receiversstd::inplace_vectorContracts for C++code::dive ConferenceMeeting C++ ConferenceCore C++ ConferenceThink Parallel ACCU TalkChains: Exploration of an alternative to Sender/Receiver | Sean Parent | NYC++Intro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8
Transcript
Discussion (0)
Well, two big things, I guess. First is that we voted Senders, the C++ asynchronous framework, into C++26.
And the second is that we design-approved Reflection for C++26. Welcome to ADSP, the podcast episode 189, recorded on July 3rd, 2024.
My name is Connor, and today with my co-host Bryce, we chat about the ISO C++ committee meeting that just took place in St. Louis, as well as our upcoming conference trip to CPP North.
Look at that view, folks.
You had a nice view before, but it's even better now.
Yes, and in fact, I've been working hard to figure out how to position my desk in this room so that I can show off the beautiful view of Manhattan
and also not have my screen be like super backlit.
But there's just really no option
for not having a backlit screen here
unless I like go in the closet.
Well, it's been a while since we've chatted.
How did the move go?
How is the new place?
How's the view?
The view does look fantastic, folks.
You'll have to post a photo for the people, for the listeners.
The move is going well.
Going?
It's still going?
We talked like a month ago.
No, we moved in a week before the C++ St. Louis committee meeting.
And so we were here for like six days.
And then I went to the St. Louis committee meeting.
And then my girlfriend went to Florida, to where my parents are, to go to play at the
tennis academy there.
Ooh, fancy.
I told her that, look, we're both very territorial people.
And this new apartment needs to be like a shared space.
And if one of us is in this new apartment for like a week right after we moved in without the other one, we're going to make all sorts of executive decisions.
And the other person is going to come back.
And there's going to be no reversing those executive decisions.
So I said either you got to come with me to St. Louis, I got to not go to St. Louis,
or you got to go somewhere else and do something else.
And she picked the last option.
But a couple of slight issues.
Two of the AC units in the apartment were dead on arrival.
Oh, no.
But the landlord's been very good about uh getting
people out to fix them but the ac people came right before i was going to leave for my flight
and um and this is to st louis i assume uh yeah yeah to st louis and uh they the circuit breaker
box in this apartment um was apparently not labeled correctly when they first put it in there because the AC people accidentally turned off the fridge.
Oh, no.
And we came back and everything in the fridge was spoiled rotten.
So, we came back to no AC and also a slightly stinky apartment.
Well, not slightly stinky.
It was fairly stinky.
And actually, we were both supposed to fly back at the same time on Sunday.
I was going to get into LaGuardia at like 2.30 on Sunday and my girlfriend was going to land at like 3.30.
But there were thunderstorms in New York and in Florida.
And so, she ended up being at the airport for like five or six hours
on Sunday because it kept being like, oh, we can't leave because there's thunderstorm over Tampa.
And then when it was clear over Tampa, there would be a thunderstorm in New York and they
wouldn't be able to leave and get to New York. And then it just like flipped back and forth all
day. And then eventually, they were just like, all right, everybody go to sleep. We're going to
fly out the next morning. And in hindsight, it was good that this happened because if we had both arrived home at the same time and she had had to uh uh smell what
i smelled she would not have been happy and she would have never used that fridge again we would
have just had to buy a new fridge uh that's that's still that is still a possibility that we may never get the ick out of the fridge.
And then continuing the series of unfortunate events, I tried to upgrade CMake on my workstation, which is in Santa Clara yesterday.
And Debian wanted to install a new LibC, and LibC wanted to run this user merge thing.
And long story short, my workstation is like completely bricked. Um, my, uh, my dynamic
linker, which is a thing that every program needs to run, uh, somehow got overwritten.
The, like the SIM link to it got, got overwritten and The symlink to it got overwritten. And then I
couldn't run anything. And I could have gotten myself out of this hole because I still had an
SSH session into the machine, but I was not SSH'd in as root. So I eventually could invoke the
command that would create the symlink I needed to restore the system.
But I didn't have root access and I needed it to be able to create that symlink.
And so I had a very diligent co-worker who was able to go over to the system and live boot it, a live USB and create the symlink. But as he's live booting,
he's like, you know, this machine's running like really hot. I think your water cooler is dead.
So, then he goes to IG to try to find a water cooler and they don't have a new cooler.
So, then eventually he goes and like cannibalizes another system, finally finds a cooler that's
going to work for my system, gets my system back up um i still can't actually get into it uh it is like up and running now but
there seems to be some other issue so it's just not been my week man
there seems to be a theme ac fridge and cooling system yeah i didn't even think about that. Yeah.
Everything to do with temperature is broken.
So what percentage
are you moved?
Are you fully moved in?
I mean,
all of our stuff is here.
I mean,
my room is unpacked
by my room.
Is this a webcam?
Can you pick it up
and rotate it around?
It is attached here.
However, I do have controls, so I can't do that.
This is the second bedroom, which is where my office is.
You can see it's not fully unpacked.
Oh, and it does do 360.
No, maybe it doesn't go 360.
It's called the Insta360, so i would have assumed it would go
all the way around but i guess it gives you 360 degrees but does not actually rotate all the way
around which kind of makes sense um is this a new a new camera i've never i've never seen you in
such uh in such high fidelity slash uh you've never been able to spin the old camera, there was no way to set the contrast.
And there was no positioning of the camera where either my face would be very dark or it would be very backlit.
And so I needed to get something where I had contrast control.
And so I got this thing.
It also has some AI and tracking.
And then, oh, the most exciting thing is this building doesn't have a gym,
which I was able to use as justification to put in this bad boy,
a Bowflex MAX 10, MAX 16 elliptical slash uh stair machine um which is very good far better than the
ellipticals in my old building i got quite the workout last night and um that's quite nice because
then if you're in a meeting i've always i've always kind of wanted that like if you're in a
meeting you can just like you know do some stairs while you're right at your computer basically it
was a big part of the motivation is that this unlocks like an extra two to three hours of
meetings for me because it's hard to take meetings in the gym because it would be rude
so um yeah i mean i still like to get out on my bike and actually like go out and ride um but uh
especially during the winter this thing's going to be clutch for for multitasking so if i'm
out of breath during a meeting it's probably because i'm i'm on this thing i think it's an
entire in like in 2024 it's an entirely reasonable and like it should be encouraged almost i'm sure
there's some study out there that shows exercise elevates brain activity and you know mental focus
and uh i've heard i've heard people on meetings before that they definitely sound like they're on a walk or they're doing some exercise but like isn't that that's what
steve jobs used to do you know it's like oh we're doing a meeting let's go we're out the door we're
going for a walk around cupertino and uh i think it's good you know i think we should we should be
encouraging exercise especially like so many meetings like 90 of the participants aren't
saying anything right so if you've got a
stationary bike or a elliptical or even like a i've heard of these little like walking like
un-electric walking treadmills that are just like you start walking and then the belt starts moving
yeah that kind of stuff it is tough because i like to take minutes in pretty much every meeting
that i'm running um and those are the meetings that I have the control over the schedule.
So it is a little bit tricky, but maybe I'll try AI transcriptions or something like that.
Oh, and you know what?
I just realized we should have had this recording session an hour later,
because right after this, I'm going to pick up my chiming clock
it's going to drive you crazy that is now finally repaired i'm sure there's a future
several hundred episodes where yeah where henry the clock or is it on the clock yeah
he will make his uh debut anyways we got uh got some things to chat about we mentioned the uh iso c++ committee
meeting in um st louis which yeah reflection baby you want to give a recap on uh we'll call this
episode it'll be uh we'll move and get mentioned we're not sure but we'll call it you know the
st louis iso committee meeting you know i'm such a boisterous and brash character that it would be a huge mistake to not include some of the little content where I'm just having a bad week.
Where just like I'm cursed.
Like I feel like the listener deserves to hear that.
That's all staying in the episode.
That's all staying in the episode.
The question is, does it impact the title of the episode that's what we were talking about there because we kind of it
needs to be clickbaity right you know it's like people care about the committee meetings and the
progress of c++ and then we're also going to briefly mention in what is it it's july 2nd
i believe in 20 in t minus 20 days bad news Actually, maybe we'll talk about this first. Bad news.
CPP North is happening.
And the bad news is I'm going to miss your talk, Bryce.
Because I don't land back in Toronto from a bachelor party I'm going to be at in Mexico until 2 p.m. on Monday.
And your talk is at – So you're not going to be around for July 21st, my birthday.
I don't care about you missing my talk.
You're missing my birthday.
Well, you're going to have to figure out how to make that up to me.
Didn't we already have dinner plans or something like that?
We do already have dinner plans.
I don't think that was for – well, if it was for the Sunday, yes, bad news.
Actually, it may have been.
Let me check.
Wait, we already have reservations?
Pretty sure. I didn't realize that. I'd be surprised if we didn't. Wait, we already have reservations? Pretty sure.
I didn't realize that.
I'd be surprised if we didn't.
I would be unsurprised.
I feel like I would have known about these reservations.
I thought I made reservations at Aloe.
I don't see it here, though.
I think we definitely talked about it because you, correct me if I'm wrong, are going to Niagara Falls or Niagara on the Lake?
No, we have reservations on July 23rd at hour.
We do? We've already been there, man.
You've been there like three times.
You find another place.
That's true.
TBD, where we go. point is cpp north is happening
21st to 23rd i think are those the dates we should get these dates right i assume that the 23rd is
the wednesday correct yeah i believe so yeah yeah it's got to be the wednesday yeah 21st to 24th
actually no so that means that the 23rd is going to be the Tuesday.
Why am I looking at August right?
Because I should have done that.
So, yeah.
It says it starts on the 21st because I think on the 21st there is an evening social where people pick up their badges.
And celebrate Bryce's birthday, of course.
And, yes.
I guess maybe they should just rebrand that to the Pick Up Your Badge. Actually, it should be the Bryce Birthday and Pick up your badge celebration and then the monday to wednesday is when the conference is happening
gifts are not required you can always just bring me cash
oh bryce
and yes the reason we bring it up
is because we're both going to be there
last year I had to
replace you with Ben Dean
this year you will not be replaced
as you will be there
Ben Dean will be there we'll probably talk to him
he's got to talk you've got to talk
anyways we'll circle back
to CBP North at the end
give us the update about the ISO
committee meeting. Well, two big things, I guess. First is that we voted senders the C++
asynchronous framework into C++26. And the second is that we design approved reflection for C++26.
And both those are pretty big features.
I mean, I think reflection is a much bigger deal.
Reflection is a huge game-changing feature.
Herb said that he thinks it's going to have the biggest impact on C++ of any feature since C++98.
I think that's probably fair I think it
may compete with a couple others
you know
modules impacts the
language in ways outside
of just the source code right
it impacts how we structure code and
it's going to still be years before we sort of see the
impact of modules
but it's still going to be years before we see the impact of modules.
It's still going to be years?
I think so, because it takes a while for the ecosystem to adopt things.
You could argue that maybe some set of C++11 things have had as big of an impact. I don't know.
Maybe one could argue move semantics.
I'm not even sure I would go that far. Constexpr maybe. Constexpr may be the thing because it unlocks this whole new field of
compile time metaprogramming. But you could kind of do that before. Reflection is really very game-changing. It unlocks a variety of things that weren't previously possible,
but also it gives us new ways to evolve the language.
Things that we previously had to build as library features,
we could build as...
Or the things we previously had to build as language features,
we can now build as library features.
Yeah, isn't Spaceship one of those?
Yeah, could have done.
Well, Spaceship had a syntactic component, right?
Like there was a new operator.
But if you had just decided to call it like a, you know,
just to call it like a member function, you know,
just pick some protocol name, you know just to call it like a member function you know just pick some some protocol
name you know like uh like call like compare um then you could have done the rest yeah yeah
um so yeah it's a big deal i'm i'm very confident it'll get in at this point um my uh our colleague
actually andre alexandrsku has been been working on some follow-on things, helping to drive some of the injection part of it.
How do you put things back in? How do you generate new stuff based on reflection?
How do we generate new functions? How do we like wrap functions and members and classes?
And how do you manipulate the things that you've reflected?
And the model that we've settled upon is this thing called token sequences.
So there's a couple different approaches we explored. We explored a spec approach where you could define a new function or type by – you'd call define class and then you'd pass in this struct that describes all the members of the class and the types and stuff like that. And we looked into that too for functions where you define the signature and whatnot. But one of the properties we wanted is that we wanted when you're writing the injective code, when you're writing new code that's going to be generated at compile time,
we wanted it to look like C++ code. And this spec approach doesn't really look like C++ code,
and it gets very verbose very fast. And there's a couple different variations of that approach. There's one that's I think it's sort of the same broad category, but it's more AST
based where you're like manipulating the AST in a very similar way where you're sort of doing it
programmatically. And I think it had all of the same downsides, but it also had the additional
downside that exposing up the AST in that way makes it
harder to evolve the language. Because like, you know, for example, if we have our standardized then the AST nodes for expressions might change in type.
They might not be statement nodes.
And so it might limit how we'd be able to evolve the language going forward.
And then we also looked at a string-based manipulation approach,
where the way you injected code is you just gave it a string and said,
here's some string of C++ stuff
inject this into the program
but
there were some concerns that that's
not really
not going to really be
robust, that it could be brittle
that diagnostics could be not great
that it would sort of not be
hygienic and you wouldn't get any syntax highlighting
underneath that code in the string, which would be a little unfortunate.
But that was sort of kind of the runner-up approach.
And then the token sequence approach is that instead of manipulating strings, you'd manipulate
these sequences of tokens.
And this is sort of information that pretty much all the compilers carry around.
And so this would be a little bit cleaner.
And we even imagined that we could build a hygienic macro facility on top of this.
So in some ways, it's similar to, I think it's somewhat similar to Rust macros and how they work, this token sequence stuff. So not clear whether we'll see token sequences in C++26. It's not part of the
core reflection proposal that's been approved. And it's not even clear how much of injection
we'll see in C++26, but we're definitely still working on it,
and we've still got a good bit of time.
So we're pretty hopeful that we're going to get some of this follow-on work done.
We also landed in-place vector at this meeting,
which is a vector which has a fixed capacity
where you can just give it a block of memory that's on the stack or
statically allocated, and then it can grow dynamically within that capacity. It'll never
dynamically allocate memory, but it can grow in its size within that fixed capacity.
So, that's been something we've been working on for a while.
The std-cimd proposals made a lot of progress. We're going to likely see that get advanced into C++ 26 at the
next meeting. Those are sort of the two big library features that I think we can expect for
26 are going to be SIMD and senders and receivers. I know that that's pretty exciting because
std execution and reflection are obviously both big. I know that I so that's pretty exciting because Stead Execution and Reflection are obviously both big.
I know that, I can't remember whose plan it was, but there's some C++26, you know, large plan.
Pattern matching was on that list.
Is there any update on pattern matching or no?
Not that I'm aware of.
It, yeah, it could well have been discussed last week.
I don't know.
Yeah.
There's a lot of, there's a lot of room.
So wait, there was some, some time we spent talking about trivial relocation, um, and
a contract.
It's been another big discussion.
I do not think contracts will make it into C++ 26.
Um, I think it's going to probably go to a TS or something.
There's still a lot of, a lot of open questions there.
That's an interesting update
because I think the last thing I heard about contracts
because I think, doesn't Teamer co-host of CppCast?
He's, I don't think he's, is he the chair or vice chair think he's is he the chair or vice chair if he's not the chair or vice
chair he's one of the uh regular attendees of that working group and i think he's been pretty
hopeful on the episodes of cpp cast when he mentions it that it'll uh get in for c++ 26 but
i i i just think it's unlikely because there's still a lot of uncertainty about the
design and it would pretty much need to make it at the next meeting or maybe the meeting after that
but really it would need to it'd need to be settled by the next meeting um where's the
next meeting is in pol Poland in Wroclaw.
Who's hosting that?
Nokia, I believe.
And my Polish girlfriend and my mother will both be there.
That's exciting.
When is it?
That's September?
November. November.
Why so far?
I thought there was three meetings.
There are, but it's always February, March, early summer, and then November.
And is it in Wroclaw or is it in Warsaw?
It's in Wroclaw.
Okay. So is it going to be coinciding with the Code Dive conference?
It is. The Code Dive conference is like the week after in Warsaw.
I don't think I'll actually be able to go to CodeDive this year, unfortunately,
because we're going to Core C++.
And so we'll be flying from Warsaw, I think, on the 25th,
because Core C++ starts on the 26th.
And CodeDive is on the 25th.
So I'm not certain if it's going to work out.
Are you going to meeting C++ as well?
I am, yeah.
The one in Berlin?
I'm going to meeting C++, and I'm doing a little bit of a tour of German C++ user groups
and HPC centers and people who like GPUs.
Nice.
What's the talks that you're going to be giving in November?
It's going to be my same talk, the Think Parallel talk.
I'm probably going to give a slightly updated version of it that focuses on some different algorithms than the scan algorithms that have been in the versions that I've given thus
far.
So I may talk about some reduction algorithms.
Okay. Yeah. And then I guess that full circle
half a circle, who knows what portion of a circle
brings us back to CPP North
which are you giving me
I'm giving my think parallel scans talk
okay, because I was going to say
I've seen the ACCU talks start to come out online
I have not seen yours yet because i've been waiting to
update the link from whatever episode we included that in the show notes and i guess now i have to
include it again in this show notes uh but it'll be a an unlinked link because the the recording
at least as of yesterday or two days ago um is not out yet but you'll be giving that same talk
so i guess uh it's
good news i know they're i know they're working on it because they asked me if they could give
it a longer title because think parallel is not a very good title for seo and so they wanted
they wanted the youtube video to have a longer title yeah that's an interesting what are your
thoughts on that because i think my cpp north talk from last year its title was
composition intuition but they ended up renaming it at least in the youtube video like uh function
composition in i i i told them i they asked whether they could rename it and i told them
that i would prefer not to because i dislike dislike talks that have a subtitle in the name.
They wanted to do Think Parallel, colon, something, something, something.
And I just am never a fan of that.
And I think I'm happy to have some keywords put in the description.
And people will find it if they're gonna find it you know i i trust
the youtube algorithm is what i'm saying you know yeah i will say i will say oh my god i
well a little tangent here just a small tangent folks i love the youtube recommendation algorithm
whatever folks if you're a listener or you're friends of someone that works on the YouTube algorithm, give them a handshake next
time. Literally with like, I think it was 37 views, the Sean Parent meetup talk from New York
C++, which I actually don't know. Maybe I am subscribed and that's why. But it was not in
my subscription pane. It was on my homepage with the chains talk that we saw back in March. It had
37 views and YouTube recommended that talk
to me. Like, let's go. It's the most esoteric thing. Do you think that YouTube's recommendation
algorithm does content analysis? Do you think that they recommend solely based on title and
description? Or do you think that they... No, they do it because the reason I would say that it definitely does content analysis
is because when you do a Google search these days,
sometimes it'll give you the timestamp within a YouTube video.
It'll say like minute 337 discusses like if you say how to do something,
it'll give you a YouTube video and then...
YouTube videos, you can now include chapters
in the youtube video so you can say like minute zero to minute one is the intro minute one to
minute three is you know some other topic i don't know if you've ever seen that on a youtube video
but yeah so it might be that but um but i wonder whether it couldn't just be the keywords too as
well that you attach to youtube videos right um yeah but that wouldn't give you the timestamp.
But I would bet that if they're not doing content analysis for recommendations now, they will be sometime in the near future.
I mean, because they're already doing AI transcription, right?
Yes, yes.
They've been doing transcripts for a while now.
So they have the Javascript transcript.
So that's just text.
That's pretty low cost for them to use in ranking and recommendations, right?
Like if they're already doing the thing that generates text from the video, which is the
expensive operation, I would assume, and they're already doing it because there's already a use case for that, transcripts.
Then they've already got that data.
They may as well use it.
They're almost certainly already doing things like sentiment analysis to analyze whether
somebody is really angry or there's violence in a video because they have to do that for
content moderation right like if someone like uploads a video of like you know like crime or
like like stuff like that or like violence they they need to be able to detect that um so that
they can either moderate it away or that they can put a you know graphic violence warning on it um
uh you know that's that's probably ai i mean it maybe maybe there's somebody who just watches or that they can put a graphic violence warning on it.
That's probably AI.
I mean, maybe there's somebody who just watches all the videos.
I assume some AI is involved.
And then they also have to do content analysis for copyright infringement.
So they're doing a lot of stuff i'd be i'd be shocked if they're not feeding um yeah uh like data from from what you're actually talking about into your um into the uh the recommendation
algorithm so so maybe the talk title doesn't really matter no i i definitely think it does
i mean talk title and thumbnail i, are the two most significant things.
I think for a conference talk, it doesn't matter as much.
But I think for like some viral video or just some video where you're trying to get thousands or hundreds of views.
I don't think I need to put the word C++ into the title.
I mean, as a talk title, you definitely don't.
For optimizing on YouTube, I actually don't know.
Let me put it would it help almost
certainly it would help do i think that youtube that youtube's algorithm knows that my talk is
about c++ even without me yes yes yes yeah i think it does i think it's got some smarts there
i think it's done some analysis on the transcripts i think it's done some rankings there i think it's done some analysis under transcripts i think it's done some rankings
and i think it knows this is a thing about c++ and if somebody searches for c++ you know parallel
programming that my talk will come up yeah like if yeah exactly like i'm sure putting code report
in my talk title instead of my actual name because that's what i'm known by on youtube
that would help but i'm not going to do that. Although actually, I've seen that one conference actually did,
they put my name and then they put my handle next to it. But anyways, the name of the talk,
they switched composition intuition to function composition in programming languages. Was that
a good decision? I mean, it is one of the top five talks on the YouTube channel, the CPV North
YouTube channel. So I don't know.
Maybe they do know what they're doing.
Who knows?
I, from a, what's the word, like a purity point of view, you know, it upsets me that
like it's not the name of the talk.
You know, it's the name of the talk is composition intuition.
And it matches my other talk, algorithm intuition.
So to change the title in the YouTube thing, you know.
So I want to dig into this a little bit more. algorithm intuition. So to change the title in the YouTube thing, you know, what are we doing?
I want to dig into this a little bit more. I want to think about what are the
expensive compute workloads in processing a YouTube video. So generating the transcript
isn't that bad. And I say that because audio data is substantially smaller than video data, right?
You've got this audio data. All I know about audio processing is there's a lot of Fourier
transforms. So, I assume that the way that they generate the transcript is that they take the
audio data, something, something Fourier, and some AI and neural nets these days, and then it produces words out of it.
Things that are going to be more expensive, I would imagine,
are doing things like OCR, like recognizing text that's on the video content, and also doing things like
object detection. I don't know whether they have a thing that searches for
copyrighted logos or stuff like that, like copyrighted images or things of that nature. But I would presume that there's something like that.
But like, if you have like a, you know, a 30 minute YouTube video at like 4k and 60 FPS,
and you want to search through like every frame of that video to see if there's any of a wide range of
things that may be in that video you know a logo or you know uh some graphic content
um like that's that's got to be pretty expensive right you know yeah i have no idea but i would
imagine that they have some kind of like similar to like, what do they call it like a Monte Carlo tree search. If you're familiar with the MCTS, where it's like, they choose that was like the algorithm underpinning AlphaGo and AlphaZero. Actually, I'm not sure about AlphaZero, but definitely AlphaGo is that instead of exploring all possible paths, they would do a couple iterations, figure out the best options,
and then continue to explore those.
So every single few iterations,
they would prune for the top ones and then keep going.
So I imagine they have some similar filtering mechanism
where they've got some relatively inexpensive way of checking,
does this pass all of these things?
And then it narrows it down to the five percent of
videos that look suspect and then each step they do the five percent of frames right like you know
they could take that 4k video they could down sample it to like a very low resolution and then
they could do an initial pass to see like you know okay which which parts of this do we think are sketchy and maybe need to, you know, to be analyzed more?
Yeah.
Yeah.
I imagine it's something like that.
I would also assume that, like, they profile channels, especially ones with a lot of subscribers, and those ones immediately they get hit with the full so if you've if you've
got a million plus or you know even half a million plus subscribers and especially if you have a
history of posting videos with questionable content you immediately get hit with you know
all of the uh all the checking versus like the almost guaranteed the hardest things to check for
are these new youtube channels that are brand new
and don't have any likes, you know, for, for my channel, I'm sure that they, you know,
they don't actually check a lot of, they, they do a couple of like, Oh, verification, verification,
but like all my stuff is just programming content. So as long as they can verify that it's, Oh, it's
another programming content video, you know, it goes down some separate tier and gets a green
check mark, whereas some other bigger YouTubers that are covering like news or something like
that and potentially are going to be violating some um you know code of conduct thing or it's
going to get put some label on it those immediately are going to be you know put through some other
pipeline i imagine there's a bunch of pipelines and it's not just like, oh, we treat every video equal. Like that seems like it would be a recipe for false positives or.
Yeah.
Yeah.
No, no.
I mean.
But what you're saying makes sense.
And it makes sense that they would use the history of a channel.
And what you just said about like categorization, I bet that that plays into it too. I bet one of the first things that they do is that they have some relatively cheap pass that,
um,
that categorizes what kind of video it is.
Um,
and like,
if it's,
if it's a video about,
you know,
news or something,
um,
or like current events that maybe they run some different set of filters or like if it's,
if it's about politics, you know, they run some other set of filters. like if it's if it's about politics you know they run some other set of filters yeah already you have to you don't have
to but it helps if you do and actually you might have to because i i actually don't know uh you
have to you there's a combo box for specifying what category of video it is so all of mine are
like education or technology or something like that. But they definitely have like new sports.
I imagine sports is like a pretty low one, right?
Like TSN has a YouTube channel or ESPN has a YouTube channel.
They're always uploading their, you know, sports highlights.
They probably get that stuff green checkmarked immediately.
And like the biggest problem is copycat channels that are illegally posting copyrighted videos.
Yeah, I don't know.
I think sports actually is probably the more intense ones.
Cause like all of the,
cause sports broadcasting is like pretty strict on who gets to broadcast
what,
like I,
every,
every tennis grand slam,
my girlfriend and I go through the same song and dance of figuring out like,
where can she actually watch,
you know,
Wimbledon or the French open. and it's because you know they they're not just
like available to to stream for free um there's like a ton of people who stream like live commentary
of them but don't show the video like I'm I'm sure that sports is is actually a a a tricky one um
I bet I bet like the ones that are um i don't i don't know what
like the easy ones would be there's there's like a lot there's a lot of things to think about there
uh because there's like so much there's you know it's not just like recommendation that they got
to do but they also have to tackle this whole like content moderation space and like that gets just real complicated
um yeah especially when you consider the i can't remember if it's billions of hours of content they
get uploaded every hour every day or something like that yeah it's some it's some absurd number
that's like unfathomable and they're like oh how did your moderation team not catch this and they're
like moderation team like we have a moderation team but they they manually look at a fraction of a fraction of the of the content uh i didn't even
think about this but but but like language has also got to be a a fairly big thing too right
like you need to i don't know is it is that when you submit a video do you say what language it's
in i don't think you do no but i think I think it auto-detects that stuff.
Yeah, it's got to be pretty easy.
I think that part is pretty, like, you're not allowed to swear in the first 10 seconds or something.
But, like, that, I imagine, is not actually a hard problem these days.
Really not allowed to swear in the first 10 seconds.
I think you are allowed to.
But if you do, you get, like, some kind of not safe or something label.
I don't know? I don't,
I don't know.
Cause I don't swear in my YouTube videos,
but I think there are certain YouTube channels that have like a part of
their,
like a catchphrase is like,
you know,
says some word that's on some,
you know,
not allowed list.
Stay tuned listener.
We've got Kevlin Henney almost lined up for next week. And we'll have a couple
episodes of that. And then we'll probably be live from CBP North. If you're there, come say hi.
All right, we'll chat next time. All right, I gotta get back to figuring out how Python
decorators work. Be sure to check these show notes either in your podcast app or at adspthepodcast.com
for links to anything we mentioned in today's episode as well as a link to a get up discussion where you can
leave thoughts comments and questions thanks for listening we hope you enjoyed and have a great day
low quality high quantity that is the tagline of our podcast
it's not the tagline our tagline is chaos with sprinkles of information