Algorithms + Data Structures = Programs - Episode 195: 🇨🇦 CppNorth Live 🇨🇦 David Olsen & Pure Chaos!
Episode Date: August 16, 2024In this episode, Conor and Bryce chat with David Olsen about C++26 reflection and more at CppNorth 2024 - and then the podcast devolves into chaos.Link to Episode 195 on WebsiteDiscuss this episode, l...eave a comment, or ask a question (on GitHub)TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachAbout the GuestDavid Olsen has three decades of software development experience in a variety of programming languages and development environments. For the last seven years he has been the lead engineer for the NVIDIA HPC C++ compiler, focusing on running standard parallel algorithms on GPUs. He is a member of the ISO C++ committee, where he was the champion for the extended floating-point feature in C++23.Other GuestsTristan BrindleKristen ShakerBen DeaneMike DaumShow NotesDate Recorded: 2024-07-22Date Released: 2024-08-16CppNorthCppNorth 2024 - C++ Reflection: Back on Track - David OlsenC++26 Reflection ProposalNVIDIA nvc++ compilerTurbo C++Rational RoseUMLScratch LanguageLEGO Programming (Mindstorms)BQNAPLCppNorth - Where there is a loop, there is an algorithm avatar - Fatemeh Jafargholi & Peter LorimerADSP Episode 147: 🇸🇮 SRT23 - Parallel std::unique Revisited (on a Walk in Venice)cub::DeviceSelect::UniqueISO C++ Prague Youtube VideoIntro 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)
Another C++ cabin?
You know what?
Ben deserves to take over for me just for that one.
I cede my seat.
Ben, are you free in a couple months?
Episodes 200 to, I don't know, we'll say at least 10, 20, 30?
Anytime, anytime.
There we go.
He replaced Bryce once already, and we've signed him up for a couple episodes.
If elected, I pledge to bring actual algorithms and data structures to this podcast.
I am the anti-Brice. Welcome to ADSP the podcast episode 195 recorded on July 22nd 2024. My name is Connor and today
with my co host Bryce, we record live from CPP North 2024. We start off by interviewing David
Olson, and then things devolve into pure chaos.
Other individuals you'll hear from are Tristan Brindle, Christian Shaker, Ben Dean, and a special guest with a special announcement.
What are we doing here? Okay, we're here.
This is my mic. We are here, folks, live from C++ North 2024 on the 44th floor of the Microsoft building in Toronto.
We've got a beautiful view of, is it Billy Baker Airport?
I think it is.
Yeah?
No, it's Billy Bishop.
Billy Bishop Airport.
Shows you what I know about my airport.
There goes the gain, folks.
And also the gain, folks.
And also the lovely CN Tower.
You know, in New York, we've got like 10 iconic buildings.
We've got the Chrysler Building.
We have the Empire State Building.
We have the Citigroup Building, the Lipstick Building, the One World Tower.
But in Toronto, they've just got one.
It's the CN Tower.
But it's a very nice building. You know, we have 10, they've just got one. It's the CN Tower, but it's a very nice building.
We have 10, but they've got one.
It's taller than any of the 10 in New York.
Let's go, David. Thank you for defending Canada.
And we're here with our first guest of the night, who we're going to talk to quickly because he needs to go to bed. Mr. David Olson, our coworker.
Hey.
A longtime listener on the podcast.
This is your first time at C++ North?
Yes.
And what were you here to talk about today?
Today I talked about reflection.
That's coming in C++ 26.
What are the most important three things people should know about reflection?
The conclusions of my talk were, one, it's common.
Two, remember that it is compile time only.
So you've got to up your compile time programming game.
And three, the most useful thing is it helps you get rid of boilerplate code.
Things that you did manually, the tedious manual stuff that you've been doing,
some of that can be replaced with reflection.
Wonderful.
And I actually think this might be a first,
because I think this is the first time we've had a C++ compiler engineer
who is actively working on a production C++ compiler on the podcast.
So, David, you work on which compiler?
NVIDIA's HPC C++ compiler called NVC++.
And what is it like to work on a C++ compiler?
It's fun. It's challenging.
Part of my job is to just sort of keep the whole thing together, keep it running.
So I've got to keep all the pieces, make sure it works correctly, compiles code correctly.
What is the hardest part about working through problems in a C++ compiler
versus working through problems in, C++ compiler versus working through problems in
like a regular application? Some things are easier. It's pretty much always reproducible
because it's a single, we don't have the concurrency, we don't have random inputs,
you can reproduce your inputs. That part's easier. So you heard it here first, people. C++ compiler is an easy job.
No, I said less hard.
There's other domains have their own very hard problems
that I don't have.
But since these data structures get so big,
it's hard to navigate through them
and know what the compiler is doing.
And some of the hardest problems aren't so much debugging in the compiler,
but figuring out why applications are not behaving correctly.
Is it a bug in the code?
Are we generating, is the compiler generating bad code?
Or things like that.
That can be very hard.
When application just gets the wrong answer, it can be very hard to figure out why.
On the side, Connor, did you need to interject something AV-related?
I was going to say we should probably move over here because I don't have headphones on.
So, listener, if the audio quality is too not—
It's Connor's fault.
We made this mistake at C++ on C 2023.
We stood a little bit too close to folks, and it wasn't
until Sean, you and I
moved to the outdoor
thing that the audio quality... It still was
audible? I thought you said
that that was part of the...
It would be part of the ambiance to have
that background noise. We still got the ambiance
now, but now it's quieter. A little bit
of background noise makes for good ambience.
Fair enough.
So, David, how long have you worked on C++ compilers?
I've been in this job for eight years.
Thirty years ago, my first job was on the front end of a C++ compiler.
Thirty years ago?
Do you know how old we were 30 years ago?
You weren't born yet.
I was. I was three. I was three.
Good sirs. I was three. My birthday was yesterday.
You knew I'd find a way to work that into the episode.
And who got a cake today?
And I did get a cake today.
My dear friend Kristen and my girlfriend surprised me with a cake.
And everyone in the room sang happy birthday to him.
That is true. That is true.
So 30 years ago, what was that first compiler that you worked on?
Well, it was the Rational C++ compiler, which nobody has heard of because it was not a good success.
Why was it not a good success?
I don't know. We didn't have, there wasn't enough special about it.
Okay, all right.
Now, Connor said a whoa when he heard Rational C++,
and I think Connor at least has heard about it.
I have heard of Rational.
You haven't heard of Rational?
I have not.
I have not.
The reason I went whoa is that that's a compiler.
I was expecting, what do they call it?
Not Turbo Pascal, but wasn't there a Turbo C++?
There was. And that was by Borland, right?
Yeah, and that became the Borland compiler.
So then what did you work on after this compiler?
I moved on to other programming tools.
I spent a long time, I spent 20 years working on programming tools of some sort.
So after the compiler, I think I worked on Rational Rose.
What was Rational Rose?
It's a UML modeling tool.
That sounds like fun.
And then worked on a different UML modeling tool and several things in the UML modeling space.
I was a build engineer.
Sort of got a whole bunch of teams to work together. We had a common build for
a large part of the rational organization. And I wrote tooling for that and ran that.
And then you...
I learned a lot in that experience.
What is UML for listeners who have not been exposed to it?
Unified Modeling Language is what it stands for,
and it is for people who want to draw pictures of their application design.
Is UML a good idea?
It had its uses. Some people found it very useful.
It can be useful, but it wasn't widely successful. So it has fallen out of favor. It wasn't successful enough in the long run for people to keep making tools for it.
So was the idea that you would almost visually program, you would visually represent parts of
your program, or was it just solely a modeling thing? I never really understood that aspect of UML.
It was some visual to it, but more a modeling thing.
So you had boxes or some shape to represent your classes,
and you drew the arrows between them for the relationships between your classes,
and there were all sorts of other shapes to represent other things in your application
and draw how they were connected together.
And it was possible to generate some code directly from those models.
That was the big hype is that there was this idea that you could design visually the structure
of your code and then use that to some extent, generate the shape of your code, and then that would be a starting point.
Visual programming, not something we've talked about on this episode before,
but I think a lot of people in the programming world got started in the robotics field as a kid,
and there are a lot of robotics frameworks and a lot of early educational programming frameworks
where you program visually.
You drag different code blocks and things like that.
Yeah, there's a lot.
I have been a coach for middle school Lego robotics teams.
Yeah.
And yes, the programming is very visual.
Is there a language?
I know Scratch is a language, but is there a Lego language?
Yeah, I don't remember what it's called, but
it's mostly the visual.
Yeah, connecting these boxes together
to say what
your thing does, but they have boxes for
loops and branches and ifs
and variables.
So that's a little bit different from UML
because UML was more about the class hierarchy
and structure, but still, the idea was that instead of just a purely textual representation of code, there was this vision of a more visual way of writing code.
And actually, more recently, there's been this no-code movement, this movement to create tools to allow people to write apps without having to code things. And also with things like ChatGPT and large language models,
we're seeing more tools and more ways for people to develop software without having to actually go
and manually type out code. Connor is great. Not Bryce though. Not me though. Apparently,
there was some feedback from people that, oh, I should have just put my Python questions into a
large language model. Well, let me tell you, people, I was making a point, and the point is that I don't have
those reflexes for how I should go answering a question in Python yet.
For C++, I would go to CBB reference.
Yes, I don't use large language models because I'm old.
I just had a birthday.
Leave me alone.
Anyways, back to David.
I did not know that you did Lego robotics coaching. So what,
have you ever done like first robotics stuff or just like the Lego robotics stuff?
Just the Lego robotics for the middle schoolers.
Gotcha, gotcha. And do you think that learning that style of programming, that block
programming, do you think that that is transferable knowledge that
leads to, you know, learning how to actually write code? Or does it maybe teach people the
wrong ideas about what programming looks like? I, in part. So yes, it's helpful. It's still,
even though you do it in pictures and arrows, you still can learn to think like you sort of do in code. You have your loops and your ifs,
you have a lot of the structures that you would see that you would type out in text. So it's not
perfect. It won't turn someone into a programmer, but it can be helpful in learning how to program.
One moment, I see an unsupervised dog that I think I need to attend to. You two talk amongst
yourselves. I'll be back.
What I actually was just thinking is that it seems like a Lego language for robotics
would be a perfect domain to try and bootstrap
an APL or a BQN onto,
because what are Lego blocks but, you know,
three-dimensional, you know, cubes?
And so, you know, APL, BQn could be perfect for that folks so maybe are we now
gonna do lego apl programming i mean why not it's like it's it's like you're talking about
for loops and if statements but really uh or actually what is it now that i think about it
i was picturing in my head lego and just like lego building but what is lego programming is
this like you have a car and you're programming?
Like what is actually not that I think about what is Lego programming?
Well, the Lego robotics competitions, they have a course on like a big piece of plywood and they build stuff and there's tasks that your robot has to complete
and the robot has to be autonomous.
Once you launch it from the starting point, you've programmed it and it has to complete and the robot has to be autonomous once you launch it from the starting point you've
programmed it and it has to go out there's no remote control it has to go out and accomplish
these various tasks so it has wheels and drives and can turn and the motors that move arms or do
whatever motion to accomplish those tasks so this is actually not at all a good fit then, really, because I was picturing putting
Lego blocks together, but this is more like a mini DARPA, the thing that kicked off basically
computer vision in self-driving cars.
This is like a mini version of that for high school students.
Or middle school students.
Or middle school students.
Yes, but yes, they build the robot with Legos.
Gotcha.
And program it to then drive out and do things.
And I imagine it's Lego plus plus.
There's some kind of motors and stuff that don't ship with your typical Eiffel Tower Lego set.
Right.
Gotcha.
Do you not like, Connor, have you played with Legos?
Have you played with Legos that come with, like, a motor rotor engine?
Yes, of course.
Really?
Is that a thing?
Yes, Connor.
It's a thing.
It's sold by Lego.
Like, has not every kid played with these?
I'm being a little unfair here.
No, many have not done the motorized one.
And it's not the bricks that you snap together mostly.
It's like the bars with the holes and you put the pins.
That's a different thing than Lego.
That's like connectic acts or things.
It still is Lego.
Okay.
They make those.
They just hold.
They're stronger and they hold together better.
Gotcha.
All right.
It looks like we have to move out of here.
Oh, we're being kicked out.
We are being kicked out.
I need to find the case for...
Right there.
There's the case.
We're now back on the move again, folks.
We've recorded in an elevator before.
Are people going somewhere, or are we all just disbanding?
I'm going back to the hotel.
Well, all right, let's wrap up this interview then.
We're here with David. We will make sure to link once it's available online the reflection
talk that was given at cpp uh 2024 uh what's next for you are you going to be at other conferences
that people can look to say hi if you're going to be there and then in the coming year rest of
the year i guess i i will be at CPPCon in September. Speaking on another
back-to-basics generic programming.
Okay. And
we'll probably be at Meeting C++
in Berlin in November.
Talking about reflection again. So that's
something for both the US
attendees and the European. I guess you
could be European attending, but
we've got multiple continents here. We've got both
North America and Europe.
All right, we look to see you at one of those conferences.
Bryce might say one last thing.
Well, and I was just going to say, so David is a longtime listener of the podcast.
And also because he's a coworker of mine, oftentimes in our weekly meetings,
he'll mention things that I said on the podcast. So he is perhaps one of the listeners that I get the most direct feedback from.
So it's great to finally have him on the podcast.
Yes.
When the two of them make a mistake,
I will be very quick to correct them
on the company Slack.
Yeah, I will say I have received messages
from David before on the Slack
being like,
we actually, this is already capable.
You were talking about like this is a thing.
It's like, it's already a thing.
It's in the MVC++ compiler.
Just go try it.
All right.
With that.
Tristan.
Whoa.
Stay where you are, sir.
I got a girlfriend and a dog approaching.
You got to say hello to the listeners.
All right.
You've been such an important part of the podcast.
I would say we have both of the girlfriends here, but that's not even true anymore.
Yes, it's not even true anymore.
We'll talk about that.
But say hello, honey.
Hi, everyone.
I know I'm the most popular person on the podcast.
I hope you're all enjoying Bryce's wit.
Do you have anything you'd like to say just, you know,
that would potentially entertain
the listeners about Bryce?
Or embarrass Bryce.
That's what I meant by entertain the listeners.
I didn't say anything about it not
embarrassing you. Just anything you'd like to share.
Feel free. If that's
the sound of a bus that I would like to
bump over Bryce, you know, anything
you got juicy for us?
I mean, you can't expect me to reveal everything all at once.
I didn't ask for everything.
I just asked for a small, you know, just a taste.
In the future.
Oh, wow.
All right.
She's been paid.
She's been paid well, folks.
Who else?
We've got a few minutes.
Or do we have to leave? I don minutes. Or do we have to leave?
I don't know.
Do we have to leave?
This is live action.
Do we have to leave?
We have to leave?
Okay.
We have to leave.
Why?
What were you thinking?
I have something for you.
For me?
He mentioned Tristan Brindle, who we've had on the podcast before.
But I think only on conferences have we had you on the podcast. I don't know. Are you kidding me?
This guy can't remember anything.
It's embarrassing.
Yeah, did we...
And you've been on the algorithm one?
We're here also with two of my
former co-workers. One of them actually was my boss.
Oh, really? Wait. Who was your boss?
Fatima. She ran away, though.
Yes, I knew it.
Eamon might want to say hi though
he's actually mentioned her before you have on the podcast yes not on the podcast but oh yeah
of course i mean you were fatima's giving a talk tomorrow we'll link it in the show notes once it's
online we'll be linked in the show notes and we're here with the program conference chair would you
like to be on the pod too yeah yes i mean who's been on the pod we were we were trying to we were trying
to introduce uh the program importantly have my realtor slash friend slash former colleague
kristin shaker say hello kristin hi podcast listeners kristin's already been on the podcast
don't you recall that as well yeah you can't remember any of our guests
is he even a podcast co-host?
he didn't interview me in fairness
you and Ben interviewed me
that doesn't matter
that's a good point
you know Connor
that I don't listen to the episodes
so you can't expect me to have known
that Kristen's on the podcast
I have something to say on that
I listen to your
algorithms and data structures episodes which means I listen to about one in three on that. I listen to your algorithms and data structures episodes,
which means I listen to about one in three
because I don't listen to Bryce's travel episode,
Bryce's couch episode.
You have to agree with that.
Yeah.
So, you know, I listen to the episodes
where it's what your algorithms and data structures,
you know, remit is.
How can you tell which episode is going to be
a Data Structures and Algorithm episode?
I mean, Connor puts it in the notes.
But that doesn't...
The title doesn't really reflect what might go on in the episode.
I mean, but the show notes are quite meticulous,
so if there's only three show notes...
I've never read the show notes, so I wouldn't know.
Connor is really the backbone of this podcast.
Connor does all of the work and gets none of the credit.
Listen, it's unfortunate that Ben has given that feedback.
I was mentioning to Connor earlier today that we go to these conferences
and people approach me all the time about the podcast.
And he's like, well, that doesn't happen to me.
And I felt a little bit bad.
So if any of you see Connor at a conference,
you have to ask him about the podcast.
Yes, you do.
You definitely do, yes.
What I was going to say is that
it's unfortunate that Ben has given this feedback
because someone the other day said,
honestly, Bryce is a bit of dead weight.
I've heard those podcasts without you
and it's just you at a different conference.
Those are the best ones, in my opinion.
And Ben just said he doesn't like to hear about the travel.
I know from the volume of feedback that we get
that, no, the people love me.
I think, though, that we always ask for feedback
on the episodes where I think it's terrible,
and then people come and say it's entertaining.
We never ask about, ask about the technical ones.
So we might get 10 times as much.
What cast is called?
Tristan has.
Okay, so I have something on this.
So a couple of weeks ago,
I was at the C++ on C conference in England.
And a young man called Kun came up to me.
He's a big fan of the show
and he recognized my name badge
for having been a guest.
And he said, did I know if Bryce and he recognised my name badge for having been a guest, and he said,
did I know if Bryce and Connor were going to be here?
And I said, I don't think they're coming to this conference.
He was like, that's a real bummer, because he really wanted to meet you.
And he said he had a question, an algorithm question for Bryce.
So I said, well, I'm going to see them in a couple of weeks at CPB North.
Why doesn't he record his question on a video?
And I can play it for Bryce, and he can answer this question.
Perfect.
So maybe Connor can splice the audio in later.
Well, we'll put it in.
We're going to splice it in later.
Hi, Connor.
Hi, Bryce.
My name is Gunnar.
I'm from Belgium, and I am one of the lucky few that made it through episode 147 about the parallel unique algorithm.
You got me interested when you mentioned that in the CUPS implementation there was the requirement for an additional array,
making it quite memory intensive. So I tried fiddling around,
getting rid of this one array. I tried to do this in the CUPS library itself, but it's, well,
that didn't run well on my system, so I had to stop that. But there was another thing I was
wondering. So the algorithm goes in two phases. Once you split up the data with the overlap of one
and do the unique massively in parallel.
And then afterwards you do a recombination
where you combine all the parts after each other.
But I was wondering why can't you just stop there
and have some kind of iterator that jumps over the gaps in between.
Especially if you're doing this on a cpu with a limited number of threads i guess that's uh incurring this uh
what should be a page fault perhaps for the gaps is much less work than trying to recombine
all the elements and moving all those all of those so i was wondering if you have some ideas on that
love to hear some feedback on that thank you and just show off your badge as well just uh
so the guys can see it adsp listener there you go i wanted to have some swag but i put it on there
so if they were here i'm gonna to get you some stickers alright thank you
so wait pause
before I let Bryce speak because he's chomping
at the bit because I didn't fully hear
we will splice in the full recording
so the listeners definitely heard it
summarize the problem
I think the question was about
the question was about
parallel unique
in Cub and essentially I believe the question was about parallel unique in cub and essentially i
believe the question is why does this be done in two passes do not leave yet kristen
the the question was why why does it have to be done in two passes i i'd have to look at the code
to actually see whether it is done in two passes and why couldn't you um you combine the first pass with the second pass that does the actual data movement, right?
Because there's one pass that would be a flagging pass, and there'd be one pass that would do a, yeah.
And I think the answer is there's no reason why you couldn't do that.
But I suspect that the two-pass implementation we were talking about was probably in thrust.
It was probably in thrust's generic implementation of unique, which would do it in terms of other algorithms, which would mean it would be two-pass.
I don't recall whether there's an actual unique in Cub, but I think there might be, or if there wasn't a few months ago, there might be now.
But unless there's a need for a global barrier which i can't imagine i wouldn't see
any reason that you can't combine it right because it's unique is just it's just a filter
of a of a sort right there should you should be able to do in a single pass yeah yeah i think
because this is ties into that whole three-part thing that we were walking in Venice, where we thought actually
that Unique Count had two passes, but it turns out that the Head Tales was actually just an
iterator. And so it actually was one pass. And I don't think we actually ever followed up with
that. We just did our three, four-part thing in Italy, and then we didn't record until September,
and we never followed up. And so it actually was two passes. I'm not sure if that holds for
Thrust Unique, but it might. It might be the And so it actually was two passes. I'm not sure if that holds for Thrust Unique,
but it might.
It might be the case that it actually is only one pass.
Now that we talk about it,
I'm almost certain that Unique
is just like a fancy version of Copy If, right?
It's definitely a scan at the end of the day.
We can dedicate.
Connor said it's definitely a scan at the end of the day. And I think. Connor said it's definitely a scan at the end of the day.
And I think it's a single scan.
Because, yeah, copy if is a scan.
All right, Ben's got thoughts.
Maybe I will make a commitment to try to add Unique
to the next iteration of my Think Parallel talk about scans.
Look at that.
Look at that.
And his name is pronounced...
We legitimately need to get out of this Microsoft building
because I think the people need to go to sleep.
Oh yeah. We can take this on the road.
Ben's got thoughts. At what point would
you want to be injected into...
My thought was just like, isn't everything
a scan, pretty much?
I mean, that's what we...
Mike hasn't been on the podcast.
We have Mike Dom
here wearing... I'm going to
describe Mike's outfit.
He is wearing an off-white, okay, we'll go with a white tracksuit.
On the arms, we have maple leaves in red sequins.
And on the back, we have CPP North with the lovely logo.
And on the front, in a very nice font, right above the heart,
is Mike embroidered there.
It is a very lovely outfit.
And those sequined maple leaves
are also on the legs of the pants as well. Mike, Dom, would you like to say something to the ADSP
audience? You belong at CPP North. You heard it here, folks. Come to CPP North 2025, or I suppose
if you're nearby, there's still time.
You could get on a flight right now.
Wait, no, this is going to be published on Friday.
You could invent time travel.
There's probably also a few Kevon episodes.
When do I get an episode about the management on the podcast?
So Ramona wants to know,
when does she get an episode about lean management on the podcast?
I suppose whenever you'd like to, honey.
Great.
We can bring you on for a discussion about lean management.
We are now on a Microsoft elevator.
How many people here?
11.
We've got 11 people.
Yes, we should.
Fatima, Mike, Miro. Fatima, Connor's former boss. many people here 11 and we've got 11 people everyone yes we should fatima mike miro fatima
aiman connor's former boss kristin tristan you're doing a terrible job we've got fatima
connor's former boss you got sheep you've got sheep connor's girlfriend asterix more on that
later more on that later we've got we've got mike've got Mike Dom, the chair of CBP North.
We've got, I'm sorry, I don't know your name.
We've got Kristen Shaker, my realtor.
We have my girlfriend, Ramona.
We have my dog, Looney.
We have Tristan Brindle, and we have Ben Dean here
at the CIBC building in downtown Toronto and two other people
whose names I don't know. Also my ears kind of popped a little bit. So should we talk about the
big news Connor? I think you should let her correct you. I can't believe that's how you introduced her.
Well I didn't want to spoil it for the audience. Should I do it now? Sure. Yes, you should. Correct him, please.
Hello, I'm Shima.
I'm Connor's fiance.
So that's our big news.
Yes.
Not my girlfriend.
Not Connor's girlfriend.
Bryce just doesn't want to be upstage, that's all.
You get one episode.
What?
You get one fiance episode.
Then he'll go back to being... Oh, no, I don't Pianta episode. Then he'll go back.
I don't need a whole episode.
Then he'll go back to being.
Don't worry.
We need the details.
Bryce doesn't know, but he is getting cut at episode 200.
We're taking a small break from Bryce.
It's only nine episodes away, folks.
We need the details.
So when did this happen?
Where did this happen?
Did Connor do a good job?
Okay, Connor, would you like to tell everyone where and when, what country we're in?
I proposed in the Lofoten Islands in Norway.
Why were you in Norway?
To propose to you.
But originally, initially?
We used the NDC Oslo conference as a, what do you call it, a misdirection.
That was my first tech conference as a non-tech person.
I have to say the tech community is lovely.
And do you want us to explain what you thought about that conference really briefly?
Yeah, it was fantastic.
NDC, hope to be at more conferences in the future.
Lovely folks there.
Yada, yada, yada, we got engaged.
See how I made it mostly about tech? folks there. Yada, yada, yada. We got engaged. So did it, where did it happen? Was it on like,
I need more details. It was supposed to be at the top of a hike called the Rhino Bringen
hike. Yeah. But there was a couple of risks with trying to propose at the top of a hike. One,
she didn't know. So I dressed fancy you know collared shirt uh some nice
nice shorts and uh she was just in hiking attire as one does for a hike so that was a that was the
risk because i was planning to take photos up there the other one though is there was like a
couple hundred people at the top of the hike not a lot of space it was also at the crest of like a
mountain sort of like would have probably the the little tripod would have fallen over anyway. So we ended up doing it back at the sea cabin
that I had rented. Uh, yes. Cabin on the sea. No, the C plus plus cabin.
You know what? Ben deserves to take over for me just for that one. I cede my seat. Ben, are you free in a couple
months? Episodes 200 to
I don't know, we'll say at least 10, 20, 30.
We'll let this guy, you know, cook
for a couple months. Anytime.
Anytime. There we go. He replaced
Bryce once already, and
we've signed him up for a couple episodes.
Yeah,
well, so we're back with Ben.
If elected, I pledge to bring actual algorithms and data structures to this podcast.
Honestly, actually, I do think I would win an election.
Oh, should we have an election?
I mean, I'll rig it so that he loses and we don't need to run a fair election here.
We actually won time because Bryce has been pretty hard to get a hold of, not that the listeners care.
So there have been times where it's like Wednesday night, one day we're out of content.
I've been pretty hard to get a hold of.
This man has been traveling like different country every week.
I never hear from him.
I'm like, buddy, when should we record the podcast?
He's like, I'm here, I'm there, I'm here, I'm there.
I've been relatively easy to get a hold of.
What country were you in this morning? Mexico.
There you go. I said two countries over. It's true.
It's true. Technically, I've been in three countries today because I had a layover in Houston.
But yeah, what was I saying? I was saying something about
oh, yeah, because you were so hard to get a hold of, it's been a running joke
in our relationship that if Bryce doesn't get back to you soon enough, that we were just going to record a podcast and Shima would be your replacement.
I legitimately have been easier to get a hold of the past two to three months than you have.
I don't think that's true.
I think that's 100% true.
I don't think that's true.
I think that's definitely true.
I am the reliable one, listeners.
Vote Bryce for more chaos.
Yeah, what's your pitch, Ben?
Well, I am the anti-Brice.
So, okay.
So, Bryce, you just had a birthday.
I have a system for my birthday where I take out my friends and I pay for dinner.
And I think that is the
way to go. I mean it's gonna be a cheap dinner. Well you know, gotta save my money.
Yeah, Nvidia stock has not been doing well.
Bryce I think you can stretch to it.
Maybe, maybe.
Well, I was going to take this guy out to dinner,
but he does not like the restaurant that I've picked.
So no dinner for Connor.
This is fake news, folks.
He's changing the narrative.
His revisionist history.
His revisionist history.
No one was being taken out for dinner.
And I know that for a fact because two years ago
when your talk was accepted to the first edition of this conference and you came, we went to Miku and I treated you.
You did not treat me.
That is true.
You did treat me.
And I did take Ramona to Miku on Sunday night and did not invite you.
That's all right.
I'm perfectly fine if you not be invited.
I am fairly certain that I still owe you like a $300 sushi dinner.
I do not remember the reason that I owe you that.
Of course, of course, he would have forgotten the amount and he would have forgotten the reason, folks.
It was because back when we went to Prague for the final ISO C++ committee before the pandemic,
we had a bet that the video that we produced would get X number of views.
I said there was no way it would become my number one video, which at the time I think was 44,000 views.
You thought for sure you could beat that.
It did not.
I won, and it was to some fancy sushi restaurant that we no longer live next to because—
That is also, I think, no longer in business.
However, you still are owed a fancy sushi dinner, which you will receive at some point. I do hear that there is a two Michelin star sushi restaurant in Toronto that has a $680 per person price tag.
So maybe if you're super nice to me, thank you on the podcast.
Maybe I will take you there.
It's pretty safe to say Bryce lost this debate, even though Ben hasn't said anything for like five minutes.
He dunked on him.
He's voting for me.
Did you just try to bribe him to stay on the boat?
I did.
That was $680.
That was.
Okay, importantly, that's $680 Canadian dollars,
not $680 real dollars.
All right, folks.
Well, we probably will throw a Twitter poll out there
just to see what folks think.
And then, you know, he will lose.
Ben will be on for a number of episodes until...
Can I make a politically incorrect joke?
Keeping all the stuff in about replacing Bryce, though.
That's definitely going to be canon.
And let's see.
We've already got, I think, two or three more episodes with Kevlin.
That takes us to 194.
This will probably be two episodes.
That takes us to 196, which means you've only got about one or two recordings left.
And then we'll have to say goodbye.
But it's been a good
run. That's all right. I'm going to start my own podcast. That would be good for ratings. I mean.
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 GitHub discussion where you
can leave thoughts, comments and questions. Thanks for listening. We hope you enjoyed and have a great day.