Algorithms + Data Structures = Programs - Episode 198: Talks ∧ ¬ (Pigeons ∧ Elevators)
Episode Date: September 6, 2024In this episode, Conor and Bryce chat and then Conor adds some technical content: upcoming conferences & recently watched talks.Link to Episode 198 on WebsiteDiscuss this episode, leave a comment,... or ask a question (on GitHub)TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachShow NotesDate Recorded: 2024-08-26 & 2024-09-06Date Released: 2024-09-06C++ ContainersC++ std::rotateMaximum Contiguous Subarray Sum (MCSS)Rappel: Compose Algorithms, Not Iterators - Google's Alternative to Ranges - C++Now 2024Think Parallel - Bryce Adelstein Lelbach - ACCU 2024Hylo - The Safe Systems and Generic-programming Language Built on Value Semantics - Dave AbrahamsC++ Under the SeaLambda WorldImplementing Ranges and Views in C++ - Roi Barkan - C++Now 2024Reintroduction to Generic Programming for C++ Engineers - Nick DeMarco - C++NowIntro 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)
And the third and final talk, which was the best talk of the three by far, was Dave Abraham's
keynote that just came out a couple days ago from C++ on C.
Welcome to ADSP the Podcast, episode 198, recorded on August 26th and September 5th of 2024.
My name is Connor, and today with my co-host, Bryce, we chat and don't talk about anything
interesting.
So I appended technical tidbits at the end, upcoming conferences, and some talks that
I have watched recently.
Okay. and some talks that I have watched recently. Okay, so, I mean, yeah, I was late,
but I have very excellent reasons for being late today,
which is that my house has just been utterly chaotic the past eight hours.
So first of all... when you say house do you
mean apartment or do you mean an actual house like in a different city i i mean i mean um both
the place that i reside in which is an apartment but also house in the sense of like my household
um like the people and things that are in that apartment.
I see.
And that has been utterly chaotic.
So first of all, we woke up this morning,
and I had to cancel my first three meetings to go rescue a pigeon. where we go to
NDC Tech Town
I might have 10x'd all that stuff
but don't worry I might 10x all this stuff too
so the listener is not confused uh so that's why i'm a little bit late connor
because uh there's a lot of a lot of chaos going on here well i'm sorry to hear that ramona is
feeling under the weather hopefully she will bounce back before your travels yeah if you
listen real carefully in
the audio there may have been a cough or two there all right the listener will let us know
if they heard that cough other than the absolute chaos how have things been things have been good
things have been good i've been uh i've been keeping busy i've been keeping busy. I've been keeping busy. Got a lot of little projects.
Some of them are exciting little projects.
And yeah, getting all moved in.
You've also had a lot of topic suggestions, which we will get into.
I have had a lot of topic suggestions.
I think I tried to write them down somewhere.
I just don't remember where I wrote them down.
But before we do that, a correction.
Last episode, I mentioned that there were multiple container adapters, and I listed three, one of which, this isn't C++,
one of which turns out not actually to be a container adapter.
I listed the three.
What were the three you listed?
They were stack, queue, and deck.
And it had been a while since I actually looked at the container adapter list.
Deck's not a container adapter, is it?
And yeah, deck is not a container adapter.
So I misspoke.
See, I knew that one.
2024 has been such a good year for Bryce not looking like a complete idiot during quizzes on this podcast i'm not
saying like like come off as sounding smart just not like a complete idiot i can't honestly even
remember how many quizzes we've had in 2024 i think that if we scored all the quizzes from
like start of this podcast 2023 my score would be failing and if you if you
include 2024 i think my score would be a c we haven't had we haven't had a quiz though
like if we did any quizzes in 2024 they all must have been in like the first two months of the year
because we haven't done one recently at all i have been doing some research for this podcast
you say i'm such a bad podcast host but i've been doing some research for this podcast you say i'm such a
bad podcast host but i've been doing some research i've been listening to some podcasts and some of
my favorite podcasts wait you've been some of my favorite podcasts you've been listening to podcasts
now after four years almost you started listening and now now you're done i i i always listen to
podcasts it's just i predominantly listen to economics podcasts.
I listen to Planet Money and The Indicator, which is Planet Money's daily podcast, and sometimes for economics.
But I primarily listen to Planet Money.
Sometimes I listen to audiobooks now, too.
Hello, Ramona.
She's in the background.
Hi.
Bryce is ignoring you.
Hi.
Oh, the whole family's here.
I'm sorry to hear that you're feeling below the weather.
He's saying that he's sorry to hear that you're feeling sick.
Thank you.
Hopefully you bounce back.
Did you tell him what you made me do this morning?
I did. Yes, I did tell him about the pigeon rescue.
But don't you feel good that we saved a life?
That pigeon would not have made it. him about the pigeon rescue but don't you feel good that you that we saved a life that pigeon
would not have made it yeah and i also feel great that you put me in a highly pathogenic okay i i
neglected to mention this part when we got to the bird rescue place there was a big sign on the
store on the door saying do not come inside risk of bird influenza. So there is that. I was already compromising.
There is that.
I did.
Oh, yeah.
So anyways, I've been listening to some of my favorite podcasts like Planet Money and
The Indicator.
And sometimes on Planet Money, they do a listener quiz.
And I actually remember that on another podcast I've listened to a lot, which is the British
History Podcast, which that got me through COVID. It's a podcast by an American guy about
British history. And there's also a American history podcast by a British guy. But I listened
to like 500 episodes, just like whenever I would go biking, I'd listen to an episode. And every few
episodes, they would have a listener quiz.
I can't say I always did great on the listener quizzes because British history, there are a lot of names.
But I think we ought to do some listener quizzes.
And I think we ought to, well, we should do what Planet Money does, which is we should
bring somebody on to do the Planet Quiz live, just like some other great NPR radio shows
like Wait, Wait, Don't Tell Me.
So yeah, I think we should let people enter in,
and then one lucky listener can come on the podcast,
tell us a bit about what they're doing,
and play to win some sort of prize.
Yeah, I guess.
I guess maybe
if it's a thing
on other podcasts.
I mean,
they're going to sound...
Shouldn't you know?
Don't you listen to a lot of podcasts?
I listen.
I'm like probably...
I listen to more podcasts
than anyone I know,
but they...
None of them are like history.
In fact, I don't think
there's this...
I've ever heard a quiz i think we
could do a quiz i think we could do this we can make this happen yeah i mean uh how about we
listen folks if you would like to have see the thing is is if we ask the listener i was just
about to say if we ask the listener to go and leave a comment uh if they would or would not like
or maybe i'll actually i'll put a poll out but the thing is is it's going to be heavily skewed
because if i was a listener i would vote yes to that regardless if i wanted a quiz just for an
opportunity to go on like my favorite podcast like i would just be like oh they're going to bring on
people that sounds fun so is it really that people want to hear a quiz or do people want to have like, you know, their voice highlighted? Like I would
love to go on like a bunch of podcasts that I really like. Well, okay. Maybe we just, maybe
we'll just pick a random listener to come on the podcast, but I think the quiz part would make it
fun. Come on. You, you always, you always, you always say I don't contribute. Here I am. I come
up with the whole thing. I'll even make the quiz.
Well, okay.
Maybe that's a step too far because then I'd have to actually go and listen to past episodes.
Oh, wait.
The quiz is based on our podcast?
Yeah.
The quizzes are based upon – like that's what I've typically seen, the format, where you ask some questions upon topics that were in recent episodes.
Oh,
that sounds way less interesting.
My thought would,
is it was going to be like either like a programming language quiz podcast or
like a C plus plus 23 quiz podcast.
We can do the quiz in whatever way,
shape or form you'd like.
I just want to have a quiz.
I mean,
we've had quizzes before and i think the
the listener's favorite quiz has got to be that i'm not taking no but that's the best is because
watching and listening to you squirm is everybody's not favorite pastime but just uh you know we uh
anyway so maybe coming to a theater or podcast player, player near you, user quizzes.
Not today, though, because we don't have a guest and we don't have a quiz.
There were three topics you wanted to talk about.
One of them is boring.
I got a fourth one. And the other two were rotate and MCSS, or otherwise known as maximum contiguous Subarray Sum, otherwise known as Cadain's
Algorithm.
What would you like?
I don't remember why I wanted to talk about that one.
So let's, okay, what was the one that was boring?
No, I'm not going to bring that one up because I don't want to.
Oh, the elevator one?
Yeah. So I'm... Anyways, how long have we been talking for because we haven't really said anything
interesting should we uh you know no i know what do you mean we haven't said anything interesting
i think i think i think the listeners i think we should have my elevator guy on to explain to us
the the algorithms and logics behind elevators all right yeah if he wants to come on sure uh but
no let him know let him let him know in advance that i'll be hostile and uh
i i will i i will let him know that okay so let's talk about let's talk about rotate all right
seeing as that was the most riveting podcast you've listened to on ADSP the podcast and at the moment depending on how long
this little segment at the end goes it's probably going to be the shortest episode yet I checked
the shortest episode to date was 16 minutes the average is 33 so we're way under what it needs to
be but I just couldn't let you suffer through the elevator and pigeon conversations that
I was so eager to have with Bryce. We are adding a couple of technical tidbits, a couple conference
announcements, and reviews of talks that I have watched recently. So first things first, I'm going
to be at two conferences in October.
The first is Lambda World, which is being held in Cadiz, Spain from October 2nd to 4th.
I will be giving a talk entitled The Power of Function Composition.
And the workshop is entitled TASA Programming in BQN, WeWa, CAP, and APL.
So if you're interested in array languages or functional languages
and you are in the area or not in the area and interested in traveling,
be sure to check that conference out.
The second conference is a brand new C++ conference.
You might have heard of it already.
C++ Under the Sea, a play on Phil Nash's C++ plus plus on c it's being held in breda netherlands
hopefully i'm pronouncing that correctly it's just outside of rotterdam i believe it's on october
11th is the day of the conference october 10th is a workshop day both bryce and i will be there
i'll be giving a talk on arrays fusion and cpu versus the gpu and bryce will be there. I'll be giving a talk on arrays, fusion, and CPU versus the GPU.
And Bryce will be giving, I believe, one of his Think Parallel talks.
I'm not sure if it is the one that he gave at ACCU and CPP North or if it's the second
edition.
I'm hoping it's the second edition, but maybe we'll talk about that on a future episode.
Speaking of the Think Parallel talk, so I'm gonna recap very briefly
the three talks that I have watched
in the first five days of September.
And one of those talks was Think Parallel.
I can recommend this talk.
It's definitely not Bryce's best talk,
but it is a good talk.
However, it is very dense
and I'm not sure he achieved the goal
he was aiming to achieve.
I've read a couple of the comments
in the YouTube comment section
that basically said they enjoyed the talk,
but they're going to need to rewatch it a couple times,
especially towards the end.
It is quite complicated
and there is a ton of code
that potentially it could have been split
into like a part one and part two.
But if you're interested in how scan, inclusive scan is and can be implemented in parallel,
be sure to check that talk out.
The other talk or one of the other talks that I watched was by John Bandella.
I believe there was a co-speaker that did not speak.
I can't remember their name off the top of my head.
And they are two Google engineers.
John was the one presenting at C++ Now. And I should add, Bryce's talk was from ACCU 2024.
And John's talk was on Repel, which is a sibling library to Abseil. And it is a alternative to the ranges library that is in the C++ standard library, as well as Flux,
which is a competitor to that, and RangeV3, which was the initial implementation of C++20's ranges
library. The difference is, is that it is an eager library, not a lazy library, and the API is
incredibly different. They don't
overload the pipe operator. And therefore, you need to pass things in a kind of Lisp style.
And in order to compose things, you have to make use of a RPL colon colon compose. And in order
to apply things, you have to make use of a RPL colon colon apply. Honestly, the aesthetics of the library
was not a huge fan of.
However, it could be much more performant
because it's obviously a completely different design
than the ranges.
And it also claims to be a lot safer
because it doesn't suffer from
a lot of the dangling pointer issues
that ranges has famously been criticized for.
And unfortunately, it's not open source.
So I would have definitely taken this library for a spin
and benchmarked it against the Flux range V3
and C++ standard ranges, as I've done in the past.
But it's not open source.
So until it is, we won't know which is better.
But they said that they were working towards
open sourcing it in the future,
if folks are interested.
I'm interested.
So if John, you hear this, hopefully Google can work towards that. And the third and final talk, which was the best talk
of the three by far was Dave Abraham's keynote that just came out a couple days ago from C++
on C. It was about at a high level, the Hilo language, but actually not so much. I don't
think he even showed any Hilo code. He might have showed a tiny bit,
but it was more of a philosophical talk about MVS, mutable value semantics, and the history
of where MVS and Hilo came from in Swift. And he mentions Stepanov and generic programming.
Absolutely fantastic. Also, he shouts out Ken Iverson and APL in the first couple minutes of
the talk. We absolutely love that, folks.
We absolutely love that.
And Dave is just a fantastic speaker across the board.
We cannot recommend this talk highly enough.
Definitely the best of the three.
In the pipeline, oh, also I should mention, RPL is the namespace on the Repel library.
Apparently, Repel is a synonym for abseil. But originally,
RPL stood for ranges pipeline library. So fun fact, if you watch the talk, you will also have
known that in the pipeline, two of the talks that I have not started watching, but plan to watch in
the next week or two, implementing ranges and views in C++ by Roy Barkin from C++ Now 2024,
and reintroduction to generic programming for C++ Engineers by Nick DeMarco,
who is one of the team members
on the STL lab at Adobe
with Dave Abrahams, David Sankel,
and of course, Sean Parent.
So links to all those talks
will be in the show notes.
Stay tuned to next episode
where we actually talk about something technical
and interesting, std rotate. Be sure to check the show notes. Stay tuned to next episode where we actually talk about something technical
and interesting
std rotate.
Be sure to check these show notes
either in your podcast app
or at ADSP the podcast dot 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.