Algorithms + Data Structures = Programs - Episode 198: Talks ∧ ¬ (Pigeons ∧ Elevators)

Episode Date: September 6, 2024

In 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)
Starting point is 00:00:00 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,
Starting point is 00:00:51 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.
Starting point is 00:01:31 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
Starting point is 00:02:24 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.
Starting point is 00:02:58 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.
Starting point is 00:03:24 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
Starting point is 00:04:01 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
Starting point is 00:04:41 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.
Starting point is 00:05:00 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.
Starting point is 00:05:21 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.
Starting point is 00:05:49 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.
Starting point is 00:06:30 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,
Starting point is 00:06:58 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?
Starting point is 00:07:12 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
Starting point is 00:07:24 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
Starting point is 00:08:01 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.
Starting point is 00:08:34 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.
Starting point is 00:08:57 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.
Starting point is 00:09:28 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?
Starting point is 00:09:55 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
Starting point is 00:10:57 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.
Starting point is 00:11:52 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
Starting point is 00:12:29 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
Starting point is 00:13:06 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
Starting point is 00:13:25 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
Starting point is 00:13:39 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.
Starting point is 00:14:06 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
Starting point is 00:15:06 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.
Starting point is 00:15:24 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,
Starting point is 00:15:41 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.
Starting point is 00:16:18 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,
Starting point is 00:16:45 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.
Starting point is 00:17:18 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
Starting point is 00:17:28 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.
Starting point is 00:17:36 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.
Starting point is 00:17:46 Our tagline is chaos with sprinkles of information.

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