CppCast - Meeting C++ and /r/cpp_review
Episode Date: August 24, 2017Rob and Jason are joined by Jens Weller to talk about the upcoming Meeting C++ conference, the /r/cpp_review community and more. Jens Weller is the organizer and founder of Meeting C++. Doing ...C++ since 1998, he is an active member of the C++ Community. From being a moderator at c-plusplus.de and organizer of his own C++ User Group since 2011 in Düsseldorf, his roots are in the C++ Community. Today his main work is running the Meeting C++ Platform (conference, website, social media and recruiting). His main role has become being a C++ evangelist, as this he speaks and travels to other conferences and user groups around the world. News Aqua Math - Android game developed in C++ with Cocos2d-x Cocos2d-x LLVM on Windows now supports PDB Debug Info Ranges, Coroutines, and React: Early Musings on the Future of Async in c++ An Intro to Compilers Jens Weller @meetingcpp Jens Weller's GitHub Links Meeting C++ Meeting C++ 2017 Conference /r/cpp_review Meeting Embedded Ultimate List of Developer Podcasts Dlib - a modern C++ toolkit containing machine learning algorithms The Cherno Project Sponsors Backtrace Hosts @robwirving @lefticus
Transcript
Discussion (0)
This episode of CppCast is sponsored by Backtrace, the turnkey debugging platform that helps you spend less time debugging and more time building.
Get to the root cause quickly with detailed information at your fingertips.
Start your free trial at backtrace.io slash cppcast.
CppCast is also sponsored by CppCon, the annual week-long face-to-face gathering for the entire C++ community.
Get your ticket today. Episode 115 of CppCast with guest Jens Weller, recorded August 23rd, 2017.
In this episode, we talk about debugging with LLVM on Windows.
Then we talk to Jens Veller from Meeting C++.
Jens talks to us about the upcoming Meeting C++ conference,
the CPP reviewast, the only podcast for C++ developers by C++ developers.
I'm your host, Rob Irving, joined by my co-host, Jason Turner.
Jason, how are you doing today?
I'm doing pretty good, Rob. How are you doing?
I'm doing pretty good. Did you go out for the solar eclipse a couple days ago?
I stood on my porch, and we got like 95% or something right here in Denver.
Okay, so you weren't in the full path of totality? I was not,
but it was an interesting experience regardless because everything just kind of got
dimmer. Yeah, yeah. In North Carolina, we were
probably about the same. I'm not sure if it was 95%, but something like that.
If I had gone down to South Carolina, it would have been in the totality.
So I kind of wish i had
made that trip because uh it was pretty cool but uh we definitely didn't get you know the full
darkness that i guess i was somewhat expecting yeah how long would you have to travel for that
how far away would that this was the 100 zone from you for me it would have been about a three
hour drive for me it also would have been three and a half
what would have been about three and a half hours to get there and then apparently about 12 hours to
get back because of all the traffic coming back yeah denver yeah three hours not accounting for
the traffic i'm sure there would have been a lot uh of people trying to get into south carolina
during the eclipse yeah i heard that you could see it on Google Maps and the traffic. You could see the pass of totality.
I believe it.
And basically coming out of Denver, there's exactly two highways that you could take to get to the totality.
And so then it would have been those exact same two highways coming back.
Right.
Okay.
Well, at the top of Arizona, let's read a piece of feedback.
This week, we got an interesting email from Oleg.
He wrote in,
One year ago, I encouraged my then 16-year-old son, Moshe,
hopefully I'm pronouncing that right, to learn C++.
He developed a mental math Android and iPhone game using modern C++
and Coco's 2DX cross-platform gaming engine.
And he says his 18th birthday is coming up in September,
so he's trying to help his son out with promoting the game a little bit,
and that's why he reached out to us.
So I just think this is really awesome.
Like I said, it's a math game,
and I was only able to look at the screenshots on the Android Play Store
because I don't have an Android phone.
But you can choose between different modes, and one of the modes is actually for programmers so it's not just a kid's game it
could be a game for you know engineers like us jason and it's called aquamath aquamath and uh
yeah we have a link for the android version of it and he said it's still being approved for itunes
but hopefully it'll be
available there soon and i just thought this was really cool um you know that he was able to get
his son interested in c++ and and create this game um i think we've talked maybe a little bit
about coco's 2dx i don't think we've ever gone into any detail on it though i honestly don't
recall that would be an interesting guest just yeah the youngest doing
game dev experiences learning c++ i think that's an angle which we haven't yet covered seen
at your cost well except when we accidentally uh interviewed a high school student
we've definitely done a little bit of game dev talks. Obviously, we've had people from Blizzard like Ben on.
We haven't done too much in the way of amateur game development.
I don't think we've talked about Cocos at all.
Yeah, that could be interesting. I agree.
Yeah, but definitely encourage everyone to check out Aquamath.
If you have small kids who might be interested in a math game,
it definitely looks good for them, and it might be good for yourself because it does have that programmer game mode right so we'd love to
hear your thoughts about the show as well you can always reach out to us on facebook twitter or email
us at feedback at cpcast.com and don't forget to leave us a review on itunes so joining us today
you just heard him is jens valor jens is the organizer and founder of Meeting C++.
Doing C++ since 1998, he is an active member of the C++ community,
from being a moderator at C++.de and organizer of his own C++ user group since 2011 in Dusseldorf.
His roots are in the C++ community.
Today, his main work is running the Meeting C++ platform, including the conference, website, social media, and recruiting.
And his main role has become being a C++ evangelist.
As this, he speaks and travels to other conferences and user groups around the world.
Jens, welcome back to the show.
Hey, nice to be on again.
Yeah, thanks.
Thanks for having me.
Sure, thanks for joining us.
You're definitely not a stranger to the program at this point.
No, it's kind of tradition to listen to a CPP cast on a Friday morning.
Yeah, and I think we wind up talking about something coming from your platform
almost every other week, probably.
Yeah, it was kind of funny that you covered a lot of things
which I just got started in the last episodes,
and I see that mostly the things you feature as news items have
been in my blog role previously.
I was just looking at your Twitter influence also, and you have, what, it's like 12,000
followers or something like that right now, is that right?
Yes. This week, the Twitter account hit 12,500 followers.
And it's on social media.
Facebook has gone crazy.
It's over 25,000 on Facebook, over 1,000 on LinkedIn, et cetera.
So I do have quite a reach on social media.
Wow.
That's impressive.
It's very impressive. Use your powers for good, Jens. I do have quite a reach on social media. Wow, that's impressive. That's very impressive.
Use your powers for good, Jens.
I do.
Well, obviously we're going to talk some more about the latest things you've been doing with meeting C++ in a little bit,
but first we've got a couple news articles to discuss, so feel free to comment on any of these, Jens, okay?
Okay, so the first one.
LLVM on Windows now supports PDB debug info.
And this is a post on the LLVM blog written by Zach Turner.
And the quick summary is in the title that if you're using Windows and Clang,
you can now build with the PDB debug info, which is what Visual Studio uses for its debugger.
But the whole post is pretty interesting,
kind of going into the history of CodeView,
which I'd never even heard of before,
but apparently that's the debug format that PDB is built around,
which is kind of the equivalent to Dwarf on Linux and Unix systems.
And apparently they tried to avoid doing anything with CodeView and PDB for a while and eventually gave up and had to start from scratch
to be able to emit CodeView and PDB from the LDB debugger.
Yes.
Yeah.
And they were able to get some help from microsoft in doing that
which is nice looks like it would have been a considerable amount of work he said what
like a year and a half of experimentation i believe yeah a year and a half of studying
the uh codes that they got from microsoft and hacking away they finally got it working that's
a long project on one little thing.
Clang on Windows is an interesting story, and this is such an important milestone for
achieving this. And a couple of weeks ago, you could also hear from other sources that
Chrome is switching, obviously, to Clang this year on Windows.
I guess they also want to use Visual Studio when they need to debug Chrome in the future.
That is one thing that everyone seems to agree
on, is that Visual Studio's debugger
is very good, so it's handy
to have it available.
Although, one of the things that
I'm still curious about
was they said at some point that they had considered
trying to teach Windows debugger or Microsoft's debugger
how to understand dwarf files.
And I think that would still be an interesting project
if that were possible.
Well, didn't he say he spent a good year on that
before giving up?
Right?
Yeah.
Yeah, something like that.
He should go back to that now that he's got
PDB working.
There's also an interesting, I think,
side note here that they've released a tool
that will take your PDB and dump it to YAML.
So you can actually look at the debug information
that you have generated.
LLVM PDB Oodle.
Yeah.
Yeah, and there's also a call to action at the end of this post
that if you're interested in using Clang on Windows,
they're looking for you to come, you know,
throw your own code through this
and make sure it's generating valid PDB info.
Currently it's very much in alpha stage.
So they want to get some more
testers on it.
So on that note, have either of you, I have
not, have you tested the ability
to use Clang on Visual Studio
so far? I mean, I know the debugger just now
started working, but it's been an
option for a while.
I don't think I've done anything with Clang on Windows yet, no.
No.
I'm not even using Visual Studio.
I'm using Qt Creator for my day work, so
that's not an option currently.
Right.
Well, someone should try it out and
tell us how well it works.
Yeah, definitely.
Okay.
This next post is from Eric Niebler's
blog, and it's
Ranges, Coroutines, and React Early Musings on the Future of Async in C++.
This is a pretty interesting post.
We've talked about how at the Toronto C++ meeting, the Coroutines TS was forwarded to ISO for publication.
And that basically means it's almost guaranteed now that coroutines should make it into C++ 20.
And this post was going into, now that we know we're going to get coroutines, what does ranges look like if you factor in coroutines?
So asynchronous ranges, basically, is what this post covers.
And it was really interesting.
I'd love to get your guys' take on it.
I read through this, but I think it's still a bit too much over my head.
This is far from the future.
It's an interesting point.
I love ranges, and to see how you can use something like coroutines with ranges
is a great post and shows where we're going.
And hopefully we're soon there.
Yeah.
Yeah, I have to unfortunately agree
with Jens because I haven't spent really
any time at all looking at ranges or
coroutines except for a couple conference
talks and trying to put them both together.
I'm like, all right, I clearly need to
spend more time with this.
One of the things i
thought was kind of interesting is um he's saying that coroutines kind of was prepared for ranges or
anticipating it to some extent and that uh there's already things like being able to
uh create a coroutine around um you know iterator creation and for loops. There's now a
for co-await in the
coroutines proposal that's going to help
out with ranges.
Yeah, that's
interesting that the
whole awaitable concept
is now also able
to be used on something
like a core structure, like a for loop.
That's one of the major things I learned about coroutines from that blog post,
that this is a possible knowledge.
I think it's awesome.
I'll definitely recommend everyone reading the whole blog
and doing some more experimentation with ranges and coroutines.
It's definitely something that we need to do ourselves.
And Jason, you want to introduce this last blog post?
Yeah, I saw this blog going around, I guess, on Twitter
and it's getting a lot of great feedback.
So it's an introduction to compilers,
but it takes a standpoint of looking at it
from the LLVM Clang toolchain
and just gives a breakdown of how your code is parsed
at a really high level, how your code is parsed at a really high level how the code
is parsed how it's translated to intermediate representation and then optimized and then
machine code is output with like really concrete examples of simple code simple programs what the
ir looks like what the optimized ir looks like what the x86 assembly output looks like i thought
it was awesome article article, personally.
I really like the visual graph
of the abstract syntax tree.
I don't think I've seen it broken
out like that before.
That was a pretty cool look at.
And it's
interesting to note that in the
later
recent versions of
Compiler Explorer, you can actually ask for the AST output inside of Compiler Explorer, too, and kind of also see this for your code.
Granted, it explodes quickly to really huge text output if you're doing anything crazy in your C++.
But you, for an example like this, could totally see this also.
Yeah, I really loved this blog post.
It was a great blog post, going really into the details,
but also it's really understandable because it's so easy as examples
and not really going into obscure things.
So I think it's great for people who do C++ for a long time,
but it's still accessible to a beginner to understand all this magic.
And I like to think the main reason most of us program in C++, well, except for the people
that just like templates and metaprogramming and that kind of thing, is for performance.
And you want code that you can basically reason about what it's doing on the hardware.
And I think a part of that is having some idea how the compiler works.
So I think it's kind of important
for all C++ programmers to have some understanding
of what's going on.
Yeah.
Sure.
Well, Jens, as we talked about recently,
you just started the CPP review community on Reddit.
We discussed this a few times in recent episodes
do you want to tell us a little bit more about it um yeah well the basic idea is that there is now
a community which has its current home at reddit rcpp underscore review um where every month about two libraries are
being reviewed and
on Reddit currently
you can see there are two review
threads for that
and
there's
up above is basically the
rules and kind of
documentation on how I would like to run
this community.
And there's a thread for submissions, which currently already contains five other libraries,
which are for future reviews. So September, we already are sure that we have two libraries
which fit in the things. And currently, there's a review of a library called Dynamics
and a library called Bulk, which you can both have an overview and post comments, post defects,
post things you see in the documentation or on the code, and have discussions in those threads.
So it looks like Dynamics was accepted overall,
but is there a closure to this process,
or will it always remain open for people to leave reviews and comments on it?
No, the review process lasts a month.
Currently Dynamics has two reviews which are going for accepted.
I still haven't concluded my review,
but I tend towards accepting the library as the review itself seems to bring up
not large issues,
and the library itself has been used in production,
used in several games,
and it's coming from a kind from a background of game
dev and so um if no major issues turn up then i probably will accept this library okay i noticed
some of the reviews on uh dynamics uh do have a couple suggestions for improvement um is the
expectation that during that one-month process,
library developers will go about addressing that feedback
and update the library?
I wouldn't call this an expectation.
It's, of course, nice if they do it.
One thing I learned is definitely that the library
needs to be able to provide a version through GitHub, for example,
that is the official version which is reviewed,
because both libraries actually released now in the middle of August a new version,
which I think the new Dynamics version might also already reflect on things that came up in the review.
So I'm not totally against
publishing new versions during review.
Of course, I can't freeze the library
maintainer, and I don't intend to.
But it has to be clear
on what version is this review
and about what code do we talk
and what code
do you download, what code do you run,
static analyzers, etc.
And just to see and to get a general feeling
for the code base which we're reviewing.
And if you look through the code
and if you make some findings you'd like to discuss,
you simply can open a thread in the Reddit
and just ask your questions
and usually the author or other members of the subreddit will respond.
So it is tied to a specific version of the library.
I see on the Dynamics it's version 1.1.
Yes.
So when version 2.0 comes out, for example,
would you expect a re-review or would that be an option?
Well, of course, we cannot review every version.
But we have to make sure that it's clear which version has been reviewed.
And I think that depends on the changes and how much has been added.
And I want to give people a general guidance.
But it's also the case in Boost that the new versions,
there is Qt has this review that every change that goes into Qt is reviewed.
Boost, as far as I know, doesn't have that really.
There is not a public Boost review process.
There is just tests which have to
pass and which we should provide. But also, I don't know if boost really works on test
coverage once you are accepted and add new functionalities, which has happened in the
past. But I want to document which version we have been reviewing and which other versions
came out. And then you can see are those changes
applied, what are the advancements
and make a decision if you want to
use the newer
version or the older version
I don't
plan on Boost providing
a monolithic
archive where you can
download all the libraries which have been reviewed
you have to go to the page.
It's just giving you guidance which libraries have been reviewed
and have a seal of approval from the community.
That's the goal.
Since you brought up Boost, do you want to talk a little bit more about
what the motivations were for starting CPP Review
instead of just encouraging library developers to put their library through Boost?
Yeah, I can do that.
I think that there's a lot of people which don't want to be in Boost, which doesn't mean
that Boost is something bad, but it's just boost has
a really high goal to be
accepted. And
for a lot of library
developers, also
the review was 600 emails
on the mailing list.
This is for a lot of people too much
because their lives are also too busy.
And there's
other libraries which are not able to be included into Boost.
Like, for example, there's a lot of libraries using Qt.
And I am open to libraries having third-party things,
like dependencies, like Qt, other things.
And if you don't have that, that's even better.
And actually, I had already one boost author
telling me previous before this came
that he did not want to submit the 2.0 version of his library
into the Boost review process
because it would be too much hassle and too much work for him.
But the idea doesn't totally stem from Boost.
I saw last year a tweet by Eric Nieepler who thought about having something like that
would be usable and I thought, well, I had a similar idea for that kind of thing to have
a more open community, which is also giving people a chance to discuss code without having
I think it's easier to discuss somebody else's code
if you think something is an error,
or why are you doing this,
to learn through that from another code base.
And I often get asked also by beginners,
it's often like a common question,
where should I look at?
And if you participate in this community,
that would be a chance to learn from another code base.
And if you don't understand something,
or if you aren't sure that's correct,
you can ask a question in the subreddit
and get an answer from the author or one of the other members.
And the other point, what got me in this direction,
is I did a talk about comparing Qt and Boost,
which is on YouTube at C++ now, and later also did the same talk at the Italian C++ conference in Milano.
And through that comparison of Boost and Qt, what they do good, what they don't do good. I also kind of got
to a third comparison, kind of what do we need today and how would we handle things today?
Because both Qt, Qt is already over 20 years old, actually started around 91,
and Boost is kind of a child of the first
standard, so 98 started
by committee members,
and
I kind of felt that
we maybe should have
such a review community
as Eric envisioned that,
and so
it's
RCPB review doesn't make any assumptions about your library, which license, which structure.
So Boost has a lot of rules which you have to adhere to, like the license, the structure of the library, documentation, etc.
Of course, you have to have documentation and kind of a background in the library that
people can see that this is something they can use in production.
That's my whole goal, to give people an overview of what is out there and libraries which isn't
in Boost or somewhere else listed, and they can use safely in their environments.
So how would you say it's gone so far now?
Good. So how would you say it's gone so far now?
Good.
I was afraid we're talking here and it's like no one and rolling bushes through the desert.
No, but yeah, the subreddit has 400 members
and the two libraries which we started with
aren't the easiest ones to review and to understand
because they're both kind of strangers coming
from subcultures
of our community
like the one at MPI
and multithreading like
scientific computing mostly
hinted and the other library
is for
game dev
which also isn't what most of us do
and so I think we'll see next reviews
and more members and more people actually participating.
We will have more and better reviews in the future.
So this has been a very good start, in my opinion.
Good. Very good.
If you don't mind, if we take just a quick diversion,
you just mentioned that you just gave a talk at the Italian C++ conference,
which I believe is the third year they've done it.
It's either the second or third, I think.
Third, I think, is correct.
And I don't think we've talked about it on the podcast.
I was just curious if you could give a minute talking about your experience there.
Oh, I liked it. It was a really great
conference. It's one day in a university.
Okay.
And I didn't expect
Milan to be like
35 degrees
Celsius in the beginning
of June or in the middle of June.
So it was extremely hot.
Yeah.
And the air conditioning
of the university was
still holding up, so it was a cool conference.
That's good.
And an interesting track, which I
also spoke in, and
it was nice to see what Marco brings up there.
And
it was
really fun to be there,
and lots of students and a great conference.
And that conference is partially in English and partially in Italian?
Is that right?
Yes, they have a track in English and an Italian track.
Oh, I see, okay.
Cool.
For listeners who don't know their metric conversions,
35 Celsius is about 95 Fahrenheit.
I had to look it up real quick.
I wanted to interrupt this discussion for just a moment to bring you a word from our sponsors.
Backtrace is a debugging platform that improves software quality,
reliability, and support by bringing deep introspection
and automation throughout the software error lifecycle.
Spend less time debugging and reduce your mean time to resolution
by using the first and only platform to combine symbolic debugging,
error aggregation, and state analysis.
At the time of error, Bactres jumps into action,
capturing detailed dumps of application and environmental state.
Bactres then performs automated analysis on process memory and executable code
to classify errors and highlight important signals such as heap corruption, malware, and much more.
This data is aggregated and archived in a centralized object store, providing your team a single system to investigate errors across your environments.
Join industry leaders like Fastly, Message Systems, and AppNexus that use Backtrace to modernize their debugging infrastructure.
It's free to try, minutes to set up, fully featured with no commitment necessary.
Check them out at backtrace.io
slash cppcast.
So the other thing you started recently
besides CPP review was
meeting embedded. Do you want to tell us
about that and how it's going?
Yes.
I'm just, yeah, so I was planning this for quite some time, but then I didn't have the time to actually do the work for it.
And then I decided to use it this year as a testbed for my CMS and to just get started with the work for it,
motivated also by the EMbo C++ conference,
which, you know, embedded in C++,
which is exactly what I don't intend to do
with Meeting Embedded.
I still see the embedded space in C++
at Meeting C++.
And of course, in Meeting Embedded,
I also cover C++ in Embedded
and people are welcome to, I think this is going to be also next year,
a conference about this one day, I plan, but not sure when and if and how.
But currently, this is a platform which I have started to kind of recreate
the things I do with meeting C++ for the embedded and IoT sector,
and which makes the work I do in coding and everything I write for Meeting C++
now twice as effective as I can just reuse it for Meeting Embedded.
And this is really good.
Now, to be clear, is it specifically embedded C++ content,
or is it just any embedded programming content?
Any embedded content
programming, IoT
hardware
embedded.
I have currently
no idea where this evolves into
and where this goes.
It's definitely
not limited to C++.
And I just
want to be open there and see
where this
meeting embedded
then what it grows into.
And I plan to
have like a one-day event probably by next
year, maybe in front of the conference,
maybe after the conference, we'll see.
And
then on the
long run, I plan to make this like a second conference for embedded, like meeting C++,
but for the embedded sector. So maybe for a little bit of context, Your blog aggregator for Meeting C++ has...
How many feeds do you have coming into it so far?
And first, Meeting C++.
I'm just curious for a comparison. Around 300.
And how is
Meeting Embedded doing then?
Let me look that up.
Actually, so
C++ C++ actually is 352.
Okay.
And embedded isn't as strong yet.
I still have to add
a few, but
if I look this up here in my UI,
it's 37.
Which covers like, yeah.
Not a bad start, but plenty of room to grow.
Yeah, definitely not a bad start, I can see.
I was just looking at the blog role for last week on here.
Yeah, meeting embedded currently features a blog role and a Twitter account,
and still have to do some work on getting meeting embedded also into the user group space, etc.
Those are upcoming features, which once I have time.
Currently, I'm very active with working for Meeting C++
for this year's conference, but also for the new website,
which is coming out soon.
The Meeting C++ user group finder is a really great service you provide.
Do you have a list of any meeting embedded user groups yet?
No, I still have to start this.
This is one of the things which is coming in the future, coming soon.
So you mentioned something about a conference you have coming up?
Oh, yes.
We have this year the sixth edition of the Meeting C++ conference
running under the title of Meeting C++ 2017.
But for the very first time this year, we have three days.
So it's not anymore two days.
It's from Thursday to Saturday,
which also makes me very
happy because now we provide a lot
more content and room for the community
to share
this time at Meeting C++.
And one
of our speakers is Jason.
Oh, yes.
Is that right? I should probably start
on those talks or something.
Yeah.
How many speakers do you have?
Three full tracks, you said?
Three full days of speaking, that is?
I think 32 or something.
32, 34.
Is it one?
That's the keynote speakers.
Is it just one track?
How many tracks per day?
Yeah, that's what I was trying to ask.
It's four tracks four tracks on three days and um if i do the math on my head it's like 30 32 33 slots which i have to fill okay around that um there's there's a force track which is reserved for sponsors and
guests, and
also the place where we
host the lightning talks,
which are part of the normal program.
So I have to see how many
lightning talks we actually want to accept this
year and how much space we want there, and maybe
also have some other space
for experiments there this year.
Like, I don't know, do a coding dojo or something.
You still have a TBA listed as one of your keynote slots.
Do you have plans to announce that soon?
Yes.
Actually, there was a spoiler today
because I posted a little screenshot of the new website.
Yes.
And there you could see that this isn't TBA anymore, but it's currently still in the planning process for the announcement.
So as it looks of today, Wouter van Ooyen is going to speak at the closing keynote. And if you know Wouter,
Wouter has been and is a professor in the Netherlands
and teaching C++ mostly for the embedded space.
So this will be a keynote also going into the embedded space.
Well, that's cool.
As far as I know currently.
You said there's four tracks.
Is there like one track dedicated to embedded talks?
No.
No? Okay.
No.
We had in the last years theme tracks,
and we had one year where I think it was 2015,
where we had a theme track for Embedded.
But this year's theme track kind of was new speakers,
so people who start speaking or haven't spoken very much until now.
And the reason behind that was just I wanted to hear a few new voices for the conference and also just for empowering people and motivating people to start speaking
and not always the same voices.
I mean, a lot of people from the committee this year
are in parallel at the committee meeting,
which we might also have a surprise for you if you visit the conference.
We might be able to do a live stream to the committee
to just chat with some of them.
I have to talk to some people at CppCon about this,
and then we'll see if that happens and how this happens.
And there's a few other things that are planned.
Actually, we have a fifth track, which I haven't mentioned yet,
which isn't talks.
Last year, I introduced a track
which basically is dedicated to meetings.
So we have more meeting in Meeting C++
since last year.
And this is in one of the lounges.
We have two lounges.
And one of the lounges is basically reserved
for this track. So people cannges and one of the lounges is basically reserved uh for this track um so
people can come up and starts in the break and we have different things like starting c++ as an
idea audio c++ could be this year cute boost had a gathering last year and then people you know
kind of get to know each other through the break. And my intention is that you stay and keep exchanging if you want to,
or go to a talk if you need to.
As all of the talks are recorded, but this track isn't.
So that's kind of the challenge of you on that track.
Yeah, I haven't been to terribly many different conferences,
but it seems your lounge and meeting space concept is relatively unique.
I was curious what originally motivated your desire to have this lounge set up.
I had a lounge 2015 at the conference, and that kind of got me started thinking,
what could we host in there?
And I thought, well, meetings of people
which are anyways at the conference
so that they can connect within their space of C++,
be it game dev, be it something else,
be it boost community, et cetera.
That was my goal,
and some of these exist in a different
or in similar form at other conferences.
I know that ACCU also has some content
which is at some non-space,
non-official space.
But I haven't been at ACCU,
so I can't really see if that's their idea
or who will had that idea.
I knew that I had heard it from some other conference organizers previously
that similar things exist.
So tickets are still available for your conference, right?
Yes.
And when is the date again?
This year's conference is from the 9th to 11th November. Okay.
In Berlin.
Okay.
And each year you've been growing, uh, is that correct?
Uh, yeah.
Since, since the start we've been growing this year is the growth in time and not in space.
So, uh, we'll enter like at 600 like last year, maybe a little bit more.
That's a sizable conference for sure.
Oh yeah.
Feels quite big.
Especially if you see the growth curve over the last years.
I can say I'm personally looking forward to meeting
the people that I communicate with in Europe
who have not yet made it to any of the American conferences.
Oh yeah.
There's a lot of Europeans at my conference which haven't
been and maybe not going there
so
I'm very much
looking forward to having you at the conference
that's a great thing
I'm looking forward to
Do you get a mix of English and German
speakers giving the talks?
In the first years we had a mix of English and German speakers giving the talks? In the first years, we had a German track, but it wasn't very well visited. And it was
also kind of that even the German speakers want to give talks in English. So I kind of
made it an English speaking conference only because I understand the conference as being
an international conference, a European conference.
And so I decided that we make one official conference language,
which then, of course, has to be English.
Okay.
You were talking earlier about those talks you've given
about the Qt and Boost communities.
We don't really talk much about Qt on the show.
I mean, we talked about Copper Spice recently,
and we had an interview with the Qt Creator developer
a while back.
But what is the Qt community like in C++?
That's a good question.
I haven't been to Academy,
where the Qt developers meet, and that's probably also a very good event to have
in mind if you want to meet the Qt community. I've been to the Qt Dev Days
which is a traditional meeting of the Qt community
which is very much and heavily influenced by the
way that Qt is organized and Qt in this space
is far more commercial.
And there is a commercial ecosystem around Qt, which is a lot of companies.
And those people who get good at Qt often and are part of the Qt community often end
up in this ecosystem as being there working and moving from company to company or staying
at one of those companies.
And some of those companies are consultant companies, which work for the industry in Qt,
or the Qt company itself, which is now taking care of Qt, which kind of is the stakeholder and the
gardener of this ecosystem, if you want to. And that makes them very different from what Boost does, for example,
as Boost is a non-commercial platform which is based on volunteers,
and there is no commercial ecosystem around Boost
where companies are actively promoting and using Boost.
And this makes Qt so much better in the marketing space
and the space to push Qt into acceptance in the industry.
And it makes it so much stronger there.
And also gives Qt funding because there's a lot of features in Qt
which come through this ecosystem because a certain company
has written a certain system and is now open sourcing it and giving it to the Qt community to also maintain in the future, but also to be a part of Qt.
The new Qt 3D system and QML is a good example for that, which was done by KDEB.
The new Qt 3D was completely done by KDAB, written new and
how they needed it. And then it's then being submitted to Qt.
Okay. And otherwise, the Qt community is very much like the C++ community.
They're very much C++ developers, but very Qt focused as Qt is a big framework
and Qt wants you to use Qt and to be a Qt developer. But to me, if you use C++, you're
a C++ developer, not a Qt developer. And so I'm really looking forward to meeting part
of the Qt community this year at CppCon because Lars Knoll is giving a
keynote there and also
there's no Qt event in the US
this year. So if you're part of
the US Qt community
CppCon is a really
interesting event where lots of C++
programmers meet and you can see
Lars Knoll giving a keynote so maybe give a
thought about attending
the CppCon event instead of
Qt events this year.
Yeah, there was just
an announcement from
John Cald that we're reaching some of the
deadlines for CppCon.
If you needed to invoice your
ticket, then
yeah, you should go ahead and buy your
ticket this week, I think.
Yeah, that's an interesting thing.
It's nice to know.
Since you mentioned CBPCon, are you going to be speaking at CBPCon this year?
No, they didn't want me to.
I got the program committee...
Yeah, no.
I made some, so I gave, I
resubmitted the talk from
about the
communities, and this was kind of seen
that boost is C++ now
and Q is somewhere else, so what do you want at
CppCon? We're just a different
community here, or it was
strange to me, but okay.
And the other talk,
I wanted to talk about
what I'm currently working on
when I travel mostly
on a program using DLib
and Qt to analyze
images on faces and
other properties.
And I made the error
to
I misspelled
something as kind of the description said, because I wanted error to... I misspelled something.
The description said, because I
wanted people to have the right impression
about it, that I will not
dive into the algorithms
for image detection.
Because that's not my work.
I cannot show you such an algorithm,
but I can show you how to use DLib and how
I use it.
How you can use this for face recognition, for other things.
And this was rejected because if you don't show the algorithms
and if you don't deep dive into a topic,
then either you're not for CppCon,
which makes me kind of worried about how we address people
coming to this conference and you know
that that talks which you know would actually help you use something new or
show you something which is new but don't dive into the details are not
accepted because it's just an hour I can either die from the details or I can
show you how to use it.
Yeah, and depending on your perspective,
an hour talk is either extremely long because you're not used to giving them
or incredibly short because you can't dive
into the details that you might like to.
Yes.
So you mentioned DLib,
and you and I had actually chatted about it.
I don't know, it seems like it was
several months ago at this point.
Do you want to talk about that library at all
now? Yeah, sure. D-Lab is a wonderful
library for using all kinds of things in machine learning
and image recognition. It has a good face
recognition.
I started at C++ Now to write a program which basically counts faces in images,
which is something useful to go through all the conference pictures I have. And then when I left later during my travel, I found the time to use the face
correlation algorithm from DLib. And then things get interesting. Now I have all the
faces from all the pictures from a conference, and it's a lot of pictures, but D-Lib can do this incredible magic
of grouping now all pictures where faces are similar.
Okay.
And just seeing this was amazing
and playing around with it
and also later putting this on a private image folder
and seeing the results.
Like, you know,
that's how people are grouped
and that children
sometimes are grouped
with their parents
and other things.
It's really interesting.
And DLib itself,
it's a boost license
that's in production
and used in scientific programming.
It has Python bindings used in science with Python for years.
And it's a really good library.
And if you work in that space, you should have a look at that.
And the author, King Davis, I think is his name,
would also be a really good candidate for CppCast.
Okay.
Yeah, I haven't heard of DLib before.
I've heard of OpenCV, which I think is open computer vision.
Do they kind of have similar capabilities?
Or are you not too familiar with OpenCV yourself?
They are both often combined as far as I know.
Okay.
D-Lib is mostly machine learning.
Okay.
Like image recognition and also neural nets, Bayesian nets, all kinds of things.
And other codes.
It also has a UI library, by the way, which is, I don't know, it's a fairly crude UI.
So it's not on par with Qt or other UI libraries, but it has one.
So if you just need UI, a little bit of UI, D-Lab is also fit for that. And I think that's
what makes it appealing to a lot of people
which want to use one library
in science and just
show their results and do
something like mis-imagement,
and algorithms.
I can definitely see the appeal, even if it's a crude UI
layer, to have just the ability to
visualize what it has done easily
built into it. sounds very handy.
So from a C++ perspective, it's easy to use modern C++?
Well, modern C++? I guess we could argue about what that means if you want to.
DLib is written in a boost-like style.
I would almost say it's Boost-like quality.
It's very much taking pages from Boost
and very much on the same coding style,
almost the same school of writing things.
It has a very high code,
but it also has its downfalls.
Okay.
One example, I needed to see how
performance-heavy the loading of the face
recognition was. And so there's one
library which gives you the face detector object.
And when I looked at that code, let's just say it's not pretty.
And I figured out I want to run this once.
And after that, I want to have a pool to share this object with every running thread or to
share this object just like once with every thread and have like n objects of that only
loaded instead of loading it and then every thread and have like n objects of that only loaded instead of loading it in every thread
and so
there's some
room for improvement
in DLib but I think that's in every library
and
on the other hand it's a really good
and high quality library
good okay
was there anything else you want to talk about before we
let you go?
We can remind listeners again that Meeting C++ is November 9th to 11th, and tickets are still on sale.
Yeah, there's one more thing.
You know, a lot of work I do is with the community,
and a lot of my work is related to C++ content.
And I thought we'd have a quick chat about that.
I have some notes here, like the block spacing.
I named the number over 350 sources I have for the block role.
Most of that is blocks, but it's also video,
which is definitely one thing I still think we should have a chat about.
And then in blogging, just shout out to a few bloggers like Arne Merz, Rainer Grimm, and Jonathan Miller.
And also there's another Jonathan from Fluent C++, Jonathan Bocara.
If I don't butcher his name, and there's a lot of other people blogging.
Interestingly, I still think that blogging is more like a European thing.
So maybe the U.S. wants to wake up to this too.
But there's also some great bloggers in the US.
For example, the blog from Microsoft.
This is one of the most active blogs,
but private devs blogging.
But also then video.
I am still amazed what Jason's doing every week.
Thank you, Jason.
I know how much hassle is video. This is amazing that you put that up every week and that this weekly hasn't been turned into monthly or something.
I will just say for the record that doing it weekly is not terribly difficult, because I consider it part of my job at this point.
What is difficult is getting enough episodes prepared for my conference
season coming up where I will have CBP con then Pacific plus plus then
meeting C plus plus.
I need to have all those episodes ready to go before I start down that road.
So you pre-record.
I,
I,
I don't usually,
I am right now.
Yes. Yes.
Especially, I think, with video content,
it's something where C++
is underrepresented.
There's lots of programming content
on YouTube, and
one of the YouTubers I want to give
a shout-out to is the channel, which is
currently doing a C++ introductory course. And his background is actually game development,
but this course focuses on C++ as a language. And it's currently around, I think, introduction
into classes is currently where he's running through. So this is an ongoing series, which
you can like follow every week with several
videos. And what's the name of that series?
The
Churnow. The Churnow?
Or the channel? The Churnow. I can give
you a link.
This is part of the block rule every week.
So you probably already have seen it.
And this is also what
motivated me to
go ahead with meeting C++ live, to experiment with a live format.
So far, three episodes, and I'm thinking about having a fourth and fifth episode soon.
But it's also kind of difficult when things match out.
And also then, once I had the whole setup to record videos,
which isn't that difficult, by the way, if you look at how to do that. And once I had that setup,
I thought, well, why do I only use this to live stream or to record things when I have a guest?
There's so much more which I want to say,
especially when I'm on traveling.
I have a lot of free time to kill
and not always want to program.
And so on my other, on my travel laptop
is also this installed and set up.
So that's where I record the series,
which I call just C++,
which is then just putting on a little bit of
C++ content,
very short content where I just
go through some code I recently
wrote or introduced something.
The next episode, next week when I'm
in Berlin, I'm probably going to record
an episode about DLib.
We'll look forward to that one.
And
then I have a little bit of a nitpick about CppCast.
Oh.
Do we want to air it?
No.
I find it sad that CppCast is kind of the only podcast for C++.
So I really want to call out to the community
to change that.
I know you're listening,
so
maybe get motivated to
start a podcast for
C++, maybe for something specialized
like audio C++ or
game dev, or
just C++. There's enough
things to talk about enough people willing
to talk about and i think it would really great to to have more podcasts about c++
yeah i'm gonna put this link in the show notes again um late last year we talked about this uh
little contest that was put on by john sonmez's blog about the best programming podcasts.
And he maintains this list of programming podcasts,
and we're on it.
We're the only ones in the category for C++.
But I'm scrolling through it right now, and.NET development, there's like a dozen podcasts.
JavaScript, a dozen podcasts.
Mobile development, it looks like there's 20 or so
and even like smaller languages or you know necessarily smaller languages but uh things
like python i see three podcasts uh java has five ruby has four so there's no reason why there can't
be a second or third uh c++ podcast and and obviously you could go into a niche
of game development and C++
or something like that.
I did get
an inquiry about advice for
doing podcasting stuff for someone who's
looking to start a Russian language one and I
don't know if it ever
that was months ago, I don't know if it ever went
anywhere.
I would definitely encourage the community
to start up a second
C++ podcast. Maybe we'll even change
our intro.
Well, we might have to.
We just leave it as the first.
Sure.
Well, Jens, it's been great having you on the show again
today.
Yes, thank you. It was great to be here.
Thanks for joining us.
Thank you.
You're welcome.
Looking forward to listening to you every week again.
Thanks for doing CppCast. That's really great.
Thank you for all you do.
Thanks so much for listening in
as we chat about C++.
I'd love to hear what you think of the podcast.
Please let me know if we're discussing the stuff you're interested in.
Or, if you have a suggestion for a topic, I'd love to hear what you think of the podcast. Please let me know if we're discussing the stuff you're interested in. Or if you have a suggestion for a topic, I'd love to hear about that too.
You can email all your thoughts to feedback at cppcast.com.
I'd also appreciate if you like CppCast on Facebook and follow CppCast on Twitter.
You can also follow me at Rob W. Irving and Jason at Leftkiss on Twitter.
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 is provided by podcastthemes.com.