CppCast - CPPP
Episode Date: April 25, 2019Rob and Jason are joined by Fred Tingaud and Joel Falcou to discuss the CPPP conference, quick-bench and more. Fred Tingaud is a Principal Software Engineer at Murex where he maintains the C++... UI and front-end APIs. He is also the creator of quick-bench.com, co-organizer of CPPP conference, co-host of Paris C++ Meetup and an organizer of #include . His interests range from code efficiency and readability to UI ergonomics. Computer Science Engineer, PhD, Associate professor at University Paris Saclay, Joël Falcou is the creator and president of C++FrUG, C++ Meetup host and an International speaker. Joel has been actively participating in the C++ international community with more than 7 years of international talks at BoostCon, C++Now, C++Russia, C++Con and Meeting-C++. He is also a member of the C++Now and CppCon Program Committee. He is a member of the French National Body of the ISO Standard Committee for C++ since 2014. News ClangJIT Enhancing C++ with Just in Time compilation C++ 17/20 Features and Fixes in VS 2019 ACCU Trip Report CppCon 2019 Call for Submissions Registration for CppCon 2019 is Open Fred Tingaud @FredTingaudDev Fred Tingaud's GitHub Joël Falcou @joel_f Joël Falcou's GitHub Links CPPP Quick C++ Benchmark Practical C++ Metaprogramming CppCon 2018: Fred Tingaud "A Little Order: Delving into the STL algorithms" CppCon 2017: Joël Falcou "I Wish I could Use C++ 1x/y/z" Sponsors Wanna Play a Detective? Find the Bug in a Function from Midnight Commander False Positives in PVS-Studio: How Deep the Rabbit Hole Goes Hosts @robwirving @lefticus
Transcript
Discussion (0)
Thank you. of programs run in C, C++, C Sharp, and Java.
In this episode, we discuss Clang JIT and conference news.
Then we talk to Fred Tingau and Joel Thao-Ku.
Fred and Joel tell us about the C++ developers by C++ developers.
I'm your host, Rob Irving, joined by my co-host, Jason Turner.
Jason, how's it going today?
I'm alright Rob how are you doing?
Doing okay. You got anything exciting coming up soon?
Well I mean there's conference news we'll talk about that a little bit later.
But the main thing that I have coming up in the moment is still just making sure that I'm ready for Core C++.
Right.
Coming up in May here. Feels very, very soon to me.
Yeah, those conferences are coming up really soon.
That's basically two weeks and I'll be in Israel.
Yeah.
Okay, well, let's jump right into the feedback then.
At the top of our episode, I'd like to read a piece of feedback.
This week we got a tweet from Paul Drake,
and he says, I heard the interview with Victor Zverevich on CppCast
and decided to fuzz format lib, found an issue,
and it was fixed upstream within two hours,
which is pretty impressive of Victor.
Pretty good response time.
Yeah, and fuzzing is an amazing thing,
and I imagine a project like format lib
is one of those that you could probably just leave a fuzzer
running 24 hours a day, 7 days a week, like Lib C++ does for a lot of their standard algorithms and stuff.
Do they run a fuzzer nonstop against it?
They run fuzzers nonstop, waiting for a bug to come up.
That's pretty cool.
Yeah.
Okay.
Well, we'd love to hear your thoughts about the show.
You can always reach out to us on Facebook, Twitter, or emails at feedback at cpcast.com. And don't forget to leave us a review on iTunes or subscribe on
YouTube. Joining us today is Fred Tengau and Joel Falco. Fred is a principal software engineer at
Murex, where he maintains the C++ UI and front-end APIs. He's also the creator of quickbench.com,
co-organizer of CPPP Conference, co-host of Paris C++ Meetup, and organizer of Include C++.
His interests range from code efficiency and readability to UI ergonomics.
And Joel is a computer science engineer, PhD associate professor at Université Paris-Saclay.
He is the creator and president of C++ FRUG, C++ Meetup host and international speaker.
Joel has been actively participating in the C++ international community with more than seven
years of international talks at BoostCon, C++ Now, C++ Russia, CppCon, and Meeting C++. He's
also a member of the C++ Now and CppCon program committee. He's a member of the French national
body of the ISO standard committee for C++ since 2014.
Fred and Joel, welcome to the show.
Hello, guys.
I feel a bit underqualified.
I don't have any PhDs or I don't lead any national bodies or run any conferences or anything like that.
How about you, Rob?
No, I do not either.
The first two is the most complex one.
After that, you know, it's rather easy Right
Okay, well, Fred and Joel, we got a couple of news articles to discuss
And then we'll start talking more about the CPPP conference
Which we just mentioned and some other products you're working on
Sound good?
Yeah, sure
Okay, so this first one is Clang JIT,
Enhancing C++ with Just-in-Time Compilation. And this link includes a link to download a full PDF
describing what they're doing with Clang JIT.
I did not have time to read through the whole PDF paper,
but it sounds pretty interesting what they're doing,
integrating Clang in order to do just-in-time compilation of template specializations.
Yes, that's what I can say. one of the very specific things that Clang has different with respect to GCC,
it was actually an instantiation of some library for compilation things.
So you have libclang and clang-is-built on top of that.
And there were quite a few times that people were actually wondering
whenever we would actually get there, because if your compiler is actually a C++ library,
why not just, you know, call it directly from your code?
So that's a pretty cool advance on that.
I skimmed through the paper, which looks like very interesting,
but, yeah, it's really deep.
I also skimmed through the paper,
but I am not a professor who is used to reading these things.
Yeah, well, you know.
That's a very nice chart.
Very important.
It's actually,
for the sake of our listeners,
it is an attribute
that you can apply to any function
that says, this is a function that I
want compiled at runtime.
And then whatever type, whatever values you pass to it
become a template value parameter, right?
Effectively?
Yeah, sort of, yes.
Sort of, yes.
And it does it at runtime.
It seems like it's, from my perspective,
difficult to wrap my mind around exactly where and when
and how I would use this.
But on the other hand, I'm like,
maybe something like ChaiScript,
like my scripting engine, would now become trivial to
implement in a project like this.
Could also be a way
to maybe get rid of, you know,
actual
DLL or SO-based
plugins, so you can just shove
stuff into a function
and you put it out when you need it
instead of having to dynamically load some things which may be a way to actually get out of this you
know there's a lot of talks about getting you know add-on or plugin standardized and it never get
anywhere so that could be an actual you know other way to do it so you can you know store your
ready-to-be-compiled function somewhere and, you know, store your ready to be compiled function
somewhere and just, you know, pick them around when you need them and let the things do its
works.
I think the downside, though, is you are tying yourself 100% to Clang for your compiler.
Could be worse.
Could be worse. I'm also very curious, because I didn't see this, but I also didn't look
very closely at how big the binary
is when you're done yeah that's a question right because you're including the compiler in your
application basically right that's how i understand it yeah yeah i'm not sure clang is that big
i mean if you have a hello world it's huge but uh i don't think it's that big the lmvm suit is
huge but clang itself I'm not sure.
I guess then there's the other question of how much of the standard library needs...
No, no, I guess it wouldn't need standard library,
because all that would be resolved at compile time.
Yeah.
Huh.
Well, one of you should go out and experiment with this
and report back to us how well it worked.
Yeah, if it's metaprogramming, it should work.
Yes.
We nominate him.
As a tribute.
Okay, next thing we have is a post on the Visual C++ blog.
This one is authored by STL, who we've had on the show before.
And, you know, you think they might take a little break
after releasing Visual Studio 2019,
but they're already talking about what's going to be in update 16.1.
And this post is STL going over
all of the C++ 17 and 20 features
and fixes in Visual Studio 2019.
And there's a lot here.
Yeah.
And so to be clear,
I think this is 16.0.
This is the already released fixes, right?
Yeah, I think there was another post
talking about something in 16.1. Actually, I think the other post.0. This is the already released fixes, right? Yeah, I think there was another post talking about something in 16.1.
Actually, I think the other post was referencing that they're including Clang in 16.1.
Yes, right.
So if you want to compile Clang from Visual Studio, they're making that possible, which is great.
Yeah, out of the box now, yeah.
Right, right.
But is there anything specific in this post that anyone wanted to call out with the 17 and 20 features and fixes?
Well, it's a massive list.
I think that the main thing that we can get out of that is, I mean, we clearly see for a couple of years now, maybe more than that, I mean, there is a real, you know, step up of the quality of the implementation of Visual Studio and the library on Windows.
I think it's a very, you know, a huge amount of work from STL and his team and all the guys involved into these compilers. So it's, I mean, I myself went from, you know, using Visual Studio on Windows when I was
forced to because I needed to fix some bug on Windows to actually be able to, you know,
like do my day-to-day development directly with it and without, you know, missing much.
And that's something which is really really i mean it's a huge improvement
uh especially when you try to to try to be you know uh close to the uh the new year standard
and stuff and stuff like this so it's it's incredible uh the amount of quality improvement
they got in since i don't know like last version or the version before. Yeah, 2015 was the third version where you could
really see that it was improving
very fast. Yeah, I agree
with that. Yeah, now they're already talking
about all these C++20 features that
they've implemented before it's officially standardized.
It's pretty great.
There is one fix
in here that just caught my eye and it made
me laugh. It says
the standard Boyer-Moore search, the standard Boyer-Moore
searcher and standard Boyer-Moore
horse bull searchers, copy constructors
and copy assignment operators now actually copy things.
So I guess you would have...
So there must have been
shared state or something if you accidentally copied the searcher object?
I don't know.
I don't know. I want to know.
I want to go back to an older version and try it and see what it did.
I think you could probably do that using GCC Compiler Explorer.
I don't remember which version they have.
Oh, yeah. Yeah, yeah, probably.
Could do that.
Depending on how much of those searchers
are implemented in the header.
One more thing I wanted to call out is
in his opening paragraph, he mentions
that they implemented more of
Karakhan's header,
which he refers to as C++17's
final boss.
I've not heard it
referred to that way before. Does anyone really know what he's
talking about with it being the final
boss? I don't.
I think it's
one of those headers
for converting a character to something
else, which may imply
taking care of
stupid formats or encoding and
stuff like this.
I think Sharkonomb also has this,
you know,
you take a string with a number inside
which is in hexadecimal or whatever
and you use a value,
and I don't even want to know how many
corner cases of things
that can go wrong in this situation
that they have to fix, and maybe
also fix
in a way it still goes fast enough.
Yeah, right.
I mean, character conversions is
clearly the place you don't really want to be.
Anyway, I mean,
all the people that work, you know, like,
on Unicode and things like this, I mean,
I, you know, we should collectively,
you know, send them
candies or something, because, I mean,
it's oh god
you don't really want to do this
yeah you have that and it
yeah definitely I'm very happy people
handle it for me
yeah
next thing we have is a
trip report from ACCU
and I think this is written by
a Rust developer but
he talks about how ACCU is a very
C++ focused conference, which he enjoyed even as a Rust developer. And he highlighted a couple talks,
one from Herb Sutter on C++ error handling, which I think is all about his proposal for changing the
way we can do exceptions. Another one about C++ ranges and functional programming
with the author of that functional programming C++ book
that I would like to get on the show sometime.
Yes.
Yeah.
Anything else you guys wanted to call out with this?
Anyone make it to ACCU?
Yeah, I like the fact that we have people
from other languages coming to C++ conferences
and enjoying it.
Yeah.
Because, yeah, that can be very interesting to have other languages' ideas coming into C++
and making us think out of the box.
Yeah, definitely.
Yeah.
I did like the...
There was a Rust talk here that he mentions, Monotron.
And if you check out that project,
it made me aware of a piece of hardware
that I did not know existed, which is a ARM Cortex-M4-based tiny Texas Instrument development kit that's got a VGA screen on it.
And this is someone writing his own operating system and such in Rust for that development kit.
Oh, God.
Yeah.
So I think that's tons of fun, personally.
So, our listeners might like that.
Yeah.
Yeah, it's probably interesting, yeah.
I want to buy one of these kits.
I already have a stack of
Raspberry Pis and stuff
that I don't use, so I stopped there.
You set them up as servers for QuickBench.
That's what you're supposed to do with them.
Yeah, that's an idea, yeah.
Okay, and then the last thing we have is some more conference news from CppCon.
First of all, the 2019 call for submissions is out,
and the deadline is only under a month away, actually. May 20th is the deadline for submissions is out, and the deadline is under a month away, actually.
May 20th is the deadline for submissions.
May 20th, yeah.
It's rather short this year, yeah.
Yeah.
Yes.
The call for submissions, I think, was sent out a little bit later than usual.
Anyway, everybody is going to send a CFP on the last day,
so it could just be 24 hours hours and it would be the same.
Well, I mean, you all are running
a conference now and we'll talk about that more in a minute,
but my understanding
is the 80-20 rule as it applies
to conferences is that 80%
of the submissions come in 20 minutes after
the deadline.
We should say, be kind to your
conference submission reviewers and try to get yours in
sooner than that
yeah I was surprised
I sent one like
one week after they opened and it was
only it was
less than 10 CFPs
there in one week
I would expect a lot more
I haven't sent mine in yet
neither do I
yeah well you know
yeah well you know you have this you have this you know vision of things where you think people
are just there you know waiting to pounce on the uh on the submission forms except nobody knows
already what they want to talk about anyway so no i usually know what i want to talk about the
thing is uh i'm thinking, how should I write it?
Should I make something better or anything?
But now you can always edit them.
So I usually send something the first day,
thinking, okay, I'm going to improve it later if I need to.
I never improve it, but at least I sent it early.
So since both of you also speak regularly at conferences, I personally
keep a folder of conference talk ideas.
So when the next call for submissions comes up,
I'm like, oh, I'll pick that one.
You do that as well?
Yes, I'm self-taught.
And we still wait
until the last minute to submit it.
Of course.
And now
everybody knows our secrets now.
Well, that might help people who say,
I never have any idea what to talk about.
The idea is if you come up with any idea over the next 12 months,
write it down.
It's not like we're all just sitting here
and we immediately come up with great ideas for talks or something.
Yeah, and go to meetups,
because we're organizing the conference, but we are also organizing
meetups. And go to
meetups and do presentations.
That's a very, very good way
to test it, see what
sticks or not and what to improve.
I usually prepare my
talks like one year earlier by
going to a meetup and
talking. Oh, wow.
I don't do it that far. I have this idea. I write usually Oh, wow. I don't do that.
I have this idea.
I write usually a lightning talk.
I present it in five minutes.
And if people like it,
I try to do something longer.
See, okay.
So I gave my first ever C++ lightning talk
at my own meetup a few months ago.
And I did it with the intention of,
if this goes well,
maybe I'll make this into a full conference
talk and it did go well but now i'm like my thought now is well if i was able to present
it in five minutes then what's the point of an hour conference talk that's the problem i'm having
but says if you do that regularly like maybe you can like give our listeners some ideas there or something. Well, the first time I did it was with my talk about partial sort.
And I began with just a lightning talk about grid bench.
And the last slide of the five-minute presentation,
it was like 10-minute presentation,
the last slide was a result I didn't expect.
So I would end up on this.
Oh, okay.
Yeah, I would end up on this result and everybody't expect. So I would end up on this. Oh, okay. Yeah, I would end up on this result.
And everybody was surprised. I had to stop there because I only had 10 minutes and no idea why I
had this result. And next time I just search into it and made a full time presentation about why do
we have this word result, which is that partial sort is extremely slow if
you try to sort like half a container is partial short one of the partial sort one of the ones
that's allowed to allocate um no it doesn't it does no it doesn't no no stable sort might yeah
but uh actually stable sort is very fast. That's another result I had.
It's sometimes faster than quick sort.
I would like to look into that too.
That's weird.
I already have two talks ideas,
and I know that sending more than two talks ideas at CppCon can end up with
you having four different talks.
Don't do that!
I definitely don't want to have talks. Don't do that. I definitely don't want to have that.
Don't do that. Okay. Okay. I, I, this is now I need to, to, to give a disclaimer here, right? So yes, you can submit five or six talks. There is a possibility that they will all get accepted.
That has happened before, regardless of what the conference organizers tell you,
you are allowed to say,
I know that you accepted six of my talks,
but I only have time to give two of them.
You are allowed to tell them this,
if they accept all six,
just so the listeners and everyone knows.
I know it's easy to feel like,
uh-oh, now I have to give six talks.
Yeah, yeah. Yeah, been there, done in. I know it's easy to feel like, uh-oh, now I have to give six talks. Yeah, yeah.
Yeah, I've been there, done that.
Yeah.
Oh, yes.
Like, my third year at BoothCon back in the day,
submitted five talks, get fives in.
I mean, yeah, and Artboard Chaser was even, you know, like,
you know, when you're down, you know, you can just slide down, but, you know, sometimes people come up and they just, you know, kick you you know, when you're down, you know, you can just slide down, but,
you know, sometimes people come up and they just, you know, kick you in the face while
you're down.
And so, ArtMood started the conference by reminding everybody it's still BoostCon, even
if Joel was giving a talk every day.
Thanks, ArtMood, you know and after that
yeah
I was submitting
like max two of them
you know
just to have
something
if it's one of those
that didn't stick
but no more than two
I can give one touch
a day
and then
I'm not able
to do anything else
during the whole day
oh
oh no
yeah
it wipes you out
it's draining
Rob wants to move on with the interview but before we move no I'm fine Oh, no, yeah. It wipes you out, yeah. It's draining.
Rob wants to move on with the interview, but before we move past... No, no, it's fine.
Before we move past the conferences, registration is open.
Yes, so if you're not looking to submit a talk, registration is open with early bird pricing.
I'm not sure if they say how long the early bird pricing is available, but get it while it's hot, I guess.
If you do submit a talk, I do recommend waiting to register.
Hopefully they will tell you before early bird registration expires,
but those dates should be double-checked.
Keep your early bird registration numbers.
Even if you have the results very late,
you can still buy your ticket with early bird reductions.
Yes.
If you submit it.
Yeah.
Oh, okay.
That might be new for CppCot this year, is it?
Last year, too.
Oh, okay.
It's recent, but yeah, it's definitely going on for a bunch of years now.
Maybe one or two years.
I don't remember exactly.
And the other thing is, if I'm'm not mistaken we are moving this year
we're moving to my backyard
oh god
so we are moving to Colorado
it's that way
that's where the conference center
is going to be
so that's actually cool
because I think we just
exploded the amount of people we can
shove into the Seattle venue.
Yes.
Another thing too is
I think that we probably have
posters this year too. That's a
very good way to go to CppCon
and if you don't want
to give your first talk,
having a poster is way easier
to do than giving a talk.
That's what you did
your first CBPCon, right?
Actually, the second one. The first one was paid by
my company.
That's a very good way to
talk with people and get the
first foot in. It's easier than
giving a talk. Sounds like a fun one.
There's also 20 classes
being offered this year, pre- and post-conferences classes.
And I will be doing a post-conference class myself on Constexpr.
How many is that compared to last year?
Is this more classes?
Do they keep growing this?
I don't know.
I think so, yeah.
It seems bigger.
Yeah, 20 is definitely bigger, yeah.
Somewhere around there. It's a lot. Yeah, 20 is definitely bigger, yeah. Yeah. Somewhere around there.
It's a lot.
Yeah.
Okay.
Well, why don't we start off by just kind of catching up with you, Joel,
since you were back on CppCast like four years ago,
like during our first year?
Already?
Yeah.
So what have you been up to since we had you on the first time?
Oh, well, you know, the good usual things.
You know, I'm still trying to find new ways to make compilers cry.
That's still on my, you know, to-do list.
I spent a bunch of time working on my startup.
And then I went back to actually doing, you know, development recently. And I'm trying to catch up with all the new fancy things in 17 and 20 that I basically just, you know, saw from afar.
And, yeah, I will probably submit a talk about one of our new thingy at CppCon about more, you know, like more pressure on the compilers
and try to see how we can actually change
the way we are handling
some of these metaprogramming things.
I followed a lot what Luis Dion
and all the new guys did on this front,
which is actually quite impressive.
Anna's talk too,
which I was basically
bowling at the slide when I was
watching them on YouTube.
I was like, really we can do that?
Where have I been last year?
Something like this.
We are in a place now
in a time where we can actually do a lot of things
using this new way of thinking
about how the compiler actually works
and trying to
make it work the way
you want. I mean, now
I'm on this position that
actually what we have now
is we have a language and
we can script the compiler
directly from the language. That's how I see
the things about constexpr
things and metaprogramming.
You basically script the compiler to do what you want to do.
And the cool thing
is that it looks like
almost normal
code now,
which is a great improvement
from the thing we did before.
So, yeah,
I've been still working on that.
I have a bunch of libraries in the oven right now that will probably be
released during the following
months. I've been playing around with
constexpr a lot
because for a while I was
thinking it was definitely the
one feature that will make
all the macro based
things die
except not.
Most of the macro-based things.
Most of them.
So I played a lot with all the...
I mean, I had this idea of having a constexpr-based...
What's the name for that already?
What's it? Boost pre-def thing?
Oh, boost reprocessor?
No, no, pre-def.
The one that says,
if you are compiling on this
or if you are compiling for Windows,
things like that, you know, those macros
for OS and compilers.
And I was pretty sure I could actually
have something that you can actually write, you know,
like, if constexpr
my compiler equal equal
GCCs and do something. And then I
got by the fact that
if constexpr doesn't work the way
you think it works,
which means that it doesn't remove the token.
Yeah, yeah.
It still has to be compilable
correct code, yes.
That's a bad idea, anyway.
I was playing around with these things.
I'm trying to catch up on modules
because that's also a thing I really want
to push forward.
So yeah, I've been playing around a lot.
And I will probably, yeah, I have a bunch of things going out later this year.
Still around that.
And I'm trying to, you know, consume all those new information about how we should be writing, you know, C++17 and forward scores,
because I feel like, again, like in 2012,
when I decided that everything I was writing needed to move to C++11,
but, you know, sprinkling, dot, dot, dot, and auto was not enough.
You had to think about rewriting your crap,
because if not, you don't gain anything.
So I'm back at this square trying to see,
oh, I can actually C++17 all the things.
All right.
Fucking tank.
Yeah.
Oh, yeah.
And actually, we are working on the conference.
I almost forgot.
Well, before we talk about the conference,
Fred, what projects are you working on?
Well, I have a ton of projects in my head.
But it turns out organizing the conference takes a lot of time.
So for the moment, most of the projects stay in my head.
Still in my day job, what I do that I find very exciting
is using Client ID tools and building refactoring tools with that.
Like I work with this massive code line
that was started 30 years ago.
Most of it might be still 15 years old.
So the API is pretty old
and you cannot change anything.
You try to change something
and you realize it's called 40,000 times.
And so, yeah, this dead parameter is going to stay
because you cannot remove it in 40,000 calls.
And now I'm using Client ID
and building tools that are able to refactor it.
And that's fantastic.
Wow.
I have a new job.
Something that wasn't possible a few years ago.
And now it's completely possible. So I hope I'll be able job, something that wasn't possible a few years ago. And now it's completely possible.
So I hope I'll be able to talk about that in incoming conferences.
And somebody is going to talk about it at CPPP, even if it's not me.
Okay.
I was just thinking, yeah, you have to give a talk on that from the newbie beginner standpoint.
How do I leverage Clang Tidy to do my refactorings for me?
I've seen several talks on libclang and Clang Tidy and stuff,
and I feel like it usually still feels unapproachable.
I want the absolute beginner's guide to how to do this.
Well, you should definitely come to CPPP then,
because Jeremy DeMull, who is the person who introduced me to Client ID
is going to do exactly that
a live coding starting from
getting the repository to having
the first rule
and doing everything live
and hopefully everything is going to work
I know he is able to do it
he did way more impressive things
in our company
so I completely trust him with that.
Completely
trust him.
That sounds awesome, though.
Just giving you a hard time, but yeah.
I wanted to
interrupt the discussion for just a moment to bring you a word
from our sponsors.
PVS Studio performs static code analysis
and issues warnings for fragments of code
that are likely to contain errors
and potential vulnerabilities.
The tool supports the C, C++, C Sharp,
and Java programming languages.
At the moment, PVS Studio has 422 diagnostics
for C and C++,
which enable you to detect dereferencing of null pointers,
array bound violations, typos, dead code,
resource leaks,
and other kinds of errors.
PVS Studio supports working with Visual C++, GCC, client compilers, as well as a number
of compilers for embedded systems.
The analyzer works in the Windows, Linux, and macOS environments.
Follow the links in the description to two new posts from the PVS Studio team.
The first one suggests checking your skills to find errors.
For the second one, you can read about a non-obvious
case of an analyzer false positive.
Okay, well, since you mentioned it,
I think we mentioned it briefly
in the news last week, but
you guys are working on your own
conference in Paris, is that right?
Yep. You want to tell us a little bit about
what motivated you to start
a new conference?
One of the things that motivated us is that
we organized the meetups
and about each meetup
we had people come in to us and say
but when is the first conference in Paris
about C++?
I would say yeah, it's a lot of work
I'm not sure I'm up to do it
and at some point we just
snapped and did it.
Yeah, well.
If not, somebody else would have done it
and would be very
sad about the state of affairs.
Now, it's something we have in mind
for quite a few years now.
Yeah, I mean,
I think when Mathieu was still there,
we were already thinking about it.
Yeah, Mathieu Roper.
And Mathieu Roper, Yeah. Um, and,
uh,
yeah.
Yes.
That's the Parisian in Stockholm as,
as he is.
Yeah.
Yeah.
Exactly.
Uh,
the meetup at some point.
Yeah.
Right.
And so,
uh,
it was all,
all the,
all the time.
It was like,
we should do it next year,
you know,
and every year it was next year.
And, uh, yeah, this year we were like, okay, we have to do it now.
Even if it's, you know, I mean, a small event,
which it would be and see if it, you know,
if people actually buy it on it.
And when we have that, we can start having something recurring.
And so what we did was trying to see how we can get that running
without having to leverage a huge amount of additional work,
like, you know, call for paper and so on and so on.
And one of Fred's idea was to actually say,
hey, we can ask all these, you know,
all those cool people we know from all the other conference,
if they can make the ultimate sacrifice to spend a weekend in Paris in June,
this very complicated task,
and help us having something to present to our meetup members
and I hope a lot more bunch of people.
So we basically co-ask people to come in Paris, you know, for free giving a talk,
and they all say yes, so done.
So have you actually said what day it is yet?
Yes, it's...
What day is it?
June 15th?
Yeah.
Okay.
And the website is cppp.fr,
and the three Ps are for produce and pick forward.
It's because it's French, and you always drop the last letter off anyhow, right?
Yeah, exactly.
So we put a lot of P, you know?
The last one is silent.
Sorry, sorry, sorry.
That's almost that.
I saw that on Twitter and I just loved it.
Yeah, it was funny.
So yeah, the idea is we want something
with different approaches.
Progress is for people who start C++.
They might be students
or they might be people programming
with another language already
and they want to start using C++ better.
So we have progress for them. Produce is for people who have actual
production issues like you have huge legacy code, nothing is tested, your code is 30 years old,
and you go to CppCon and you have fantastic presentation about C++20 and how to templatize and do template metaprogramming, but you don't
have even tests or anything.
And how can you join your day-to-day job and what you hear in conferences, which is very,
very nice, but not always applicable to your job.
So that's produce, which is way more.
Yeah, we know you have a lot of code.
We know you don't have tests or you have very little tests.
Here is what you could do today that you can take from the conference.
And the last is push forward, which is, yeah,
is a very fancy stuff you can do with C++20 and template metaprogramming,
which we all love to see.
So am I reading your conference website right
that the first P is a French track?
Yes.
Yes.
Yeah, I forgot to mention that.
Yeah.
Okay.
The idea is it's for students,
and we might have a lot of job seekers and people like that.
They're probably not flying from the US or something.
So we're probably going to have a lot more French people on this track.
And that's also the track where we probably will have people
who are not fluent in English.
They can speak English, but they're probably not fluent.
So we are trying this in French, see how it goes,
and see if people like it or not,
and next year we'll think about it again,
see if we want to move everything to English.
Yeah.
Or everything to French.
No, I'm joking.
Yeah, it was a bit controversial at some point,
but I think it's something we basically have to try and see if
it sticks.
And I think
if people want to
have a look at the
talk later, I
think the YouTube closed caption
would be enough to get the gist of it.
And I think it
should be okay. We will see.
It's a topic that continuously fascinates me
because I've watched, like, Meeting C++ used to have a German track.
Now it doesn't.
They eventually dropped it.
Yeah.
Yeah.
The core C++ started with the plan of having a Hebrew talk, Hebrew track,
and they ended up reducing that or drastically eliminating it
or drastically reducing it.
And as I do training...
I think they still have a few Hebrew talks.
Yeah, there's a couple of things that are in Hebrew on it now still,
but it was meant to be like a full track of it, I think.
And then I just...
Sorry.
No, no, go ahead. Go ahead, please.
On the other end of the spectrum, you have C++.
Right.
Which has a couple of English talks and the have C++ Russia. Right. Which has a couple of English
talks and the rest is in Russian. Yes.
I mean, I went there
and I was like, yeah, you know, like, it's just
a C++ conference, but in Russia.
And they, I was, I think it
was Gore that was there.
And we ended up finding
out we were the only two English
talk of the old things.
And we were like, oh crap.
I think now they have a lot more English talks.
Yeah, yeah.
If you intend to go this year, you'll probably find enough talks in English to find it interesting.
That's fascinating to me.
Although I guess in Paris, even if you're helping to attract people even from the rest of Europe,
having English talks is the common language of
programming effectively, right?
And a lot of fantastic speakers
are English speaking.
Or not French speakers at least.
Not French, right, yes.
So how many
speakers are you having for the conference?
It's just a one day conference, right?
We have 12 speakers.
And you said split up into three tracks.
Yeah, exactly.
So there is this first keynote from Ted Gregory,
where everybody will be, and then we have three tracks.
And that should be 13 slots, but one will be a workshop.
So it's not exactly a speaker, so we have 12 speakers.
The plan was to start small, but
having an interesting lineup,
and we will see how it goes, actually.
It's both simultaneously small
and big to go for
three tracks, but only a one-day
conference. That's ambitious
and small at the same time.
We wanted something
that would
give a good idea of what we want in the incoming years.
So this idea of having different approaches.
So we needed the three tracks to really give an idea of what we wanted to do and make sure it works.
So how many attendees are you hoping for?
About 200,
perhaps more.
Okay.
That would definitely
be a good start
for the first conference,
for sure.
We'll see if we make it.
And the tickets
are currently on sale,
I don't think
we've mentioned that.
They are on sale
and there still are
a few early bird tickets.
So,
hurry up.
You might have
an early bird ticket.
Hurry up.
You should actually have bought all of them right now.
Between we record that
and it goes live, so
we better sell everything.
The time slot
between when we announced
and the beginning of the conference was
pretty short, so the idea
for the early bird is we have a limited
number of early bird tickets.
It's not a date where we switch
to full price. We just have
100 people come in with early birds
and then everybody else has to pay
for full price. So just for the
record, I cannot make it on that day,
but Rob, I don't know if he's going to make it.
My schedule wouldn't allow it.
I'm not sure what my summer plans are like.
Maybe I'll talk to the wife about it.
Yeah, it's Paris.
June 15th in Paris.
Yeah, June in Paris does sound nice.
Just that, you know, like, just mention that.
And the next day is the same expense.
That's all we got, probably.
I think that's all we got off of our speaker, anyway.
You know, Paris, you know, in France,
not in the Mississippi or wherever, you know, like the actual one.
Yeah.
Well, and it is actually interesting that you planned it for a nice
time of year, because, you know,
most C++
conferences and events and things happen at the
bad times of year, because it's the
cheaper time to be there.
Yes.
That's easy. There is no cheap time
in Paris, ever. Oh, okay. Makes's easy. There is no cheap time in Paris, ever.
Oh, okay.
Makes it simple.
Yeah, no, I was saying the food, too.
Don't forget the food.
The food should be very good.
And the wine, we'll say, Mathieu, you know that.
Yes, there will probably be no wine
at CPPP's lunch.
I'm sorry about that.
What?
Isn't that against the law or something?
Just to bring your own wine affair, maybe?
Outside to a fountain or something, you know?
Okay.
Slightly more serious, though. I'm curious about the genesis of this,
because you said people are coming to your meetup every
month and saying, when are we going to have a conference
in Paris? And you said, we'll do a conference.
But I'm curious how many people you had
coming to your meetup in the first place.
How big of a core group did you start
with? It started
very small. I think the
very, very first meetup,
it was, like, what, three years ago now?
Four years ago? I don't really remember.
A long time ago.
A long time ago.
You know?
We got like, I don't know,
30, 35,
maybe 40 people. For your first
meetup? Okay. Yeah, that was a small one.
I mean, on the... It was very
small. That's bigger
than my meetup, don't tell anyone.
Okay.
I won't.
And then we, I think it was
when we moved to,
we got a new place
before Murex,
which was MobySkills.
They had a nice setup, it was right in the middle
of Paris, and we started
attracting more people. I think we
get up to
50-60 regular every
month
and now we are at
80 something like that
so we are usually 80
but it depends on the place because
the limit is not
the limit is the size of the room
so we usually have an 80 people
room so we just send the invitation and everything is complete in 48 hours.
But we could have a few more people.
Yeah.
Okay.
And we have actually very few no-show actually.
That really depends on the distance to the center of Paris.
If you are in the center of Paris, you are full and everybody comes.
If you are very far center of Paris, you are cool and everybody comes.
If you are very far, it can be harder.
And so... Yeah, go ahead.
Well, it's regular.
I mean, that's where we wanted to be.
We wanted to have something where we, you know,
we have a bunch of people coming in.
We still have a lot of new people every time.
We used to make some kind of
roll call, you know, who never came
and something like this. And we always
have a bunch of new guys or
girls. So that's actually
pretty cool. And we have like, I think
we are approaching the 1,100
members on the Meetup
website. So
that's good.
Now the one thing we really wanted to do at some point, people started, but I
don't know if it gets very far, we really wanted to have something which is, and that's why there
is no Paris in the name of the meetup, we wanted to be something that people can take and go
elsewhere in France and make, I don't know, their Bordeaux meetup
or their Marseille meetup and whatever.
Some people started a thing like that,
but I don't know if it goes that much well.
But it could be cool if we could have more, let's say,
localized meetups in other big cities in France.
Yeah, outside of France, in French-speaking
countries. That would be even cooler.
Also, yes. There's other French-speaking
countries?
Yes.
More than you think.
I think French is like the fourth
most common language in the world, something
like that. Yeah, probably
in the top ten, but I don't know.
It's very high, yeah.
Yeah, yeah, yeah.
I'm guessing it's not English.
No, it's probably Chinese or something.
Mandarin or something, yeah.
Yeah, Mandarin, probably.
So yeah, we...
I think, Fred, you're okay with that.
I think we are quite happy
with what we have right now.
We have this strong community
that comes every month or every time we have right now. We have this strong community that comes every month
or every time we have something.
It's
very lively.
We
still have to fight
for finding speakers sometimes, but
not as we did before.
Yeah, we have.
So it's going strong.
We have nice lightning talks.
This year, we don't have time
to have lightning talks during the conference
but the meetup lightning talks
are interesting
because there is this anarchic
way of working where
somebody is going to come and do a presentation
of 10 minutes about their tool
and then they are going to sit and somebody is going to
stand and say oh I was on godbolt.org
while you were speaking and here is what your cause is generating and here is why
that's very very interesting i think yeah i i would really love if we could manage to do
something like that uh in a conference i heard accu's lightning talks are already quite a bit
easy going where you can just say you're going to do a talk the day you're doing it and stuff like that, which is interesting.
I hope in the future we'll be able to do something like that where anybody can come and talk and have nothing prepared but just improvise. advice. And it also helps in what you were saying just before, by having
these spontaneous people just
standing up,
speaking about, I don't know,
I should say, something they just did five minutes
ago. It also helps people
to get confidence, say,
I maybe have five minutes of
interesting content, so I
can do it. And it helps a lot,
actually. It helps a lot.
So you've said that the conference
has taken a lot of your time to organize,
which is easy to believe,
but have you been surprised by how much time it took?
And if so, for other people considering
making their own local conference,
do you have any advice for them?
Prepare in advance and call the sponsors
in advance
like really in advance
sometimes you call them and you say
we have something in two months
are you kidding me?
we prepare that one year in advance
a year in advance?
ok
yeah
and don't actually hesitate to ask the famous people you really want to have
because you may be surprised of who actually want to, may be willing to come, even at your very local small things.
We are very very lucky this year because we have a lot of people we really want to have that basically said yes on the go because they were very interesting to
come and that was actually a very nice you know interaction with them which is
rather different than just you know talking to them when they are actually
making a talk so you you you should not you know restrict yourself to say okay
they won't come because we are too small or too far
away or whatever. Just ask. You may be
surprised. Yeah, I also had a message about
that. Since we announced
the lineup, we've had a lot of
people telling us, oh, this fantastic
speaker is very sad because you never
called them. And this other speaker
is very sad because you never called them.
And like a lot of people
that I really admire and are very sad I you never called them. And like a lot of people that I really admire
and are very sad I didn't call
them.
So if we didn't call
you, you might be somebody
we really look up to
who's a fantastic speaker.
Please don't take it personally.
We have...
It's a nice problem to have.
The cool thing is that we are our CPPP 2020
lineup almost done.
Yeah, just for the record,
we didn't call them in 2019.
Yeah.
Just for the record, I don't think you called me.
Yes.
I can tell you now
what I was talking about.
Yeah, that's a very good example.
I mean, yeah, the shortlist was actually hard writing to do actually, because we had a lot of names that people said,
oh yeah, we should have, you know, we should have her, we should have him, or whatever, and...
Except we have this much slots, we had to make a choice. And what actually made the choice was actually this track,
these track structures about these three teams.
And we were like, okay, we have to focus on the team and see what's coming up.
And from there, we had to select people.
And actually what we did that we actually ordered a
bunch of speakers on some track by actually going okay we will ask this guy
just in case maybe he will come but if not we have a lot of great people
afterwards and most of the great people say oh oh yeah, I will come. So we never went that far down on the waiting list.
So it was
actually, I mean, it was a very
nice experience
in terms of community to have all these
people, you know,
willing to share their expertise
even in, you know, I mean,
we are still a very small and
proven conference,
including the fact that we didn't run already.
So it's very, you know, a vote of confidence.
And we are very, very grateful to all our speakers for that.
Yeah, there's a good chance, I think, ultimately,
I'll be speaking at probably four conferences this year,
although I still have a couple of decisions to make.
And I'll say from the speaker perspective,
three of those are because they're locations
that I want to go to.
We all did that once, you know.
It's a classical thing.
And the location is very important.
We actually played on that, I think.
Oh, I'm sure you did.
And so that's definitely something for anyone else
who's considering a conference
is the same kind of thing. I mean,
there's lots of places that people
haven't been yet and lots of people who want to go to
new places that they haven't been yet, basically.
Yeah, and we're lucky because Paris is
very well known, but I'm
sure there are some very nice places
that are not that well
known. If you're creating your own
conference, send pictures and think that
it makes a difference for the speaker.
That's a good idea.
That's a very good point.
Like, sell the location,
sell the venue, basically.
Yeah.
Okay.
Well, aside from the conference,
is there anything else you guys wanted to plug
or talk about briefly before we let you go?
I'm sorry to people following QuickBench.
I haven't updated
for a few months.
I have
very good ideas in my head
I'm going to do someday.
Just after the conference, I'm teaching
vacations. I think I'm going to work on
the website. So perhaps you'll see.
Well, for listeners who aren't familiar with QuickBench,
do you want to describe it real quick?
Yes. So it's a web tool. You go on this website you type your code you press run and it benchmarks it and it's a good way to compare quickly two functions
for example which one is faster than the other um yeah it looks a bit like dot bolt.org uh because
i looked at it before starting QuickBench.
Right.
Yeah, the idea is to have something very simple.
You come, you type your code, you press run it,
you're done, you have your result.
Very cool.
I have some very, very nice patrons
who give me money to pay for AWS.
I should do a few updates too,
so that they don't think. I'm forgetting them.
Okay, Joel, anything else you wanted
to plug?
Well, not that much
actually. Yeah, just
come to see PPPP.
Oh, come on.
I think you have one
too much.
Yeah, okay.
Yeah, and actually, well well it's not a plug but yeah um i will encourage
people to go to or build a meetup if they if they have none uh around uh when we started it was
really you know like it wasn't a whim you know someone say oh you just you know let's put something
on meetup and see who is coming.
And it has been a tremendous experience,
both in terms of, you know,
meeting people and
having actually great talks
from, you know, basically
nowhere. So,
if you have a meetup right next to you,
just jump up in and see how it
goes. And if you don't,
just, I mean, just make one and see who's
coming and you will be surprised to
find that there is a lot of people actually wanting
to go to such
venue and
sharing stuff with other people.
Paris C++ Meetup had quite
a few very good speakers now
start there.
Like Mathieu Roper started there.
Jonathan Boccarat started there. Like Mathieu Roper started there. Jonathan Boccarat started there.
It's an interesting core group of people
in Paris.
Very much.
It's been great having you both on the show
today. I definitely encourage listeners
to go check out cppp.fr.
Go check out the conference.
Thank you.
Thanks for coming on. Thank you. Thanks.
Thanks. Thanks for coming on.
Thank you very much.
Thanks so much for listening in as we chat about C++.
We'd love to hear what you think of the podcast.
Please let us know if we're discussing the stuff you're interested in,
or if you have a suggestion for a topic, we'd love to hear about that too.
You can email all your thoughts to feedback at cppcast.com.
We'd also appreciate if you can like CppCast on Facebook and follow CppCast on Twitter. You can also follow me at Rob W. Irving and Jason at
Lefticus on Twitter. We'd also like to thank all our patrons who help support the show through
Patreon. If you'd like to support us on Patreon, you can do so at patreon.com slash cppcast.
And of course, you can find all that info and the show notes on the podcast website at cppcast.com.
Theme music for this episode was provided by podcastthemes.com.