CppCast - CppChat
Episode Date: May 10, 2018Rob and Jason are joined by Phil Nash to discuss the rebooted CppChat show, test driven development, a conference announcement and much more. Phil has spent the last year and a half doing thin...gs that might sound interesting for the next time he’s interviewed on CppCast. He might have overdone it. Aside from that he’s most commonly known as the original author of the test framework, Catch2. He’s been in or around C++ since the early 90s, but started coding in 1981 on a ZX-81 that he borrowed for six months. He’s worked in many domains, including finance and mobile and is now developer advocate for C++ and Swift tools at JetBrains. News Safely extract a method in any C++ code Pacific++ Call for Speakers until June 17 Meeting Embedded Call for Speakers until June 10 MeetingC++ Call for Speakers until June 10 CppCon call for submissions until May 11 Phil Nash @phil_nash Level of Indirection Extra Level of Indirection Another Level of Indirection Links CppChat Modern C++ testing with Catch2 - Phil nash - Meeting C++ 2017 C++ on Sea Sponsors PVS-Studio The Evil within the Comparison Functions Patreon CppCast Patreon Hosts @robwirving @lefticus
Transcript
Discussion (0)
Episode 149 of CppCast with guest Phil Nash, recorded May 4th, 2018.
This episode of CppCast is sponsored by PVS Studio, one of the most powerful static analyzers for C, C++, and C-sharp source code.
PVS Studio will let you detect errors and potential vulnerabilities at the earliest stage.
Try the demo version today at viva64.com.
In this episode, we talk about IDE refactoring and conference news.
Then we talk to JetBrains developer advocate, Phil Nash.
Phil talks to us about the rebooted C++ developers by C++ developers.
I'm your host, Rob Irving, joined by my co-host, Jason Turner.
Jason, how are you doing today?
Doing good, Rob.
Ready for C++ now? Yeah, good. That's exciting.
How many days is that
conference? Five. Five days.
Okay. Happy Star Wars
Day, by the way. Yes, may
the 4th be with you. Yes, indeed.
Of course, our last episode
I guess aired on May the 4th, but we yes indeed uh of course our last episode i guess aired on may the 4th but uh
you know we're doing a little time travel again so that you can focus on the conference next week
yes and i just saw a tweet from lavar burton says may laforge be with you nice it's pretty bad yeah
okay well at the top of every episode'd like to read a piece of feedback.
We got a long one, this one.
It's an email from Theo.
And he said he's a C++ developer living in Germany.
His work is related to robotics, embedded C++, and continuous integration.
And he said he just caught up with our most recent episode.
He actually just discovered podcasts in December of last year and discovered our podcast
on january 24th so he listened to almost 150 episodes in uh like three months it's pretty
impressive um and uh from then he was hooked now he feels satisfied and at the same time uh sad
because he's heard so many great episodes and learned so much but sad because he has to wait a whole week to get a new one now
he wants to thank us
for the great job and he said he really likes
episodes with Jackie K, Dave Moore
since he's a robotics developer
and he really enjoyed the ones with Odin
Holmes and Dan Sachs as well
he also said he's going to be going to
meeting C++ this year
after listening to our show so that's great
I hope you enjoy that conference.
Well, I'm glad you found the podcast.
I'm glad you're going to be kind of taking an active part in the C++ community
and going to the conference.
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 cpgas.com.
And don't forget to leave us a review on iTunes.
Joining us today, again phil nash phil has spent the last year and a half doing things that might sound interesting
for the next time he's interviewed on cpp cast he might have overdone it aside from that he's
most commonly known as the original author of the test framework catch two he's been in or around
c++ since the early 90s but started coding in 1981 on a ZX81
that he borrowed for six months.
He's worked in many domains, including finance and mobile,
and is now a developer advocate for C++
and Swift tools at JetBrains.
Phil, welcome back to the show.
Thank you. Thank you for having me again.
Seems like only last week we were last speaking.
Yeah.
Do you want to talk a little bit more about that to start off
i think we're going to get to that anyway but yes we we recorded an episode of cpp chat
last week uh with john cowb as well which is the reboot of the show uh we'll talk about that a bit
more in the uh the main part of the episode sure so i I think Phil would like to correct your pronunciation of the computer
that he first programmed on. The ZX81 is the correct name. The Sinclair ZX81, which I think
did come over to the States, but I'm not sure if it came over by different name. Timex. Right. Okay.
Yeah. different branding.
But yes, the British model is correctly supposed to be called the ZX, right?
That's right.
Created by Sir Clive Sinclair.
Right.
Okay.
Well, we got a couple news articles to discuss, Phil.
Comment on any of these, and then we'll start talking more about everything you've been up to lately, okay?
Okay.
Okay, so this first one is a pretty interesting article,
Safely Extract a Method in Any C++ Code.
And it's basically about how lots of tools, including JetBrains, tools like CLion, ReSharper,
and also Visual Assist have extract method features, but you
could sometimes get into trouble if they
don't take parameters
in the way you would want them to
and you could wind up getting some bugs.
He built a process
that he called a recipe
for safely making sure
your code can be extracted, which is
basically turning it into a lambda
and seeing,
you know, what needs to be captured in order for that Lambda to compile.
I thought that was pretty interesting.
Yeah, I put this in here because I was really curious about Phil's take on it compared to
what the JetBrains tools are supposed to be able to do.
I've never used the extract method, extract function features in an IDE before.
Yeah, I thought you might have been putting this in here to troll me a bit.
No, not trolling. I wanted your actual opinion.
So I should start by saying I thought the article was very good overall, very well written,
very well thought through. I really like the step-by-step approach to really be careful about
not making any mistakes along the way.
I'm not quite sure I completely agree with his premise, though, that the tools can't be trusted.
I do agree that the tools aren't perfect, JetBrains tools or anyone else's tools.
C++ is a very complex language, too, to parse and understand for humans or tools alike.
But the tools can still help so yeah i wouldn't blindly trust at all to do a big complex refactoring he was talking about you know
many thousands of lines of code lines of thousands of lines of code and like thousand line method to
extract that that's quite a big job so yeah i wouldn't just trust it blindly you know check
what it's actually done.
Make sure that it's correct
and that it's done it the way that you want.
And the only thing that he brought out
as being a potential problem that the tools would do
would be to change the way that the arguments were passed.
And that strikes me as something
that can be inspected fairly easily after the fact,
whereas the big tedious part,
the actual moving the code around,
the tools can do quite well.
So I would encourage people reading this
to try to use a tool as well
just to take some of the labor intensive parts out of it.
So that did make me curious
and something I've never stopped to think about before.
How does the tools decide
if it's referenced cost reference value whatever uh so some of it's just heuristics
so if it sees a primitive like an int it would tend to pass that by by value if it's something
more complex then it will default to passing that by const ref usually um and obviously thinking
around some of this is changing now like we're often taking strings for example by by value and relying on um move
semantics and copy elision and things to sort that out for us so yes this changes over time but
um most of the refactorings will actually give you the choice as well where that's that's important
so you're usually in control and and even when you're not, let's say, actually going back and changing it to what you wanted is not normally a big job anyway.
Right.
Yeah, assuming you didn't extract a chunk that needed like 25 parameters passed to it or something.
Yeah, that may have other problems.
Right.
The other thing that struck me about this article actually um he didn't really go into
into this um which is not really a fault of the article um it had a different focus but
if you're going to attempt any sort of refactoring like this on like a large legacy code base which
is what he was talking about you really need to make sure you've got a lot of good tests for that
right and of course that's really tricky if you're working with legacy code but there are
techniques and approaches for that.
For example, Michael Feather's book, Working Effectively with Legacy Code.
It's quite old now, but still very relevant.
A lot of techniques in there.
And I noticed that one of the reviewers of the article was Llewellyn Falco, who I know fairly well.
He's got a tool or a suite of tools actually called approval testing,
which can be really useful for testing code that you don't necessarily control the nuts and bolts of,
often from the outside in, by sort of taking a serialized version of the output
and then comparing that against a textual representation,
particularly for regression testing, as you'd be doing here,
that can be very helpful as well.
Yeah, I was thinking the same thing about unit testing,
especially if you're really extracting
like a thousand lines of code into a new method,
I would definitely want to have some tests around that
to make sure it goes safely.
Oh, yeah.
Yeah.
Okay, the other articles we have
are actually all conference announcements, right, Jason?
Yeah, well, it's conference season, it seems.
Yeah.
So the first one is Pacific C++, or Pacific++.
They have a call for speakers until June 17th.
We should have put these in by date order, maybe.
Well, you know, I take
responsibility for that.
But Pacific++ has also announced who their keynotes
are, so we may as well mention that since we're mentioning the conference.
Sure, who are the keynotes this year?
It is... I am loading it right now.
Sean Parent
and Titus Winters
and James McNellis
is announced as a speaker as well.
I guess it's not clear
which of them are the keynotes or not, but
so those three
are announced speakers.
It's a two-day conference with two keynotes.
Three speakers announced.
Right. Well, those are three great speakers to start off with.
Yes. Okay. And then the next one is Meeting Embedded. And that's the first Meeting Embedded
conference, right? Yes. And it's, if I understand correctly, the day before Meeting C++ starts
in the same venue. Jens is going to be busy.
Yes.
Okay, so it's the day before,
and then is it two or three days of Meeting C++?
Yeah, three days, right?
Three days, okay.
Phil?
Yeah, three days now, yeah.
I guess that's a good way to do it,
to kind of combine the conferences in a way.
Yeah.
So the keynote for Meeting Embedded specifically is Dan Sachs.
Right.
And that has been announced.
And the dates for submitting your talk to Meeting Embedded and to Meeting C++ are both June 10th.
Yes.
And then do we have any announcements for Meeting C++?
Do we have any keynotes for that one yet?
All the keynotes are known for Meeting C++ also. That is Andre Alexandrescu. I almost didn't say his last name because I figured everyone would
know who I was talking about. But Andre Alexandrescu, Lisan Lippincott, and Nikolai, and I
cannot pronounce his last name. I don't know if it's Jositas or Yositas or how it is. Do you know
how that's pronounced, Phil? I always say Jositas. Jositas? I don you know how that's pronounced phil i always say jacetus jacetus i
don't know if it's correct i believe he's germanic so that's why i've always questioned it and i
should ask him again next time i talk to him okay and then the last call for submissions that we
have is for cpp con 2018 and you have a little bit less time for this one uh call for submissions is uh may 11th may 11th and this
episode's going to air oh on may 11th oh it is isn't it so if you are hearing this episode and
it's still may 11th to get that submission before the end of the day yes a couple hours left
ideally you should start working on it just before you hear this, and then you'll be ready.
Yes, that should be your goal.
And are there any announcements yet?
I mean, we've talked a couple times about the pre-con and post-conference classes.
We don't know who's keynoting yet, though, do we?
No.
No comments on classes, but the class page, excuse me, no keynote announcements, but the classes page is up and live.
2018 classes, everything's up right now.
Okay, so we talked before about who are giving those various classes, but now you can see what classes everyone is giving.
Yes.
Awesome.
Okay, so Phil, where should we start?
Do we want to start talking about CPP Chat?
That seems appropriate.
Like a nice handover.
So many people may have already been watching John Kalb's CPP Chat YouTube stream.
He was doing more or less weekly.
For some weeks anyway uh sometime last year just after
c++ now he went on a hiatus the web page said for quite a long time on hiatus until cpp con
of course was last september and then nothing until he came on your show just a few months ago
and said that he wanted to get it started again but he was looking for a producer
for the show because he wanted to also make it into a podcast um who would also be a co-host
so uh i've told this story now a couple of times on on cpb chat but i'll say it again
i was just dropping off to sleep when i was listening to that episode um so i didn't really
um wasn't really able to stop myself from replying and say, yeah, I'll do it.
So I've ended up being the co-host for the show.
I'm going to be producing the podcast.
We've got a couple of episodes recorded already.
One of them featuring a couple of very strange guests.
I'm not sure where we got them from.
In fact, it was the two of you so we had you on last week to do a uh the first episode that the one out live in the new format um but a couple of weeks before that at the accu conference we
we did a special episode there with some of the organizers and other people active in the acc
organization um live at the conference.
So that one's all recorded, and I'm going to be putting that out, hopefully, this weekend, if I remember to bring the audio files with me.
And then we'll be doing another conference special at C++ Now next week,
which should go out next weekend.
So all going well.
We'll be sticking to our more or less weekly schedule,
I think.
The podcast for last week is already out,
so you should be able to get that
if you're on any iTunes directory-based podcast player.
And for our listeners
who haven't watched any of John Cobb's
original CPP chat videos,
do you want to talk a little bit about the format?
Because it's a little bit different than what we do.
It is.
In some ways, it's sort of like an inverse of the way that you do things.
You have the guest interview, the host?
Well, that was last week.
Oh, okay.
On this show, you have a few news items at the beginning that everyone talks about.
And then it's mostly an interview with the guests for the week.
On CPP Chat, most of the show is talking about current items in the news in the community.
But if there's a new guest on, there'll be a little bit of an interview with that person.
And the other main difference is that there's often a number of guests on so last week we had the two of you um the conference one we had about uh eight or nine people i think
usually it's somewhere in between those two uh plus it does go out live on YouTube as we're recording it. And on the CPP Lang Slack, there is a channel for CPP chat where people can comment during the show and actually ask questions that we may ask the guest as we're recording.
So that is the plan moving forward is that they will always air live on YouTube and then be packaged up for podcasts download for people that are interested yeah that's going to be the normal format um as
we do sometimes do the the conference specials where it's recorded and then um then we just
publish it later rather than going out live okay all right so phil you besides cpp chat and your role at jet brains you go to
effectively every conference that you can go to it seems you have probably more conference
presentations on youtube than almost anyone else in the c++ community i'm guessing it's a lot
right how do you know how many you have currently up?
I know the last year I did 27 talks.
Wow.
Not all of them, but a lot of them.
I'd say most of them were recorded and are available online.
Now, they weren't all – well, first of all, that wasn't all at conferences.
That includes meetups.
It also includes lightning talks.
And it's not just in the c++
community so i also go to ios and swift conferences as well so that that explains why um why there's
so many of them even an agile conference as well so that there's only um there's only a handful of
c++ conferences so i'll definitely do most of those.
I haven't been to Pacific C++ yet.
Hope to get there soon.
But all the ones in Europe and the States,
the big ones, I've been getting to.
And I'm not sure that I have the most talks yet,
but definitely must be up there.
It's got to be up there. Do you have any particular favorite from any conference i know sometimes you give the same talk at multiple
conferences but i'm sure some version of it is better than some other version so any any particular
talk from any particular conference that you think our listeners should go watch well i did have a
good run with my functional programming talk functional Functional C++ for Fun and Profit.
I actually did that eight times in total.
A lot of those at meetups.
And I'd say probably the one I did
at the Italian C++ conference
was the best one,
partly because it was the last one that I did,
the last time I did that particular talk.
So obviously I was more practiced
and a little bit more polished,
but also because we had Bartosz Maluski in the audience
and some of his friends
from the Haskell community were there.
So I really had to up my game a bit
when talking about functional programming.
So I think that's probably the best one.
Did they ask any questions that stumped you?
Yes, not as many as I was dreading.
You'll have to watch the talk to find out.
That sounds like fun, yeah.
I might also mention one of the lightning talks that I do,
one that I've done a few times now, called The Stand-Up.
Okay.
It actually starts off with a bit of stand-up comedy,
but it actually pivots twice before I actually get to the real subject.
And again, you'll have to watch the talk, too, to find out what it is.
Was that intentional?
For that one, I'd probably recommend the first one that I did,
which was at CppCon 2015.
Okay.
I want to interrupt the discussion for just a moment
to bring you a word from our sponsors.
Development of qualitative software is impossible without the use of static code analysis tools.
These tools enable you to detect code vulnerabilities and ridiculous typos.
By the way, many developers tend to underestimate the typos issue.
That's why we suggest reading the article, The Evil Within the Comparison Functions.
One of the most powerful static analyzers is PVS Studio. This tool detects errors and potential vulnerabilities in the source code of programs written in C, C++, and C Sharp.
It works in Windows, Linux, and macOS environments, and it conveniently and easily integrates into the Visual Studio IDE versions 2010 to 2017.
Try the demo version of PVS Studio and find errors in the code of your project today. So I think last time we had you on the show, we were talking about
Catch 2 and various updates in the unit testing library.
I think one of those we talked about was Clara, the command line processor
and how you kind of separated that out into its own library.
Have you seen much use of that as a standalone
tool from the community?
Yeah, so actually I spun Clara out of Catch.
Originally when I released Catch 1.0, which is quite a few years ago now.
But I never felt it was quite complete.
I had a couple of design issues and it was stuck in C++98
because Catch itself was at the time.
And it had a little bit of interest but nothing too major.
So when we did Catch 2
and we moved to C++11
I took the opportunity to just completely rewrite Clara
take advantage of C++11
but also redesign it
so to fix those design issues
and design it around this concept of composability
the idea that
you can actually take the sort of several smaller parsers and compose them together into a composite
parser and one of the advantages of that is that you can have different parts of a large application
that don't necessarily know about each other expose their own command line interface and then
at the top level you can just compose that up into one combined interface which is very useful for catch of course because that's
combined with other people's code so it's one way to uh to augment the command line processing in a
in a test application um so when i released that as a 1.0, I also started talking about it more publicly.
It's conference talks.
There's a lightning talk I've done a series of as well.
And probably pushed it a little bit too much because there's a sudden surge of interest in it.
And now a lot of issues and feature requests and having trouble keeping up with that again.
So, yes, it has seemed to have been quite popular that's good it's uh unusual to have more than one successful project i think and difficult you have to deal
with all those pesky users with their support request yeah users can't live with them can't
live without them yeah it's not quite uh catch levels of success yet but um but it's definitely picking up yeah
catch is last i looked uh i don't even remember the numbers but it has a lot of support on github
many stars you know and that kind of thing yeah i did um i did look at the download stats
at one point um because you can get them from GitHub.
And I'm not quite sure exactly what they mean, because some people have tools that just pull things regularly, whether they're using it or not. But yeah, there's definitely many thousands of people using it, at least, which is nice.
Yeah. Well, yeah, you've got 6,800 stars and 123 contributors, it says now.
Right. Yeah. Help me keeping up with that.
You should send each of them a t-shirt to thank them for their contributions.
Yeah. If you're going to pay for it, maybe.
Right.
So what talk are you going to be giving at C++ Now this week?
Yeah, so I'm actually first going to be giving that talk tonight
as we record this, and then next Wednesday in Aspen.
Of course, by the time this airs, I will have given both of those.
So the talk is called Optional is Not a Failure.
And as you can probably guess from the the title it's about error handling and i think it's uh it's one of those
ideas whose time has come obviously we've been doing error handling for for a long time uh we've
been talking about exceptions for years but uh the last year or two in particular there's been a lot
of interest in uh newer approaches to error handling that, again, are coming from more functional programming languages with optional, with variant and the proposed standard expected.
Also boost outcome, which is sort of a refinement on that.
And there's new ways of thinking about how you handle errors as well.
And one of the things that my talk is going to get into is some of the mathematical underpinnings of that as well
which is not talked about quite so much and there's different trade-offs to all these
different approaches to error handling that there's no one that sort of across the board
just ticks all the boxes except there might be a proposal in the air for a
new feature that will actually achieve that so that that's going to be quite intriguing um i
don't want to talk too much more about it here because it's pre-proposed at the moment and of
course i have to give you a reason to go and watch my talk but uh well yeah remains to be seen whether
that will will actually be almost zero trade-offs.
It's definitely very interesting.
And as a little peek behind the curtain here,
the meetup that Phil mentioned is my meetup that he'll be speaking at.
Phil is in Colorado right now also.
Yeah, we didn't even mention that you guys were co-located right now, right?
Yes.
So if you notice any weird audio issues or anything we've got our our world is a bit uh jumbled up compared to usual with us both recording in the same location today yeah except the you're upstairs now yes we were in the same room but we were
getting uh feedback kind of issues, echo issues.
One thing we also talked about with you when we were on CPP Chat last week
is how you're going to be doing one of the,
is it a pre-con or post-conference training event
at CPP Con this year?
It's post-con.
In fact, I'm going to be on at the same time as Jason.
So we're going to have to fight that one out.
Yeah, I believe we actually proposed a battle royale
on CPP chat to see who wins the most students.
I've been putting a lot of thought to that.
We can discuss how that'll work.
Right, okay.
I will attempt to plug my class now then.
So I'm going to be doing,
I'm actually doing two days on,
we're calling itated TDD.
It's on test-driven development.
But although it's a two-day course,
you can also do it as a one-day course.
I've tried to structure it in a way that
if you just do it for one day, you'll still get a
rounded out set of subjects.
You'll go away
with an idea of what you need to do.
You'll get some value from that.
But I did feel that really needs two days to, to cover all the topics that I want to cover.
So if you come along for the second day, then it rounds it out even more, introduces a few
extra subjects and sort of revisits and deepen some of the things that we'll have done on the
first day. So ideally come for the two days, but if you can't quite manage that, you can come for the one days. And to clarify, it is specifically the first day.
There's no option to take only the second day. That is correct. If someone comes to me and says
that they can only do the second day, they really want to do the second day,
I suppose at the end of the day, that would probably be down to John as well.
But I don't see why not. I just wouldn't recommend it because I haven't structured the material in a way that that would make as much sense.
Yeah, that seems like it would be very difficult to do. And even structuring it so that only one
day makes sense could be pretty difficult, I feel like.
It was a bit tricky. In fact, there was a bit of a story there as well i originally proposed it as a one-day course i thought most people would only really
want to go for one day for tdd but i was thinking at the back of my mind i need i really need two
days to cover this and then when uh john john kalb the organizer of CppCon, was sending out the initial schedule for the conference classes.
He listed me as having a two-day class.
And I wrote back to him and said,
I'm sure this is a mistake.
I only submitted for a one-day class.
That was what you originally accepted.
But I've been thinking, maybe I could do this two-day class so we got talking on slack and um i said yeah actually ideally i'd do it
either way so we can we can have it for one day or two day and uh he said let's try and do that
and i needed to get an updated version of my uh my abstract for this back to him within like two days because he was
trying to put the the schedule together and i was just going out on a family holiday with my family
we were going to be driving for for six hours so i managed to get um my my wife to support me in
this so she did most of the driving while i sat in the passenger seat with my laptop and just that whole time just worked on this abstract.
So I could get this material that would make sense for a one day or a two day course, just thinking through all the different ways that those things could interact.
It was quite intense, but we got there.
So I think it's going to hang together. I have not done that for a class proposal,
but I have done that more than once for other contract work
where we needed to go on a road trip for some reason
and I needed to get work done.
So I was programming while my wife drove.
Yeah, we really need self-driving cars.
Yeah, that would be nice.
I don't trust them yet.
Well, because it's guys like us who are writing the code for the self-driving cars.
You really need to use test-driven development, of course.
Yeah, that's true.
So how is it running the C++ London group while you're doing all this traveling, Phil?
Yeah, that's interesting uh i think the last time
i was on the show i'd either was just about to have the first meeting or had just had the first
meeting of my c++ london meetup group so the last year and a half since then it's been running
every month um and every month but one, I've hosted it.
Because I'm actually organizing it,
I can actually fit it around my own travel schedule.
So it's one of the advantages or abuses,
depending on which way you look at it, that I have.
That one time, there was just a last-minute travel that I had to do.
So I have a sort of a co-host now, Tom Brezza, who often helps out. He stepped
in at the last minute to host that one. So I'm grateful for that. Tom actually has gone on to
start his own meetup running in parallel, sort of like a sister meetup for C++ London called C++ London Uni, which is running weekly
and it's dedicated to people
who are learning C++.
So it is much more accessible material
and they're sort of structuring it
more like a course,
although it's obviously
not a true university,
but it's free, meeting weekly.
They've been meeting
for about six months now
and just finished
their first cycle
of their course.
They're just starting
a new one.
Wow.
And that's been going
really well.
I'm really impressed
with how he's managed
to get that off the ground.
So there's now two
C++ London meetups
running.
Yeah.
So we actually just
reached out to Tom. so we're going to
have him on the show sometime soon
and we'll dig more into
what he's doing with C++ London.
I'm curious what kind of turnout
you see. Sorry.
Yeah, so I've been
to a few of them. I actually
spoke there a couple of weeks ago
and they typically have
between 10 to 20 people coming
regularly but then when they started the the new cycle last week they had i think 300 people
registered oh wow um now only because of the space they had at the time only 50 people were able to
get in uh in person.
And then they're now doing a live stream as well, as of recently.
They had a number of people tune into that.
I don't know how many people are going to be regularly turning up going forwards because they seem to have really tapped into something now.
So they're desperately looking for a bigger venue.
Hopefully they'll get that sorted that's pretty crazy yeah and how about the the main uh c++ london meetup
so that typically has between 60 to 100 people wow uh coming so that's been doing really well
um i think all the advertising on here and on Slack and other places has really helped.
And the fact that obviously London is quite a good community for programmers to start with.
So it's sort of on the doorstep, really.
I didn't have to do a lot of work for it.
Have you started going to your meetup, Rob?
No, I still need to go to mine.
I've just been to the opening meeting for it.
I need to get back into that.
Yeah.
Okay.
Yeah, that is significantly higher numbers than we managed to get here in Denver.
This week, it looks like we'll have one of our highest turnouts, which will be in the low 20s,
because we have a famous international speaker coming to
join us as far as seems to have drawn a little bit more attention. And I'll be there too. Yes.
So speaking of all these conferences and meetups, you're actually working on a new conference for
the UK for next year, right, Phil? I am, yes, and I haven't really announced it very
broadly yet, so this will be the first time. Are you ready to announce it now, then? I believe I
am ready to announce it now, yes. I actually finally booked the venue this week. I've been
putting up for a long time. That was the one thing that I was waiting for before I really went too
public with it. so it's going
to be called c++ on the sea and the reason is because it is set not not just by the sea
but it's actually built into the cliffs overlooking the sea uh the venue so you have a view of the sea
from three sides wow oh wow so it's uh it's a really nice venue it's actually a uh a working
theater so they have some quite big shows there on uh on the weekends so that the main room is Oh, wow. So it's a really nice venue. It's actually a working theatre.
So they have some quite big shows there on the weekends.
So the main room is definitely going to be big enough,
and they have a dedicated conference suite as well.
So it's a great venue.
It's in a town called Folkestone, which people in the UK will know.
People outside the UK, they may be more familiar with Dover,
the White Cliffs of Dover. It's actually just down the road from there it's the same cliffs in fact so it's uh
overlooking the the channel across to france which means that for people living in um certainly
certain parts of europe it can actually be more accessible than than say london if they're coming
by train it's right next to the to the Channel Tunnel
so I think it's a great location
it's going to be a
free track conference
running over two days
plus one extra day
of classes again
so it's three days in total
and I also have
two keynote speakers lined up
that I'm also ready to announce now
that's going to be Kate Gregory and Matt Godbolt.
So I'm really excited to have them on board as well.
Yeah, those are great keynoters.
Yeah, and it's going to be next February.
So dock-wide beach weather in the UK,
which means I'll be less to distract you from the conference itself.
Now, the Dover to Calais from the conference itself now that that the dover to
calais is the closest point across the channel right yes i believe so can you actually from
that area can you actually see france on a clear day you can yes okay in fact i i used to live um
just a few miles down the road from there and uh from the house I lived in, as you say, on a clear day, you could see across to France.
And the bit of France specifically that you could see across to was approximately where my dad lives now.
So I actually look out my window, look across the sea to – well, obviously I couldn't see his house, but it was a nice thought.
That's interesting.
So – I'm'm sorry go ahead i was gonna say as well as the channel tunnel there are uh regular ferry crossings as well so it's
quite a busy uh port area yeah i've never taken the channel i have taken ferries i think three
times both ways right yeah on the train you can as well as being a passenger foot passenger
you can take cars on as well so it's uh very accessible right only problem is driving the
left hand side drive on the right wrong side of the road when the when you get there i guess
i think that largely depends on whether you're West const or East const.
Okay, so you've got three tracks, you said, over two days.
That's right.
And you're aiming for how many talks per day?
Are you aiming for 90-minute sessions or 60-minute sessions?
I'm going to have a mix.
I don't have my template schedule in front of me right now but uh i think i'm planning around 10 12 talks a day okay that sounds about right yeah so
mostly 60 a minute and a few 90 minute talks that's a fairly uh fairly big good number of talks then for your first conference out
yes yeah i'm relying on the fact that having gone to so many conferences and knowing so many people
in the community that i'll be able to get enough people to come along so do you have your call for
talk submissions open yet or when do you plan to open that? Not quite open yet.
I'm hoping to shortly after I get back from C++ now.
I just need to do a bit more to finish the website first,
particularly making sure that I'm going to be compliant with the new GDPR regulations
that come into force towards the end of this month.
What is that?
Yeah, what is that?
So, yeah, if you haven't heard of this you should probably look into it because anyone that collects information personal information or on anyone else that might
live in europe uh comes under this um it's sort of related to what we call the the cookie law
okay um oh which which is mostly annoying but this is actually much
much more far-reaching i'm not an expert um i can't really give you the uh the expert rundown
now but it's mostly about making sure that you always have consent for everything that you
collect information on so if you have someone who signs up for one thing on on a website and then
you send information about something else that's unrelated, then you're in violation of it, for example.
And even what they call bundling.
So if you have those checkboxes at the bottom that say that you have to tick this box to receive these updates in order to join something else which doesn't have an obvious relation, then you're not allowed to do that anymore.
So it always has to be explicitly opt-in. which doesn't have an obvious relation, then you're not allowed to do that anymore.
So it always has to be explicitly opt-in,
has to be very clear what you're opting in for,
and it can't be bundled with something else.
And you also have to make it clear what information you're storing and make it accessible to be able to at least delete that information
and find out what information they're holding.
So it all makes sense, and it's going to be really good for consumers,
but for people that collect information, find out what information they're holding. So it all makes sense, and it's going to be really good for consumers, but it's
for people that collect information,
it's a really chaotic time right now.
And some of these
companies, their entire business model
is getting you to
accidentally download McAfee when you're
trying to install something else.
It seems like this would greatly affect them.
I think those are the sort of
places that are the main target for this.
Right.
Where we want to, say, Europe wants to come down on.
And although this is a European regulation,
technically it will apply to companies anywhere in the world
that are collecting information
if that information is about a European resident.
Right.
Which currently still includes the UK.
Maybe it won't apply to you.
I don't know.
Apparently it will, even after Brexit.
Right.
Is there anything else we want to talk about?
Do you have anything else, Phil?
I think we've actually covered most of the things
I was going to talk
about now yeah okay uh so regarding the conference um it's still a ways out but this is a brand new
conference you said february do you know approximately when you expect to like have
the tickets for sale and that kind of thing as well yeah i imagine um around the same sort of
time or shortly after i get the
corporate papers out i'll um i'll announce surly bird pricing there is a there's there's a website
already there um and it does have a a link that you can go to register your personal information
where you can then be notified of uh announcements as they become available so So that's cpponsea.uk.
And that's sea.uk.
Yeah, cpponsea.uk.
Could be a bit confusing.
Yeah.
Okay, well, it's been great having you on the show today again, Phil.
Obviously, you're a very busy
man uh where can people go to find out everything you're doing online there's no one place really
uh you can catch me on twitter uh phil underscore nash um i'm on the cpp lang slack quite a lot
there's phil squared uh phil squared on github as well. I'll have my website, levelofindirection.com.
Now, and I said this a couple of times now, because I've been on the show before,
that you can also get to it from extralevelofindirection.com. So just to up my game a
bit, I've also now got another levelofindirection.com and also too many levels of indirection.com.
Okay. So does too many levels of indirection redirect to another level,
which redirects to an extra,
which redirects.
It does.
Yes.
Okay.
That's great.
I figured that would be the only way you would actually set that up.
Okay.
Well,
it's been great having you on the show again today,
Phil.
That's been great to be here. Thank you.
Thanks for joining us.
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 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.