CppCast - CppChat

Episode Date: May 10, 2018

Rob 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)
Starting point is 00:00:00 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.
Starting point is 00:01:25 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.
Starting point is 00:01:42 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.
Starting point is 00:02:13 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
Starting point is 00:02:50 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.
Starting point is 00:03:07 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
Starting point is 00:03:35 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.
Starting point is 00:03:59 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.
Starting point is 00:04:43 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?
Starting point is 00:05:06 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
Starting point is 00:05:32 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.
Starting point is 00:05:49 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
Starting point is 00:06:23 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.
Starting point is 00:07:05 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,
Starting point is 00:07:25 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
Starting point is 00:07:44 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.
Starting point is 00:08:29 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
Starting point is 00:09:03 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
Starting point is 00:09:38 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.
Starting point is 00:09:59 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.
Starting point is 00:10:21 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
Starting point is 00:10:47 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.
Starting point is 00:11:03 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++?
Starting point is 00:11:32 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.
Starting point is 00:11:46 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
Starting point is 00:12:17 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.
Starting point is 00:13:05 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.
Starting point is 00:13:40 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.
Starting point is 00:14:02 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.
Starting point is 00:14:48 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.
Starting point is 00:15:28 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
Starting point is 00:15:54 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.
Starting point is 00:16:15 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
Starting point is 00:16:56 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.
Starting point is 00:18:10 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
Starting point is 00:18:35 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.
Starting point is 00:19:06 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
Starting point is 00:19:37 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.
Starting point is 00:19:53 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,
Starting point is 00:20:16 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.
Starting point is 00:20:38 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.
Starting point is 00:21:10 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.
Starting point is 00:21:50 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
Starting point is 00:22:15 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
Starting point is 00:22:43 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
Starting point is 00:23:33 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.
Starting point is 00:24:30 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.
Starting point is 00:25:07 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
Starting point is 00:25:57 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,
Starting point is 00:26:34 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,
Starting point is 00:27:12 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.
Starting point is 00:27:30 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,
Starting point is 00:27:51 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.
Starting point is 00:28:11 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
Starting point is 00:28:58 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.
Starting point is 00:29:40 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.
Starting point is 00:30:38 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.
Starting point is 00:31:02 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
Starting point is 00:31:37 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
Starting point is 00:32:16 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,
Starting point is 00:32:41 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.
Starting point is 00:32:51 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
Starting point is 00:33:00 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
Starting point is 00:33:14 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
Starting point is 00:33:42 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.
Starting point is 00:34:30 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.
Starting point is 00:34:51 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
Starting point is 00:35:32 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.
Starting point is 00:36:11 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
Starting point is 00:36:42 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
Starting point is 00:36:57 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,
Starting point is 00:37:19 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.
Starting point is 00:38:07 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.
Starting point is 00:38:54 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.
Starting point is 00:39:45 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
Starting point is 00:40:21 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.
Starting point is 00:41:06 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,
Starting point is 00:41:27 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
Starting point is 00:41:44 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.
Starting point is 00:42:03 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
Starting point is 00:42:24 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.
Starting point is 00:43:08 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
Starting point is 00:43:39 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.
Starting point is 00:44:12 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.
Starting point is 00:44:25 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.
Starting point is 00:44:49 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.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.