Algorithms + Data Structures = Programs - Episode 130: C++Now 2023 with Ben Deane & Tristan Brindle!

Episode Date: May 19, 2023

In this episode, Conor and Bryce chat with Ben Deane and Tristan Brindle about C++Now 2023!Link to Episode 130 on WebsiteDiscuss this episode, leave a comment, or ask a question (on GitHub)TwitterADSP...: The PodcastConor HoekstraBryce Adelstein LelbachAbout the GuestsBen Deane has been programming in C++ for this whole millennium. He spent just over 20 years in the games industry working for companies like EA and Blizzard; many of the games he worked on used to be fondly remembered but now he’s accepted that they are probably mostly forgotten. After getting more interested in modern C++, in the teens he started giving internal company talks and then talks at various conferences, spreading ideas about types, algorithms and declarative and functional techniques.Tristan Brindle a freelance programmer and trainer based in London, mostly focussing on C++. He is a member of the UK national body (BSI) and ISO WG21. Occasionally I can be found at C++ conferences. He is also a director of C++ London Uni, a not-for-profit organisation offering free beginner programming classes in London and online. He has a few fun projects on GitHub that you can find out about here.Show NotesDate Recorded: 2023-05-16Date Released: 2023-05-19ADSP Episode 24: C++Now 2021 with Ben Deane & Tony Van EerdADSP Episode 29: From Papa John’s to Google (Part 1)ADSP Episode 58: Otto & Eric Niebler! (Part 1)Conquering C++20 Ranges - Tristan Brindle - CppCon 2021libc++C++NowBen Deane Talk PlaylistC++Now 2018: Ben Deane “Easy to Use, Hard to Misuse: Declarative Style in C++”Sean Parent’s C++ SeasoningDeclarative thinking, declarative practice - Kevlin Henney - Meeting C++ 2017CppCon 2016: Ben Deane “std::accumulate: Exploring an Algorithmic Empire”C++Now 2023: Calendrical C++: std::chrono, History, Mathematics and the Computus - Ben DeaneC++Now 2023: Speeding Date: Implementing Fast Calendar Algorithms - Cassio NeriLeap YearsC++Now 2023: Applicative: the Forgotten Functional Pattern - Ben DeaneC++Now 2019: Ben Deane “Identifying Monoids: Exploiting Compositional Structure in Code”C++Now 2023: What is Low Latency C++? (Part 1) - Timur DoumlerMonoids, Monads, and Applicative Functors: Repeated Software Patterns - David Sankel - CppCon 2020Intro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download: http://bit.ly/l-miss-you

Transcript
Discussion (0)
Starting point is 00:00:00 If you haven't got anything nice to say, then don't say anything at all. It's getting sped up. It's getting sped up and I'm gonna... What is it? The three-star rating is like, would be good for the conferences, but issues may exist. welcome to ADSP the podcast episode 130 recorded on may 16th 2023 my name is connor and today with my co-host bryce we interview two guests tristan brindle and ben dean in this part one of a two-part series, we recap C++ Now 2023. Anyways, let's hop into the official, well, maybe some of that will make it in, maybe some of that won't. But today we are here with, have we actually, we've done one of these for person. We did it with Chandler and Patricia. We did it with, was it you, Benricia we did it with was it you ben and
Starting point is 00:01:07 tony van eerd at c++ that was three person because bryce wasn't there oh yeah yeah bryce wasn't there right right that's what i was about to say is the other time that we've done this with two guests oh yeah eric and otto oh no no we did that one too but also++ Now, like, a few years ago, I wasn't able to make it, and you did it with two guests. But as Ben just pointed out, that was only three people. So this, I think, is the third time we've got four people. We're here today with Tristan, who was one of our most recent guests. Maybe our most recent guest, actually, I think, in between a couple episodes that we did solo
Starting point is 00:01:43 episodes. And we've also got Ben Dean, who has been on the podcast now twice, I think, once during the C++ Now interview, and then once that got turned into, I think, a four-part algorithm discussion. We will link all of the previous episodes in the show notes. Also, too, before we let Tristan and Ben introduce themselves, I had no idea. Maybe we can cut this out, too, if you don't want it. I'm not sure if you introduce yourself at talks this way now, Ben.
Starting point is 00:02:15 You work at Intel now. I do. I'm a principal engineer at Intel. Yeah. Since October. How did I not know? I saw this on LinkedIn at some point, and then I was like, how am I not know i saw this on linkedin at some point and then i was like how am i not aware first of all you switch companies which is just news because i think we're pretty good friends and then two sure it's to our i mean are they our arch enemies is that accurate i mean if if they
Starting point is 00:02:38 would be our arch enemies if they were good i'm, since I joined, you better watch out. Now they're good at it, whatever it is. What are you doing at Intel? I work in the chipsets group. I work on the power management. I'm on the same team as Michael Case and Luke Valenti, both of whom are, as you know,
Starting point is 00:03:00 conference speakers and people active in the C++ community well congratulations on the new job it's very exciting and uh yeah thank you yeah um it is exciting well i want to i want to understand a little bit more about like what exactly why does the intel chipsets group want a bunch of c++ gurus to improve the c++ we're writing We're writing C++20 for highly constrained embedded targets. So it is an interesting and exciting thing to work on just because of the, frankly, global impact that we can have.
Starting point is 00:03:42 We're writing the code that controls the power to inside the chip all the all the parts of the at least of the south part of the chip that's the chipsets right so do you do is there like an internally they say this many billion devices are affected when you push code well we don't say that but um but yeah i mean that's i have a i now have a moral weight on my shoulders that i didn't have when i was working in games or finance yeah yeah i mean that's what i think uh when the apple clang folks or marshall clow i've heard him say that in a few talks where you know when he's pushing code to lib c++ as i believe yeah that library um that it goes to you know billions of devices so it's potentially you know yeah certainly you know it's the same thing like if i managed to
Starting point is 00:04:33 save milliwatts here whatever microwatts there it the multiplicative effect is huge yeah i think that i think that's one of the main pulls to working at a company like intel or nvidia is that your your the code that you work on is used by so many different people that having a small impact can have a huge effect yeah my co-worker said the other day like every one of us could like remove but like equivalent the equivalent of removing uh power multiple power stations from the world wow good job you're gonna say something tristan oh well i was pretty much gonna say that you can actually sort of affect like global power consumption levels um which is which is crazy doing a bit for uh the environment and climate change and all that stuff.
Starting point is 00:05:26 Yeah. Andre Alexandrescu, when he was at Facebook, I remember him saying in one of his talks as well that, like, you think that some of this stuff, like, you know, fractions of a percent don't really matter. But a fraction of percent on, like, the number of devices that, like, Facebook Mobile is running on actually equals, like, millions and millions of dollars for Facebook. Right. Which is in terms of, like, the data centers that they're, you know, hosting all their stuff. Like if you can make a very small change, uh, yeah, the multiplicative effect ends up saving them like an immense amount of money, which yeah, not, not all companies, obviously, if you're a small little startup, are you going to be able to say that? Very cool. All right. Well, we, we sort of skipped the whole introduction thing because I'm not able to say that very cool all right well we sort of skipped the whole introduction thing because i'm not supposed to do that uh but yeah maybe uh if we'll
Starting point is 00:06:11 go to tristan first and i'm the unprofessional one kind of hey you never you never get the introductions right and also it's on brand oh did you see but i don't try to and i i my premise is that we don't need them no we do and also, this is super on topic because right in the midst of trying to do the introductions, someone – so we're known as ADSP. That's our official name, Algorithms Plus Data Structures Equals Programs. Then we have ADSP, a discussion with Sean Parent. Then we've got our unofficial slogan that we got from Reddit, which is chaos with sprinkles of information. And then Sean Baxter replied on the most recent episode where we were talking about Circle,
Starting point is 00:06:46 where you said he doesn't listen. And he said, he replied on Twitter saying, what are you talking about? I listen to every episode of ADHD, the podcast. For the record, I did know that Sean listened. I just wanted to rile him up a little bit. Yeah, so I don't actually know which one of those three I like best now. But anyways, that out of the way, we'll throw it to Tristan to introduce yourself in case. Because I think this series, or however much, however we cut this up, is going to be quite popular based on what we're going to be talking about. So Tristan, go ahead. Okay. My name is Tristan. I'm these days, mostly a C++ trainer, try and teach people, bring them into our wonderful world of this horrible,
Starting point is 00:07:35 lovely language that we work in. You've managed to have what, like two or three episodes without me and then couldn't resist and brought me back so thank you very much I'm very happy to be here again we do like you and we'll link a bunch of Tristan's talks he's given a bunch of Rangers talks and he's also going to be speaking at a bunch of conferences coming up so we'll link those as well if you happen to be in the cities that Tristan's going to be speaking at you can come say hi attend a conference and it'll be awesome all right Ben you can give a brief introduction and then we'll enter, or maybe we'll do like a little C++ now recap. But yeah, introduce yourself first, Ben. Yeah, my name is Ben Dean. I'm a principal engineer at Intel where I work in the chipsets group on power management, programming the
Starting point is 00:08:22 embedded microcontroller that is inside the chip package that controls power to other parts of the chip. That's my current job. I am a sometime conference speaker. I just did two talks at C++ Now last week, and introductions are best if they're brief. So there you go. sometimes conference speaker is quite modest i mean do you know off the top of your head i think you've probably given like gotta be way up i don't know digits maybe a dozen i think maybe a lot 15 something like that i don't know you've got you keep the youtube playlist of my talks gonna Connor. Yeah, yeah. I think when we had you on one of the times, so many of Ben's talks are like in my favorite talks.
Starting point is 00:09:09 And I know a bunch of other people, it's the same. So what is it? There's easy to use, hard to misuse, coding in like declarative C++. That one, I think at one point, might still be, was my favorite talk. Actually, it's after Sean Parent's C++ seasoning, but it's always been like a top three talk. There was like a phase where I went through
Starting point is 00:09:30 a bunch of like declarative programming talks, Kevlin Henney's declarative thinking, declarative programming, something like that. Those two are just like, they're like must watches. When people ask me for C++ talks, along with with sean c++ seasoning that talk kevin honey's talk um your uh algorithmic empire one where you show the ways to use stood to accumulate a bunch of different ways it's like a must watch my opinion anyways we'll we'll link the playlist to all of them on my secret playlist i have because i do keep a playlist so I can keep track of my own talks but I never watch them. 35 videos but that includes dupes
Starting point is 00:10:10 with the same talks at different conferences and that includes lightning talks as well. And it doesn't yet have the talk from last week. I feel like I've given that many talks. I feel like I've given that many talks. Yeah, it's not a huge amount. I mean if you give one talk at, like, I typically only go to a couple of conferences a year.
Starting point is 00:10:31 And I'll give a talk at each. The difference is that Ben gives much better talks than I give. It's not about the quantity here. It's about the quality. It is. And for that reason, I try not to, my maximum per conference is two and usually one yeah i think the the thing about those talks that i mentioned is like the number of times in a talk where something is said that like makes you think and you're like oh wow that's a good i didn't think
Starting point is 00:10:59 about that before like i remember probably the first time I saw an immediately invoked Lambda expression used as like a declarative way to do like, you know, if expressions in Kotlin or something like that. And I think I can't remember if that was the exact example you used, but you showed that and I was like, oh, that's so nice. Like, and you had this thing where you went from before and after and added a constant. I was just like, that is, that's very nice. And I might've even seen it in another talk before. I know Phil Nash did some talks like that, but sometimes like you watch a talk at a certain point and it hits you at the right time. Yeah.
Starting point is 00:11:33 Links to all of those things for both Tristan's talks, Ben's talks, conferences, et cetera. Maybe, uh, maybe we'll make this first part of this episode if, if Ben, cause you just spent the last week at C++ now, if you want to give like a a little recap of the two talks you gave and like any highlights of things people should watch out when the c++ now things start coming on coming online uh well the the sort of overarching theme of the conference was safety and security how we do that in c++ if we can do that in c++ in some cases, how we might get there. Did you guys solve it?
Starting point is 00:12:09 Was there an answer? Oh, yeah. No, we solved it now. What's the answer? Yeah. Perfect. Great. No, there are lots of different approaches, right?
Starting point is 00:12:19 Yeah, so that was the theme of the conference. My two talks, well, I originally, yeah so that was the theme of the conference my two talks um well i originally i had i had i submitted to one was accepted uh in the interest of you know just speaker diversity that's cool both were highly reviewed um and then and then bob bob stiegel the conference chair reached out to me and said you know this this other talk you submitted, would you mind sort of keeping it in the back pocket in case we have speakers who can't make it or whatever? And indeed, that's what happened. So I ended up giving one talk. It was pretty much first thing Monday, Monday morning.
Starting point is 00:13:04 I got subbed in for a speaker who couldn't make it wait wait when when were you informed that you needed to give the second talk was it like you showed up at the conference they're like oh yeah we need you no it was a couple of weeks before that that was okay but that talk i had already given at the local meetup and to friends and in uh i've already given it like three times so i can get that one the story on this conference about the time that a c++ now speaker didn't show up i don't all right strap strap yourselves in what the year i'm on i'm on the edge of my seat wanting to know the title of this talk that Ben gave. Let's pause this story.
Starting point is 00:13:49 I'm like waiting. Have I seen this one at a meetup? Or is this watchable? Is this a new talk? So are you pausing Bryce or are you pausing me? Yeah, we're pausing Bryce. We will let Bryce tell this story. I promise you, Bryce.
Starting point is 00:14:02 You hang on. He's very excited. He was asleep for the first 20 minutes, but now he's awake because he's got an exciting story to tell. So the first talk was entitled Calendrical C++. Wait, what? Calendrical C++. I don't understand. Calendar Calculations.
Starting point is 00:14:20 Okay. All right. Now I understand. And what was really nice, and this sort of often happens, is I submitted it and I thought this is a really niche topic. It's a fun and entertaining talk. But at C++ now, the goal is the people in the room have fun and learn something, not necessarily that the talk is of very wide interest. That's a better goal, I think. Anyway, so I submitted it and I saw that, against all odds, goal i think anyway so i submitted and i saw that against all
Starting point is 00:14:46 odds another talk about calendar calculations was submitted and it was actually very complimentary with mine um cassio neri gave that one and um i met cassio for the first time this conference and you know with our common interest of geeking out about calendars we we hit it off straight away so that was the first talk. I talked mostly about how to calculate the date of Easter. So we've mentioned this on the podcast before. Is this not something that wars have been fought over? Well, I don't know about that specifically over the date of Easter.
Starting point is 00:15:49 It's true that the wars have hindered calendar changes, famously in times in the history of the British people where there have been conflicts fought over the different, maybe this is a little bit reductionist, but that different camps had different religious beliefs and that there was at least one period of time where one of the major differences between two sects was what they considered Easter, like how they calculated the date of Easter. I'm unaware of a specific war, but I mean, it's certainly not out of the realm of possibility.
Starting point is 00:16:20 There were several different competing ways to calculate it. We're talking about the, I'm thinking of the early days, or let's say the late days of the Western Roman Empire. Yes. Tristan, you were going to say something. I was just going to say, I don't recall hearing, there had certainly been religious things, Protestants and Catholics for a very long time
Starting point is 00:16:46 yeah um but i think certainly these days the church of england the catholic church use the same date for easter i don't know if it's always been yes uh so it was fixed by the the first council of nicaea in 325 uh ce A little while ago then. Yeah. They tried to fix it because the Roman Empire was large and they couldn't really tell everyone this is when Easter is. You know, if you're living
Starting point is 00:17:15 in the very early days of Christianity, you probably are friends or used to be yourself Jewish. So you could ask your local rabbi when Passover is and then you would know when Easter is. But as the Roman Empire grew and expanded people on the fringes didn't have that capability
Starting point is 00:17:31 so well so they tried to fix it and they basically said the spring equinox is the 21st of March they defined that to be the 21st of March and they said Easter is going to be we'll take the first full moon on or after the spring equinox. And we will take the Sunday after that.
Starting point is 00:17:53 And importantly, if the full moon is on a Sunday, you have to wait a full week for the next Sunday. That's easy. You would think. Easy enough to say. Don't the Eastern Orthodox churches have a different date you are dead right they they still keep to the julian calendar oh is that what it okay so that was the difference there so yeah there are two algorithms one for the julian calendar and then after the gregorian reforms from 1583 the the gregorian calendar version but they're both i mean julian and gregorian are very similar calendars um what may be more interesting you know a tidbit of
Starting point is 00:18:33 information i found out was that um so the the way we calculate leap years in the gregorian calendar is well known it's every four years except except every hundred years except every 100 years, except every 400 years, right? Which is to say, if the year is a century, it has to be divisible by 400. I think everyone on this call probably knows that and most of our listeners do too. It's a first year CS sort of- Mostly because we were all alive in the year 2000. Yeah, yeah.
Starting point is 00:19:00 It's fizzbuzz and then it's like calculating a leap year. But the Orthodox churches and their countries, several countries, Eastern European mostly, don't have the same, although they're on the Gregorian calendar as a civil calendar sort of thing, they don't have the same leap year algorithm. instead of doing two century leap years every 800 years, they do two century leap years every 900 years, which is at least at the moment, slightly more accurate with respect to how the earth goes around the sun. So, so they, they do the leap years on the 200s and the 600s after dividing by 900,
Starting point is 00:19:43 after modding by 900. So why hasn't any, has anybody ever tried to do metric time or base 10 time? Oh, yeah. The French Revolutionary period was famous for that. That's right. How did that work out for them? Well, the thing about calendars is it's fine, but it's fine if you decide that, but the rest of the world kind of has to decide that.
Starting point is 00:20:10 It may also interest you to know that in 1928, the UK passed an act fixing the date of Easter to the Sunday after the second Saturday in April. And that law was passed and never brought into force, as they say. It's unclear quite what brought into force means, but it basically means no church has ever paid attention to it, and they're the people who really decide Easter. Perhaps it would be more confusing if the UK unilaterally decided that
Starting point is 00:20:45 it's like garbage collection in C++ 11 you know it was technically a thing that no compiler implemented and then they just removed it at some point a week or two ago I heard somebody somebody expressed to me that
Starting point is 00:21:03 garbage collection that they were happy to have seen garbage collection support added in C++11. And I was a little bit surprised by that. Well, it got taken out. Yeah, I know. They were sad to see it removed then, perhaps. I did not have the heart to tell them it had been removed. You know, what you're getting here is the very condensed version and i'll cut it off there
Starting point is 00:21:26 because because i've been going down the rabbit hole for like a year and so what actually happened there was ava said to me you know you've you've been reading books you've been spending so much time learning about all this stuff you'd better make a talk out of this i want to see i want to see this amount to something other than just a bunch of trivia. No, no, no. Stop talking to me about this. Talk to other people about this so I don't have to hear this anymore. Yeah, yeah.
Starting point is 00:21:56 And look at that. You made like a best friend at C++ Now that also nerds out about the exact same thing. Yeah, so Casio's talk was about the calculation for changing between days since epoch, converting days since epoch into year, month, day, and vice versa. Okay, so it's like a little – well, actually, I don't know how it works in Excel, but something like that Excel thing. You don't select the right number format and you get this big number. No, I guess, yeah. Roughly speaking, I'm not actually sure if they use – use like 1970 something i think in excel so i don't i don't think that's the same thing but anyway so that was my backup talk my my sort of real talk my my my talk which was new for c++
Starting point is 00:22:40 now was about uh applicative functors oh category theory i called it the forgot well not cat i'm not a big category theorist i go in for practicalities but um i mean that that is a term from category theory though is well sure if you like for me it's a term from you know learning haskell and functional programming and uh yeah it it is from category theory but the subtitle of the talk was the forgotten functional pattern because i feel like you know the genesis of this talk was me reading papers that come out every month on the c++ mailing and seeing all these things proposed and seeing people say you know functor this and monad that and and you know we have monadic functions for optional we have monadic functions for optional we have monadic
Starting point is 00:23:26 functions that expected although it's not widely fan uh trumpeted uh the senders receivers proposal is based on you know uh the continuation monad but nobody ever mentions applicative and uh it's super useful. So that was what my talk was about. Well, I will put links. Well, so probably the way it's going to work is these things are going to get rolled out slowly. So I will put unlinked links in the show notes and I will update them as these C++ Now videos.
Starting point is 00:24:02 Are you going to be giving these talks at any other conferences coming up? Or I know you're going to be at C++. I'm going to be at C++ Now videos. Are you going to be giving these talks at any other conferences coming up? I know you're going to be at C++. I'm going to be at C++ North. Yeah, I'm keynoting there, and I need to figure out what my keynote will be. It's all right. You've got a couple of months. I've got a couple of months.
Starting point is 00:24:17 But I did put in my applicative talk a special Nerd Snipe for you, Connor. Oh, yeah. I was thinking that you've got your identifying monoids talk which is also fantastic talks are you putting i mean you just said it's not about category theory but are you putting this category are you making like a unofficial category theory adjacent series of talks for like the plaque the practical well that's not i'm not working from that goal no uh my my goal is you know to expose practical
Starting point is 00:24:48 applications of what happened to be functional programming techniques that that i find really useful and i think more people could benefit from knowing about um i'm not trying to uh you know produce an oeuvre of category theory adjacent work interesting well you you're you seem like you're kind of like a mini bartage you know minus the uh full-blown uh category theory uh rabbit hole but uh you know category theory for person that doesn't understand abstract mathematics and just wants to have patterns to use in code yeah i mean you could look at that way when one of the things about this applicative talk was i highlighted like um maybe the reason why people don't use it so much is because everyone everyone explains it in the haskell formulation and that is not a
Starting point is 00:25:38 particularly useful formulation for c++ so i took a different tack I tried to explain it with a different formulation, which is much more applicable to C++. Interesting. I will be waiting on the edge of my seat for this to be released. That definitely does sound very interesting. Yeah, it's right up your alley too, Tristan. Functional style, collection-oriented programming. Any other things you want to highlight or things people should watch out for
Starting point is 00:26:05 on the interwebs coming out of C++ now? Safety's been solved, so I guess we look forward to some talk or some announcement detailing that. Any favorite talks? It's hard to pick. I did enjoy
Starting point is 00:26:21 most of the all of the talks I went to. It was, C++ Now was back up to full strength this year. Which talks didn't you like? No, no, it was just, there were none that I did not like. They were all good. On other topics, I'm trying to remember. Timur gave a two-parter
Starting point is 00:26:46 on low latency C++ that was interesting because it's and it's interesting having worked in games and finance and of course Timor's worked a lot in audio interesting to sort of think about the differences between those
Starting point is 00:27:02 the big difference really is hard deadlines. So hard-ish. I mean, nobody dies if you miss the deadline, hopefully. But in audio and in games, you have a hard deadline for when the next frame of sound needs to be rendered or when the next frame of the game needs to be rendered. Whereas in finance, you have a deadline deadline you don't know what it is you just have to be faster than the next person it's a it's a it's a different sort of um thing so you're optimizing for in many cases you're optimizing for the you know when you have a hard deadline in audio you're optimizing for the
Starting point is 00:27:43 the worst case you want to stay you want the worst case to stay within that deadline whereas in finance you are not optimizing to keep the worst case in a deadline you're optimizing for being fastest in the best case probably interesting yeah i never actually thought about that it's an interesting way of looking at it all right well we'll put team put two more links to Team Wars Talks, and I'm sure there's a C++ Now 2023 playlist that we'll link, so those that are interested. All right, we'll wrap the C++ Now episode, part one of this discussion, and we will transition.
Starting point is 00:28:19 Wait, hang on. We've got to do my story. Okay, how long is this story going to take? I don't know. I never really know until I get into it. All right. Well, listener, we might be listening to a little chipmunk Bryce here, depending on how entertaining this story is. But you go ahead, Bryce. This is a good story. If you fast forward through this, the listener is going to revolt.
Starting point is 00:28:42 No. They're going to be unhappy. It depends on who the listener is. I know my people. If the listener is Zach, I think he's going to be quite happy about They're going to be unhappy. It depends on who the listener is. I know my people. If the listener is Zach, I think he's going to be quite happy about it because he told me personally. All right.
Starting point is 00:28:52 Someone didn't show up. What happened? The year is... I remember this. I was there. You were there. I don't know if you were one of the people. I don't remember anyone other than Chandler who talked. But I know that Chandler demoed
Starting point is 00:29:25 I think he demoed Heartbleed. I think he did demo Heartbleed, yeah. With fuzzing. And he was never heard from again. Never heard from again. So, do with that what you will. Let's just get like out of five
Starting point is 00:29:43 stars, Tristan, Ben, how do we feel about that story remember that i am your friend don't remember that i um i mean i i i if you haven't got anything nice to say then don't say anything at all it's getting sped up it's getting sped up and i'm gonna what is it the three-star rating is like would be good for the conferences but issues may exist i'm gonna speed it up and then slow it down right for ben's voice tristan would be nice. I'm sorry. I'm sorry. I apologize.
Starting point is 00:30:27 That's the trouble because I've done this several times now. I'm beginning to feel a bit more comfortable. Yeah. And, you know, all of my, everything's coming out now. I can't pretend to be nice anymore. My favorite guests are the ones that roast Bryce. I don't think Zach, I mean, obviously Sean is, you know, Sean is Sean. But Zach, I don't think I've laughed so hard from Zach just being like, all right, Bryce, quiet down.
Starting point is 00:30:49 Quiet down, Bryce. We get it. Zach legitimately has to be one of the funniest people in C++. Yeah, he's hilarious. My favorite thing, though, is when Zach and David Sankel interact together. Those two are. Oh, yeah. Yeah.
Starting point is 00:31:06 David's talk with his kids, still one of my favorite things that I've ever. I was so shocked he gave this. I can't even remember the title. It was like monoids, monads, and applicative functions or something. Functional patents, yeah. Yeah. And he gave it at CPPCon. And it was pre-recorded, so he had his kids in it.
Starting point is 00:31:23 And he had them like, it was as if he was teaching them category theory and had them act out little bits and like, what's a monad? Well, glad you asked, kids. It was just so entertaining. Be sure to check your show notes either in your podcast app or at ADSPthepodcast.com for links to any of the talks or topics that we mentioned in today's episode. As well as a link to a GitHub discussion where you can leave comments, questions, we mentioned in today's episode, as well as a link to a GitHub discussion where you can leave comments, questions, or thoughts on today's episode. 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.