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.
                                         
