Algorithms + Data Structures = Programs - Episode 195: 🇨🇦 CppNorth Live 🇨🇦 David Olsen & Pure Chaos!

Episode Date: August 16, 2024

In 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)
Starting point is 00:00:00 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.
Starting point is 00:00:20 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.
Starting point is 00:01:33 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.
Starting point is 00:01:48 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.
Starting point is 00:02:07 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.
Starting point is 00:02:29 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.
Starting point is 00:03:00 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++.
Starting point is 00:03:23 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,
Starting point is 00:03:59 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,
Starting point is 00:04:29 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.
Starting point is 00:04:57 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
Starting point is 00:05:16 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.
Starting point is 00:05:36 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?
Starting point is 00:05:56 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.
Starting point is 00:06:31 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.
Starting point is 00:06:43 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.
Starting point is 00:07:10 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...
Starting point is 00:07:36 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
Starting point is 00:08:20 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
Starting point is 00:09:00 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.
Starting point is 00:09:34 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
Starting point is 00:09:53 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
Starting point is 00:10:33 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.
Starting point is 00:11:00 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,
Starting point is 00:11:38 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,
Starting point is 00:12:16 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?
Starting point is 00:12:55 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.
Starting point is 00:13:37 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.
Starting point is 00:14:01 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.
Starting point is 00:14:14 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.
Starting point is 00:14:33 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.
Starting point is 00:14:40 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.
Starting point is 00:14:58 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.
Starting point is 00:15:28 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
Starting point is 00:15:43 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.
Starting point is 00:16:07 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.
Starting point is 00:16:21 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.
Starting point is 00:16:35 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.
Starting point is 00:16:52 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.
Starting point is 00:17:14 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.
Starting point is 00:17:29 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.
Starting point is 00:17:44 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.
Starting point is 00:17:54 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.
Starting point is 00:18:09 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
Starting point is 00:18:25 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?
Starting point is 00:19:09 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
Starting point is 00:19:20 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.
Starting point is 00:19:33 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.
Starting point is 00:19:56 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.
Starting point is 00:20:21 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
Starting point is 00:20:38 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.
Starting point is 00:20:57 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.
Starting point is 00:21:12 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?
Starting point is 00:21:27 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.
Starting point is 00:21:55 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,
Starting point is 00:22:26 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.
Starting point is 00:23:05 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
Starting point is 00:23:51 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
Starting point is 00:24:06 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.
Starting point is 00:25:00 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
Starting point is 00:25:44 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.
Starting point is 00:26:03 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.
Starting point is 00:26:19 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?
Starting point is 00:26:35 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.
Starting point is 00:27:13 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.
Starting point is 00:27:48 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.
Starting point is 00:28:10 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
Starting point is 00:28:32 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
Starting point is 00:29:07 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.
Starting point is 00:29:36 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.
Starting point is 00:29:47 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?
Starting point is 00:30:02 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.
Starting point is 00:30:27 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
Starting point is 00:30:56 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
Starting point is 00:31:46 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,
Starting point is 00:32:02 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.
Starting point is 00:32:31 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.
Starting point is 00:32:57 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.
Starting point is 00:33:22 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
Starting point is 00:33:46 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.
Starting point is 00:34:15 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.
Starting point is 00:34:32 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,
Starting point is 00:35:00 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.
Starting point is 00:35:34 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.
Starting point is 00:35:52 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?
Starting point is 00:36:24 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.
Starting point is 00:36:44 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.