Algorithms + Data Structures = Programs - Episode 206: 🇳🇱 C++ Under the Sea Live 🇳🇱 Jason Turner, Inbal Levi & More!
Episode Date: November 1, 2024In 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)
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.
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.
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.
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.
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,
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.
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?
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.
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...
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,
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.
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.
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
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,
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.
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
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,
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.
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.
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.
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.
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?
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.
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...
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
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.
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.
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
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
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
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.
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.
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,
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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
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.
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.
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,
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.
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.
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.
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.
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
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,
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
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,
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,
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,
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
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,
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.
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.
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
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.
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.