Algorithms + Data Structures = Programs - Episode 206: 🇳🇱 C++ Under the Sea Live 🇳🇱 Jason Turner, Inbal Levi & More!

Episode Date: November 1, 2024

In this episode, Conor and Bryce record live from C++ Under the Sea and interview both keynote speakers, Jason Turner and Inbal Levi as well as speak to Jan Williams, Koen Poppe and Jonathan Müller b...riefly!Link to Episode 206 on WebsiteDiscuss this episode, leave a comment, or ask a question (on GitHub)TwitterADSP: The PodcastConor HoekstraBryce Adelstein LelbachGuests InterviewedJan WilmansJason TurnerJonathan MüllerInbal LeviKoen PoppeShow NotesDate Recorded: 2024-10-11Date Released: 2024-11-01C++ Under the SeaVIMEChttps://nullptr.nl/C++ Under the Sea - Bryce Lelbach C++ Execution Model TalkC++ Under the Sea - Jason Turner KeynoteCppCastC++ Weekly YouTube Channelcode_report YouTube ChannelADSP Episode 103: Jason Turner from CppCast!C++ Under the Sea - Inbal Levi Closing KeynoteC++26 Reflection ProposalTheWholeDaisy TwitchP3045 Quantities and units libraryADSP Episode 195: 🇨🇦 CppNorth Live 🇨🇦 David Olsen & Pure Chaos!Vandewiele GroupC++ Under the Sea - Logging TalkMinimal Logging Framework in C++20 - Koen Poppe - Meeting C++ 2023C++ Flux Libraryflux::adjacent_mapIntro 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 we've just slid past it. Fan favorite here, folks. Jason Turner, host of CppCast from, I believe, episode 4 to 349. I want to clarify some of my earlier statements. For legal reasons, I have to say those were jokes. I like all podcasts equally well. We caught the Pokemon before. I don't know.
Starting point is 00:00:21 I didn't actually play Pokemon. So did they hop back into a forest or something welcome to adsp the podcast episode 206 recorded on october 11 2024 my name is connor and today with my co-host Bryce, we interview both keynote speakers live from C++ Under the Sea, as well as three other guests, Kun Pop, Jan Williams, and briefly, Jonathan Mueller again. Introduce yourself, Jan, or I'll hand the mic to Bryce and then introduce yourself. Tell us how you enjoyed the inaugural edition of C++ Under the Sea. So in serious face, introduce yourself. I don't think you've been on the podcast before. I haven't.
Starting point is 00:01:18 My name is Jan Wilmans. I'm a software architect for Vimac. Yeah. What can I tell about myself? I also do C++ coaching. So, yeah, that's it a bit. I have a website called nullpointer.nl where you can find some information. Nullpointer.nl.
Starting point is 00:01:37 That's a good domain name. Did you teach a course at this conference? I did not. I generally don't teach courses uh for the public just inside the company ah okay interesting and so what's what what does the company that you work for whose name i'm not going to try to pronounce vymac it's not too difficult i think wasn't that bad what do they do oh we make a quality inspection system for glass. So vials, syringes, that kind of thing.
Starting point is 00:02:08 Medical glass. I have noticed that glass and mirrors seems to be a very Dutch thing. Like the mirrors that go into the lithography machines, they make them in the Netherlands. And for a lot of the telescopes, they make the big mirrors them in the netherlands and like for like a lot of the telescopes they make the big mirrors here in the netherlands like what is the dutch obsession with glass i don't know the answer to that question but um yeah we focus on the uh the quality of glass and not the production of glass let's say so yeah So we basically pick up products, rotate them,
Starting point is 00:02:47 make sort of Google Maps of the outside of the surface of the glass, and then do image processing to find flaws. So cracks, bubbles, that kind of thing. And also we use optical setups to see if there are stress, if there are signs of stress in the glass. So that means if there's stress in glass, then it breaks when you drop it, basically. So it's fragile.
Starting point is 00:03:15 Yeah, that's the characteristic of glass that I think of the most, that it is fairly fragile, but also can be strong. It's just like if it breaks it you know shatters and uh what was your favorite talk of the conference i think it was uh your talk actually oh my talk oh yeah how much how much did i pay you to say that well we we said we wouldn't discuss that but uh no i think it was uh why i liked it the best is because it's a topic that I never thought about before. So just the in-depth ordering of things and the sequence of operations that us. What guarantees do you actually get in that order?
Starting point is 00:04:02 And I think the difference between happens before and happens before was really interesting. So it doesn't actually mean it will happen before in sequence in time, let's say. Yeah, that was really interesting. Well, Jason's talk was also interesting because of the way he specified the possible operations that you can do on types.
Starting point is 00:04:27 And it was really interesting to just sort of complete the circle between, yeah, I want my own unique type and I want to specify the operations on the type, but I don't want to go into a super complicated constexpr world of how to tell the compiler exactly what I mean. So this was a syntax that allows you to express what you want without knowing all the details of the template syntax behind it. So for background, for those who were not at the conference, I gave a talk about the C++ execution model where I actually go through and read a large chunk of the C++ standard that describes the execution model and then explain some of the implications and the real world impacts of what this all means. And then Jason gave a talk about...
Starting point is 00:05:26 What did I give a talk about? Stronger typing. That's what it was about. And yes, as Jan said, I just really wanted to inspire people on why you want stronger typing in your code, but then I also showed some, I don't know, some goofy concepts, tricks, basically,
Starting point is 00:05:45 for how you might convince the compiler to implement those functions for you that you want on your strongly typed types. Your strong types? Anyhow, I think it was a pretty good talk. I think it worked out. I thought it was pretty good, yeah. I was finishing slides, so I was half there, half not. But we're passing this.
Starting point is 00:06:06 Connor, you got things? And we've just slid past it. Fan favorite here, folks. Jason Turner. I was just about to say, you should introduce yourself. Host of CPPcast from, I believe, episode 4 to 359? 4? I don't know.
Starting point is 00:06:26 349. And then guest co-host for 350 when we handed it off to Phil and Timur. This is true, and not only I mean, you're listening to a podcast right now so I'm sure there's like a 75% overlap
Starting point is 00:06:42 of our listeners with CPPcast but also according to your talk this morning, 454? 5? 455 weeks straight of C++ Weekly. Everyone's... 451? I don't... It's in that ball. North of 450, so we've got... And also north of 100,000 subscribers,
Starting point is 00:07:09 you've got your silver YouTube play button. Has that arrived in the mail? Oh, yeah, yeah. I've had the silver play button for about a year now. Oh, okay. Okay. No, don't need to rub it in us other YouTubers' faces that haven't hit that milestone. How many subscribers do you have? I have less than 100,000.
Starting point is 00:07:24 Okay, so an interesting thing here is I did a side series just on computer science topics for like five weeks or something. I did two episodes extra per week to try to just introduce other computer science topics for people who are interested in learning how to program. That massively hurt my channel. I went from an average of 1,000 new subscribers a month that I could count on down to 600 new subscribers a month when I was releasing new content to reach a wider audience. And it took about seven months for that to recover back up to 1,000 subscribers a month after I stopped that. What do you have theories as to why that was? Do you have theories as to why that was? Do you have theories? I think I just simply wasn't getting the C++ programmers subscribing anymore, and I was losing some subscribers who didn't want that extra content. It's a fun fact about YouTube subscribers is they're not willing
Starting point is 00:08:18 to simply skip videos that they don't like. I was once told, I got a comment on a YouTube video, because I change what I post videos on depending on what I'm interested in, and one of the comments I got once was, please stop holding us hostage with your array language content and go back to C++ algorithms. And it made me laugh so hard,
Starting point is 00:08:42 because there's a subscribe button you can click to unsubscribe, and nobody's holding anybody hostage. Connor, you as a YouTuber should know. Don't tell them that there's a way to unsubscribe. Some of them may not know that they can unsubscribe. They may think it's a one-way door. That works in your favor.
Starting point is 00:09:02 So you think you were upsetting folks that wanted purely C++ content, and somehow the algorithm figured that out? Although if I do occasional travel logs about places where C++ has taken me, I get pretty good responses to those, much lower views, but at least people aren't unsubscribing or complaining.
Starting point is 00:09:26 I just start the episode by saying, hey, this is a travelogue. If you don't want to watch it, you should skip it. So, Connor, you should talk about your talk because I have an update on your talk. No, no, no. We'll talk about my talk later.
Starting point is 00:09:38 Well, because Jason's got to bounce. He's heading back. We just talked about that. Both Jan and Jason are bouncing, which is why, I mean, we were looking for you at lunch. Then there was a break, but we didn't end up recording at the break. So now we're at the IMC sponsored.
Starting point is 00:09:51 Yes, I was trying to avoid you. You were going to come up with an excuse, and then you realized, no, I wasn't doing anything. I was just actively avoiding these two that were hunting me down. I mean, fair enough, fair enough. We caught you, though. We caught the Pokemon before, I don't know, I didn't actually play Pokemon, so did they hop back into a forest or something?
Starting point is 00:10:11 You did not play Pokemon? I never played. I wasn't allowed to, no, yeah. That's true. I have played Pokemon Puzzle League, which was an N64 game, N64 game. That's the only Pokemon I've played, and it has nothing to do with Pokemon at all.
Starting point is 00:10:24 I do know what's an N60. The N stands for Nintendo. Do you know which company makes the chips that go into the latest Nintendo product? Probably NVIDIA. That is correct. The NVIDIA Switch has an NVIDIA...
Starting point is 00:10:39 The Nintendo Switch has an NVIDIA chip in it. The NVIDIA Switch. All right, back to C++, though. So we were supposed to be introducing the esteemed Jason Turner, host of 350-plus podcasts, give or take, and 450-plus YouTube videos. I mean, the last time you were on ADSP was, I think, a couple years ago now. What have you been up to? I know
Starting point is 00:11:06 you've been traveling the world, coaching, training, giving keynotes, giving talks, anything you want to tell the C++ community, things you're excited about. I know you famously try not to take a look at C++ features until they're in the language, and you don't need to go to a fork on Compiler Explorer. But yeah, here's your opportunity, because I'm sure, as a fan of CppCast, the folks, they need a Jason Turner update. So, over to you. Well, I don't know if we're going to give a personal update or just a C++-y update. But yes, like you said, I've been doing a lot of travel this year.
Starting point is 00:11:42 And where have you been? Where have I... You can hold the mic. And And he goes, where have you been? Where have I? You can hold the mic. And you can give us whatever updates you feel like sharing. Where have I been this year is the question, perhaps. I don't know. I've been to Canada. I've been to Norway, Netherlands.
Starting point is 00:12:01 I've been to a lot of U.S. states. CBP Con. Yeah, well, I've been to CBP Con. Yes. Why did you say it like that? Because that's my hometown. CBP Con. CBP Con. I don't even know. I honestly would have to look at my calendar right now. This is almost pre-COVID travel for me. It's one transatlantic trip away from being pre-COVID travel. That's where i'm at right now and as you said i do famously avoid the not things that aren't standardized it's very very rare for me to put something in a c++ weekly episode that is not standardized i'm not going to waste the mental
Starting point is 00:12:35 cycles on this because i don't know what it's going to end up being and i will say at cvp con i saw a couple of talks on reflection which i I'm like, I was very not excited about this. They were all like, they're all like, oh, and look with a bunch of syntax that you can't read, you can magically make things. And I just, it was lost on me, honestly. But in balls closing keynote actually broke this feature down in a way that was very digestible. And I'm like, you know what?'m actually i'm more excited about this now i mean i've wanted reflection this whole time because i've done i'm wearing my chai script t-shirt right now it's vintage for listeners who know anything about chai
Starting point is 00:13:14 script i haven't maintained it in a long time but i am uh i've always been excited about reflection because it would make things like scripting bindings much easier. And so I'm looking forward to this. But the versions of it that I've seen on slides, I wasn't excited about. And watch one of InBall's talks. I'll tell the community, watch one of InBall's talks. She breaks it down better than anyone else I've seen so far. I've
Starting point is 00:13:38 given a couple talks, well, I've had a section of a talk on reflection on my C++ Horizons talk for a while, and I recently had a section of a talk on reflection on my C++ Horizons talk for a while. And I recently had to remake it because they changed some of the syntax. The token sequences stuff came out specifically. And I wanted to remake it for the token sequences. And I went from being kind of meh on the examples.
Starting point is 00:14:01 They worked, but they weren't... It's the sign when you go to the slide, like, people growing in the audience. Like, it does something cool. But then, like, I rewrote them with the token sequences stuff. And I was, like, very happy. Like, happy enough where I was, like, I should go make a whole talk just on reflection. Like, I feel like reflection has been sort of iterated for a while. There's been a lot of churn, and some of the earlier ideas were a little bit clunkier. But the four minutes in now, I'm excited about it.
Starting point is 00:14:36 I'm excited about its NixOS feature. All right, so I'm going to jet. All right. Thank you so much for talking to us. Before you jet, last thing, do you know, do you have your next conference slash training? If folks are looking to attend one of your training courses and have in the past, do you know? Or potentially the answer is, I have no more conferences lined up 2025 or the next time you'll see me. If you do though,
Starting point is 00:14:59 now's your chance to let people know. You can look for workshops for me potentially at CBPCon, IndyC Tech Town, C++ Under the Sea, C++ Unsea. I don't have any of that lined up yet because none of those things have been set in stone yet. I will be at Code Dive in Wrocław, Poland in five, six weeks from now. Yes. So I will see those of you there who are there. I'm sorry.
Starting point is 00:15:27 And perfect timing. Speak of the devil. Miss Inval, we need you. Inval Levy just came over here, and she has now fleeing. And Jason Turner just had a lot of lovely things to say about your talk. Oh, Jonathan wants to say something. Yeah, go for it. I want to clarify some of my earlier statements.
Starting point is 00:15:49 For legal reasons, I have to say those were jokes. I like all podcasts equally well, and they do not represent my actual opinion. Wait, I don't even remember. What did you say that was problematic? I said nothing. I did not say anything. I don't recall. I don I recall. I recall.
Starting point is 00:16:06 Jonathan said that he loves our podcast so much and other C++ podcast sluts. We have Inbo Levy right here. Jason Turner just said that Inbo's talk on reflection is the first talk that made him excited about reflection. Miss Levy, come over here. Introduce yourself to the listeners. I do not know where Connor is. He has abandoned me. I'm not sure if the equipment's working.
Starting point is 00:16:31 Here is Inval. Inval, introduce yourself. Before that, I'll just say that sometimes you just wander into areas and you just, you know, you regret that. But hi, Bryce. Thank you for bringing me up live. It's very exciting or recorded or whatever. Yeah, it was really fun talk. I wish I had more time.
Starting point is 00:16:50 I know that some people have overtook the time in the talks before me. But that's fine because their talk was also fascinating. Now, I think they were unfair to you because part of the way through your talk, you asked how much time you had left. And someone said that you had until 6 p.m. And I was a little surprised because I looked at the schedule and I was like, that doesn't seem right. And then you continued going
Starting point is 00:17:15 and then somebody holds up a sign telling you you have 10 minutes left. And like, understandably, like that's a little unfair. Somebody, you asked how much time you had. Somebody said you had until 6. And then it's like 5.25 and they're like, that's a little unfair. Somebody, you asked how much time you had. Somebody said you had until 6. And then it's, like, 5.25, and they're, like, time to wrap it up. I think that's unreasonable. Yeah, I haven't the second time, actually, once.
Starting point is 00:17:33 But I wonder. You said you had until 6. The organizers, I think. Yeah, somebody from the audience said you got until 6. No, no, it was actually one of the organizers. But that's fine. That's fine. I really appreciate, you know, them giving me the opportunity. I'm really excited of the organizers. But that's fine. That's fine. I really appreciate them giving me the opportunity.
Starting point is 00:17:46 I'm really excited about Reflection. And one thing I do want to say is that I'm not actually the author of this. And there's a bunch of other people that I've mentioned in my talk, like Barry and David, that have been working on this really, really hard. And Dan Katz, of course, for implementing this in Clang. And those people are actually the people that need to be chaired. And I believe that Miss Daisy Holman is currently actively working on implementing token sequences in Clang. And I believe she is live streaming that on Twitch.
Starting point is 00:18:18 So if you're interested, go check out her Twitch account, which I would guess would be the whole Daisy. That is her Twitter handle. But I would guess would be the whole daisy that is her Twitter handle, but I saw that earlier this week. Well, we'll put a link in the description. If that's not accurate, just go to the show notes. There'll be a link. And token sequences, no, we're not done with it yet. I got one more thing.
Starting point is 00:18:38 So I was just telling a story that I was remaking some of my slides on reflection for token sequences, because some of the stuff, the way you do some things that change with the addition of token sequences. And I was very happy with the result. And I was wondering, have you looked at the token sequences part much? What do you think of it? We haven't looked at it at all, in fact. So I'll be happy to see your talk I actually haven't gave a lot of thought to that
Starting point is 00:19:08 so I don't have anything smart to say how is library evolution going? for those who do not know Inba Levy is the chair of library evolution where she is doing a wonderful job and producing a ton of excellent
Starting point is 00:19:24 work that's all going to go into C++26. So what do you have to say, Inbal? What's on the horizon? I just want to say before that, that everything that goes wrong, you can blame my previous chair, which you just heard. I completely agree with that sentiment. Everything right is Inbal's success, and everything wrong is a righteous failure. Yes, I think I heard Jason saying some things that went wrong. It goes great.
Starting point is 00:19:54 It's going on great. We're working really hard. I just had, in this conference yesterday, after my flight and got some time to rest, we had a reflection meeting. So we're really, really working hard to get everything in time for 26, which is exciting. And I am super excited about the amount of time and energy that people in the committee are actually giving to get C++ 26 in good shape on time. So I think it's amazing. What features do you think are likely to be big things that we'll see in 29 from the library side? Maybe Mathieu should be a bit upset to hear, but I think units are probably not going to make it to 26.
Starting point is 00:20:35 So I'd expect them to go into 29. And I think units is actually very significant for some domains. And I'm expecting this to land. So we had a question the other day, which is, is there an SI unit equivalent of knots? Right? Knots is the distance of measurement, but it's nautical, so it's kind of curved,
Starting point is 00:21:01 and it's in terms of miles. And I don't know know is there an si equivalent not somebody somebody tell me let's let's let's call coon good i'm gonna go you're gonna go grab so this is this is not gonna be coon's first time on the podcast this will not be coon's first time so if well she said she was gonna go get him and then she ran right by him. Bryce is going to go get him. So I believe it was episode 196 plus or minus one when Tristan brought to CPP North a video with Kuhn in the recording. Bryce is disappearing, but he did send Kuhn over. He's sitting down now. We have just wrapped.
Starting point is 00:21:43 I think I mentioned this earlier. We're now at the IMC post-conference social. I actually can't tell. It looks like many people have left, but there are still quite a few here. And now we're here with Kuhn. Introduce yourself, second time on the podcast, but first time in person. Introduce yourself, tell us what you thought about the conference and anything else you want to share with us. Well, so my name is Koen, I'm from Belgium. I've been working on C++ for the first time about 20 years ago. You look so young.
Starting point is 00:22:15 20 years ago? Yeah. Well, I can't say that the code I wrote then was actually good, but it was really embarrassing if I look back to it. But anyhow, so now I'm also a full-time C++ developer, and I'm loving the conference, having seen a lot of great talks, gained some new ideas, so that's really great. I'm happy to be here and to meet my heroes, of course. Well, Bryce is putting up a finger.
Starting point is 00:22:44 My mother is having travel difficulties trying to return to Tampa post-hurricane. I have to check whether her flight's going to leave. All right. So Bryce is going to be a bit MIA. You just wrapped. You say you had some interesting ideas. What would you say was the most interesting idea slash most interesting talk that you saw during the conference? And keep in mind, there was, what, two keynotes and four, two tracks and four talks on each track. So if you went to every single slot, you've only got six talks to choose from.
Starting point is 00:23:17 So it's not like we're at the end of a five-day, you know, conference here. So yeah, share some of the interesting ideas that you came away with. There was one talk before lunch about logging in a high-frequency trading application. And actually, I also submitted a talk related to logging and performance of logging. So that was really close to my heart. And it had some quite interesting ideas to switch on and off logging
Starting point is 00:23:43 to minimize the logging calls that were not interesting for you at that point of time. So to reduce the impact, to increase the frequency of trading. So that was really interesting to hear. What C++ standard are you working with at your job? Slash maybe in personal projects as well? It might be different. In personal projects, I would say C++ 20. But as I'm developing for an embedded system, our tool chains are a bit behind,
Starting point is 00:24:15 so that's still C++ 11. So I'm not really able to use the more recent features, although that would help out in certain situations to make the code more readable and more performant perhaps. Do you want to share or I'm not sure if you're able to, we can cut this out, what you do for work in embedded systems? Because I'm sure we have
Starting point is 00:24:35 quite a few listeners that do embedded work. I know Ben Dean, he also works at Intel in embedded systems. So, I mean, we definitely have people that work in that space and are probably curious when you mention that you're doing C++11 in embedded. What is that? So I work for a company called Van der Wielen,
Starting point is 00:24:52 and we make carpet machines or textile machines, actually. But one of our most important products are carpet machines. So actually, the one that is laying over there, there's a quite significant probability that it was made on one of our machines. It's another name that you see, of course, because we don't produce the carpets, but we make the machines to do it. And I'm responsible for the HMI team. So the screens that are next to the machines that decide which carpets you're going to make,
Starting point is 00:25:21 all the settings, the reporting of of errors logging all the monitoring of the machines and how they are running is so that's my core function i am glad my girlfriend is not here because she has recently become obsessed with cloth work i'm talking needlepoint knitting crochet you name it she is currently weaving weaving. She is currently producing it. And it is rapidly filling up our apartment. And the last thing I need is for her to want to buy an industrial carpet making machine. However, it is quite a nice carpet. Are you running in an embedded environment without an OS? No, this is a slimmed down Linux version. So did you already get rid of your coffee table? We did get rid of the coffee table, and it just ended up,
Starting point is 00:26:09 I just put a thing out on Facebook Marketplace, and somebody was going to come over, and there was a mix-up with the doorman where they were going to give her the coffee table because we were already moved out. But then there was some mix-up and she was real upset because they they told her oh it's not here and then she had to come back a second day and i felt really bad but uh yes it is now in a better home and i uh i hope it has not been
Starting point is 00:26:35 i don't know sold for scrap i don't think it has value with scrap so i'm just going to choose to believe it's in a better home you've baited you've baited b, you know. We were on topic, C++, and you baited him with a furniture question. That's real evil of you, Coon. That's real evil. Coming on, first time in person, baiting Bryce like that with a furniture question. He's already doing travel stuff on his phone,
Starting point is 00:26:57 and now you're confusing him. He doesn't know, do I focus on travel or do I focus on furniture? The mother is good. I wanted to end up in the 10x section as well. Another thing that was really striking was during your talk, you mentioned the work of Tristan Brindle with the Flux library and the performance of it. So I was really blown away by that.
Starting point is 00:27:21 So that's also something I want to look at and see if that's... Yeah, we are going to be having Tristan on. I mean, I mentioned this a couple episodes ago. I was supposed to record with him live in Rickmansworth. I have to remember that is the municipality that he lives in. But Taylor Swift, she messed up the subways with her Wembley Stadium performance. And we ended up being short on time, so we didn't end up recording. But I told them that we would bring them on to get some Flux updates.
Starting point is 00:27:53 But yes, Flux, you heard it here first, folks. Or maybe you heard it in Tristan's talk first. Flux is faster. You should go use Flux. And also, too, because it's not a standard library, if you've got some algorithm that you want that doesn't exist, you can just go create an issue, potentially even go try and implement it yourself
Starting point is 00:28:12 and get a little mentorship. But if not, I mean, Tristan has always been pretty... At one point, they didn't have... I want to say adjacent map. They didn't have some function. And one of those things where I didn't mean to nerdsnipe him, but I was just like, oh, it's missing this. And then like four days later, it had it.
Starting point is 00:28:28 Bryce is trying to say something. Yes, I think given that the subject of your talk has been brought up and I have some fun things to mention about your talk that you should give a brief overview of what your talk was about. Be sure to check these show notes either in your podcast app or at ADSP the podcast.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. Low quality, high quantity. That is the tagline of our podcast. It's not the tagline. 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.