CppCast - Goodbye 2020

Episode Date: December 31, 2020

Rob and Jason are discuss various news articles, libraries and announcements on the last episode of 2020 before the new year. News Embo++ 2021 Runtime access to tuple elements YouTube C++ Ser...ies - Project from Scratch for C++ Beginners Bona - C++20 based modern file information viewer Concepts appreciation thread A new C++ Logging Library Sponsors PVS-Studio. Write #cppcast in the message field on the download page and get one month license PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents Why it is important to apply static analysis for open libraries that you add to your project

Transcript
Discussion (0)
Starting point is 00:00:00 Episode 280 of CppCast, recorded December 30th, 2020. Sponsor of this episode of CppCast is the PVS Studio team. The team promotes regular usage of static code analysis and the PVS Studio static analysis tool. In this episode, we discuss some news articles on our last episode of 2020. Then we talk about when we use C++ versus other languages for our project. Welcome to episode 280 of CppCast, the first podcast for C++ developers by C++ developers. I'm your host, Rob Irving, joined by my co-host, Jason Turner. Jason, how are you doing today?
Starting point is 00:01:18 I'm okay, Rob. How are you doing? Doing well. How have the holidays been treating you? Fine. I mean, you you know it's a weird year just like it is for everyone it's a very weird year it definitely is but uh but yeah i don't know about you but we did manage to see some family uh my my wife's sister and her boyfriend we all quarantined for like two weeks and then they came down here so it was nice to see some people it's been so long since seeing anyone like outside of my house yeah we uh tried to do similar um yeah so seen some
Starting point is 00:01:52 family also under similar circumstances yeah okay well at the top of every episode like through a piece of feedback uh this week we got a tweet uh from francis lamar saying google podcast has finally added ndr cpp my podcasts are once again all centralized and then he asked by the way do you have any podcast recommendations he's currently listening to cpp cast cpp chat tlb hit ADSP the podcast, and then JF Bastion also commented on this about Two's CP, Two's Compliment, being the best new podcast around. Is that JF's then? No. Two's Compliment appears to be Matt Godbolt's podcast. Ah, right. Okay. Which he apparently just
Starting point is 00:02:43 stealth launched a couple days ago. I didn't say anything about it publicly because I didn't know how stealthy it was. But yeah, I think we made a similar comment last week about how it seems like everyone is maybe getting bored with the pandemic and being stuck inside their houses and starting new podcasts so mad god bolts and uh ben rady have joined the club and i think ben's ben's is not excuse me matt's is not uh specifically a c++ podcast okay it's just uh someone who we know in the c++ world who happens to be doing a podcast right right which i think is similar for some of these others as well uh like tlb hit yeah not necessarily focused on c++ but i guess focused on like systems languages and low-level things so have you listened to any of these yet rob no i have not had a chance to
Starting point is 00:03:37 listen to any of these new podcasts yet because yeah we have we have time to make them but very little time to uh to listen to podcasts these days. At least that's the way I feel. Well, let's see. I've listened to like three episodes of a podcast. And it was the three episodes of CppCast that I was not in, basically. You've never listened to any other podcasts? No.
Starting point is 00:04:02 Oh, wow. Well, I mean, I did watch slash listen to the new one from uh from the jet brains crew i forget the name of now with so many of them going around yeah yeah i mean but i in my head i was watching a youtube video i wasn't listening to a podcast right which i guess you know it's not that different whether you're watching it with video or listening well they um uh had like the slides for what they were talking about oh okay going on live too so you didn't kind of have to have the video but you know it was there if you wanted to see it okay we've never
Starting point is 00:04:38 considered doing something like that no we do the video on youtube it's always just video of us not any slides or code or anything like that. Okay. Well, we'd love to hear your thoughts about the show. You can always reach out to us on Facebook, Twitter, or email us at feedback at cdpcast.com. And don't forget to leave us a review on iTunes or subscribe on YouTube. So, it's just the two of us today for our end of the year show. And we thought we would just kind of go over some more news and
Starting point is 00:05:07 maybe do a little q a but we actually did not get that many questions sent in unfortunately that's all right so is your plan actually to publish this on the 31st then to sneak it out before the end of the year yeah yeah that's the plan okay and that'll be 53 weeks of episodes 53 episodes in the year, yeah. I need to go back and look at how this calendar worked out for C++ Weekly, because I don't know how many episodes I published this year. But I'm always on a very strict Monday morning schedule, too. Well, let's get started.
Starting point is 00:05:39 So the first one we have is Embo++, which is Odin holmes uh conference uh in germany about embedded development uh is announcing their dates for this year uh it's going to be march what was it 21 yeah march 2021 i think 25th was that right uh 25th through the 27th yes yeah and i'll be honest when i first looked at this announcement i was a little worried like i thought they were planning on doing an in-person conference which you know i know we have vaccines going around everything now so it's you know going to be getting safer but i don't know how many people are really gonna have access to that by march um but it does look like it's virtual,
Starting point is 00:06:25 at least according to the Embo Twitter. It's not really mentioned much on the website, but it looks like it is going to be all virtual. And they have their call for papers open if you go down into the Apply here. But you need to get this in. Let's see, where's the date? I think it's December 31st yeah so that's that's today if
Starting point is 00:06:47 you're listening to the podcast yeah yeah if you see this podcast the moment it's released do you hear this go ahead and pause it now put in your application to speak at embo 2021 yeah are you planning on uh virtually attending this one i don't think we've either of us have attended that one before right no i have not uh yet attended that one i would like someday to actually go if possible um i haven't yet decided what i'm doing either uh submitting a talk or attending or not for it okay still feel a little bit like yeah the virtual the virtual talk thing, it's a little weird. Even though I've done it at my meetup a bunch of times. I don't know, I kind of feel like it's cheating at my meetup because I know all those people. And I know what to expect from them. And I get great feedback and a great amount of interaction from them and everything.
Starting point is 00:07:39 And it's a smaller group. I'm guessing everyone actually uses their webcams and everything. So it's more interactive. We'll get like 30 people and like 20 of them maybe will uses their webcams and everything so it's more interactive we'll get like 30 people and like 20 of them maybe we'll have their webcams on so it's pretty cool like that that's pretty good yeah and everyone's like super like they know all the zoom protocol right like i i think i've had to mute someone like once this entire year. That's pretty good. Yeah. Okay. Next thing we have is a post on the CB subreddit. And this is about a runtime access of stud tuple elements. You want to tell me more about this one, Jason? Yeah. So if you are used to using tuple, and then you're like, you know what, I really need access to the fifth element or whatever in this or you don't know, like you have to make some sort of runtime determination.
Starting point is 00:08:26 I either need the first or the fifth. It's a little bit of a pain because standard get, when you are calling it on tuple or on anything that has access with get like array and pair, then you have to know at compile time, which element you want to access. And this is reasonable because standard tuple, each element potentially has a different type.
Starting point is 00:08:51 So you have to know at compile time which one you're accessing because the compiler doesn't have any way of knowing what type to generate in there. So this is one of these things that if you're just using tuple every now and then, you're like, I just want runtime access to this thing. So this person wrote a handy little wrapper tool that lets you do a runtime determination which tuple element you want um it has caveats of course it has to return uh you have to give it like a generic lambda to call into it or something because it still has to generate all the possible calls for all the
Starting point is 00:09:23 possible types that would be in there right but there's so i guess maybe as a little bit of peek behind the curtain i'm the one who found most of these news things for us to talk about and so they're all more like things that appeal to me and most of them were on the reddit c++ but largely for the discussion so the discussion here is a few people like oh but wait if you did uh this you can simplify your implementation by this and some of these things are things that you know we've we've talked about um in the community recently i can't remember if it's been on cpp cast or on other venues but like doing a linear search through the elements is actually faster and generates better code than trying to do a binary search through the elements to try faster and generates better code than trying to
Starting point is 00:10:05 do a binary search through the elements to try to get to the one that you want for example okay yeah i i first looked at this and i i'm not sure if i've really run into situations where i felt the need to have runtime access to a tuple so i didn't look too deep into this but i can understand that you know certain situations would arise and something like this could be very useful yeah could be there's of course a couple of people on on reddit that are like why would you ever want this well sometimes you do sometimes sometimes the value that you need to access from this tuple originates from an you know an input file or a script or something right uh so the next thing we have is a youtube series and this is project from scratch and c++
Starting point is 00:10:47 and i did watch i think the first two or three videos of this and it looks like a great series especially for beginners uh you know the author uh is going into a lot of detail uh i watched up to the one where he started going over uh setting up your cmake project and uh you know going into a lot of detail. I watched up to the one where you started going over setting up your CMake project and going into pretty good detail about how to create something from the ground up, which I don't see that many other tutorials or anything like that out there. So this seems like a good resource. It seems to be the general response from people like, thank you for doing this you
Starting point is 00:11:25 know how to get started from scratch kind of thing yeah i tried to watch a video but my web browser was acting up at the when i was doing that and i couldn't get any youtube video to play really what the heck yeah i don't know what was happening i just shut down the computer i decided it needed some nap time yeah that fix it for you at least i don't know because i forgot to go back and check after that one of the things i totally appreciate about this though is he actually has a blog to go with it that discusses some of the things in the episodes too i did not look at the blog did you look at the blog much i i definitely pulled it up yeah and looked and saw that it has like description of your cmake project layout and stuff and like the word descriptions for getting started with cmake and i'm like wow okay i mean
Starting point is 00:12:11 and now to be fair like uh is this best practices i don't know i didn't dig into that stuff you know looking at the cmake here i see that it's using the global cmake functions, like include directories, instead of target include directories. So maybe it's not 100% and it's using a file glob for generating the set of CBP files, but it'll get you going. Yeah, I think that's what he was really going for, just to kind of teach you the basics
Starting point is 00:12:39 to start off a new project. Yeah. He seems to be doing a pretty good job with that. Good stuff. Okay, next thing we have is Bona, to start off a new project. Yeah. Seems to be doing a pretty good job with that. Good stuff. Okay. Next thing we have is Bona, which is a C++20-based modern file information viewer, and also Bulk,
Starting point is 00:12:56 which is a Windows portable package manager. And this is from Forrest Charlie. And again, he posted this on the CPP subreddit. And I looked into it a little bit. I didn't look into the code but uh balk looked interesting um you know kind of similar to chocolatey if you've heard of that which is a windows you know uh package manager kind of similar to to apt-get from linux so is it i i actually went the other route and spent more time looking at the source code for BANA. Okay. And, but for bulk, is it like, is it, when you said it's like chocolatey, but is it, is it a C++ dependency package manager or is it just an app package manager? It's an app package manager. At least that's what it looks like to me.
Starting point is 00:13:37 So you can just type in things like, I think bulk get or bulk install 7-zip or bulk install curl and it will download that package install for you they can use it from the command line oh that's cool yeah yeah and chocolatey I guess for our listeners if they've never used that you might want to check it out because it's pretty awesome yeah especially if you're used to the the linux style of installing a program and not having to go to a website to download the installer, being able to do it from the command line is pretty wonderful. And if you ever get into
Starting point is 00:14:12 setting up virtual machines or setting up containers with Docker, then using Chocolaty is really the way to go. Do you actively use Chocolaty? I'm not sure how actively I'd say say i use it but i definitely use it um i have done a little bit with containers over the past few months and i found myself going to chocolatey a lot when setting those up yeah i like every time i do a
Starting point is 00:14:41 fresh install of windows i think to myself i'm to use Chocolaty to manage all of the apps on here that I care about. Audacity and whatever like we use for our tools. Yeah. And that lasts like five minutes. And then I don't know, just because maybe just because I'm on Windows and I have other ways of installing things, I totally forget to go back to it later. It's like this like mental block I have or something. Yeah, I think like years ago, I set up a script to kind of start off a fresh development machine with some things that you can install from Chocolaty. You know, things like a
Starting point is 00:15:17 Git client and 7-zip, you know, not necessarily everything I use, but enough to kind of get me going. But, you know know i set all that up and i used it once then probably forgot about it next time i set up a new machine i have used it to manage via build build vms though for like installing uh the visual studio command line tools and all that stuff yeah it's great for that yeah so what's the other half of this though which we completely ob bono or bono or however it's supposed to be pronounced yeah um a modern file information viewer for windows now to be perfectly honest i spent less time looking at what it was supposed to do and more time trying
Starting point is 00:15:55 to look at the source code since it says it's a c plus plus 20 library um so i noticed it doesn't use modules but that's totally fair because why don when we discussed this a couple weeks ago, that modules might be actually a 2023 feature by the time we have all the support that we need for it. Just get the standard library support for modules. I think that's kind of a big thing that we'll all be waiting on. But there's an interesting mix in here. Like, depending on which file you go into, some of it's got, like, pound defines, and some of it's got, like, constexpr, all the things in C++20 throughout it. So I don't know if it's just because it's been in the process of being updated or if it just depended on what context that code was used in or whatever.
Starting point is 00:16:40 But yeah, I mean, I don't know. The people on Reddit like how, like, information it can give you, um, about files. They can tell you what's the P E L mock things that's dependencies, it's export symbols, whatever. And, uh, give you that information back in Jason. Yeah. The, the dependency information that it generates seems really useful to me. Uh, I know on, I don't know if this one does anything on windows or if this is just a linux utility it's a windows mainly utility oh it's windows too i'll have to take a look at what type of uh output it generates for windows because windows only i
Starting point is 00:17:19 think it says bonus yeah so it analyzes the the linux you know dot so files dependencies on when you're running it on windows okay that's what it says it can do but i mean to be fair all it's doing i mean it's parsing an elf structure or pe or whatever and then can give you the just what the binary reports about itself right okay yeah yeah that's that is that is definitely what the binary reports about itself. Right, okay. Yeah, that is definitely what the example screenshot is showing. Yeah, I guess I didn't connect that when looking at this. So it says PEL for mock binary format. So I guess it doesn't actually work with a Windows DLL or EXE because they wouldn't have ELF symbols.
Starting point is 00:18:04 No, but PE is... isn't that one of windows's binary formats not sure okay i didn't try this it's funny we all know that elf is linux and mock is mac os and i you know now i'm totally right it's something i i know i still you know i used to use depends a lot when trying to figure out if i was missing you know some dll uh that was required but depends is is no longer being supported at all it doesn't work well on windows 10 at all um and i found a while back dependencies which i think i probably found uh and and talked about on this show. I think you're right, yeah. And dependencies, like I said, it's a modern update of depends. It's very useful. But if you don't want to use a GUI and if you just want to be able to get that list of dependencies
Starting point is 00:18:56 in your command line, this might be great for that. I think to go and try it out and see how well it works with Windows DLLs. It is portable executable by thes. It is portable, executable, by the way. It is the binary format that is used on Windows. I had to know at that point. Okay, I definitely could try this out then. Extend it if it doesn't show you what you want it to have, and then you have a nice little...
Starting point is 00:19:18 Actually, that's a brilliant idea. Well, sometimes things like Depends or Dependency Walker or whatever those tools, sometimes you need to know at runtime which DLLs it's opened, depending on how badly your world has gone. Yeah. If this is only checking the binary itself, yeah, but let us know.
Starting point is 00:19:41 Extend it. New hobby project for Rob to work on. We'll see about that but i'm definitely gonna try it out i am very happy to volunteer other people to work on projects yeah yeah it's great it's real easy it's super easy okay uh next thing we have is again on rcpp this is the concepts appreciation thread and this is just someone who was working on i think their game engine and uh found a use case for concepts while working on some code and they were just so happy at how well it worked that they just had to share it with the world and yeah i agree like i haven't
Starting point is 00:20:21 really uh gone in and tried using concepts yet but it definitely seems like it's one of the best features that we got out of C++20. It's really powerful. And these requires expressions. Now, in this example, the author doesn't use the requires expressions, but then in a few comments in, they're like, you know, by the way,
Starting point is 00:20:39 you could have gotten rid of the concepts altogether for the way that you're using this and just do if constexpr and then it requires expression in there that construct can be crazy powerful but just the fact that you can just so easily detect like did the just generic type that was passed into me have a start function or not that if it did then do this otherwise do this some do this. Some, yeah, I don't know. I don't know. It's maybe in a couple of years, we'll realize that this is a bad idea because we end up with code that's really hard to track what's going on. But I like it.
Starting point is 00:21:16 Yeah, I like it a lot. Very, looks like it's very useful for factory functions. And I'm sure there's tons of other spots of code that can be cleaned up now that we have concepts. Yeah. I think the author or one of the comments talked about how they first tried doing this with Sphenae and either it didn't work or just wound up being really ugly and this is just so much nicer. Yes. I have taken a standpoint of avoid SphinA whenever I can for all of my C++ career. It's like I use function overloads or partial specialization if I can. SphinA is an absolute last resort.
Starting point is 00:21:54 As soon as I get C++17, if constexpr to avoid SphinA when I could. And now with concepts, I get to avoid it permanently. Okay. And then last thing we have, Jason, is a C++ logging library. And this is LW log. And according to the benchmarks, it looks like it's currently faster than speed log, which is pretty impressive. The author is saying it's still definitely like a work in progress.
Starting point is 00:22:21 He mentioned some of the features he still wants to implement. But it looks pretty impressive. The thing that I am curious about here and should have spent a few moments looking at is the description definitely says that it does, well, it says non-async logging. It does synchronous logging. Right. So I'm, and the part where I wonder, yeah, okay, here we go. So it's comparing LW log's synchronous logging to Speedlog's synchronous logging. By default, Speedlog is asynchronous. Yeah. So that's one way that Speedlog is so stupid fast is that it does asynchronous logging.
Starting point is 00:23:05 Okay. So depending on your needs, though, if you really want synchronous logging, then this LW log looks like it's crazy fast. And from what I saw reading the discussion and stuff, they're not using lib format. No, I think they're trying to have no dependencies when possible. So when I think they said, you know, when MSVC has std format, fully enabled, then they'll switch over to using that, but they don't want to depend on the format library, they just want to use what's in the standard library. Right. So right now, they don't have Yeah yeah they don't have any kind of formatting capability right yeah it's an interesting concept though i mean i appreciate that you're like well c++ 20
Starting point is 00:23:53 the ink is dry formats coming yeah yeah um although none of our standard library implementations actually have format in it yet. Not that I know of. I guess not. I think they called out MSVC, but yeah, do GCC and Clang not have it yet? I don't think anyone does. I'm going to look real quick. Okay. Text formatting.
Starting point is 00:24:14 Nope. No one has, at least according to the CPP reference compiler support chart, no one has it yet. Well, we're almost at the end of 2020, so hopefully we'll start getting everything early 2021. Yeah. support chart. No one has it yet. Well, we're almost at the end of 2020. So hopefully, uh, we'll get, start getting everything early 2021. Yeah. So I did have one other thing that I'd like to comment on here. Absolutely. I, um, as our listeners are probably aware, published my book about six months ago, earlier in the year. And some people have asked for print versions.
Starting point is 00:24:46 So I am hoping in the next couple of days here to actually get this up on Amazon Print On Demand service. I just have a little decision to make, though, because all of the code samples are syntax highlighted in color and definitely look better in color. But it costs considerably more to print it in color and definitely look better in color, but it costs considerably more to print it in color. Like I might be able to go away with a $15 version in black and white, but have to charge at least $25 to have it in color. I don't know anything about Amazon print
Starting point is 00:25:19 on demand, but are you able to just make choices make both choices available so if someone wants to get it for 15 bucks then get it black and white or if they're willing to spend the extra 10 bucks get it in color i should be able to make them both available although as far as i can tell have to publish them as two completely different books oh that's interesting okay yeah that's exciting though i'll uh i'll have to pick up a copy of that it's always easier to read a technical book and fiscal copy i think at least yeah i wonder if i should order a uh you know an actual proof copy to make sure it looks half decent before i have you know even though i just told the whole world that i'm planning to do this uh maybe something i should have considered before deciding to put this in the notes and discuss it but but here we are. It's all good. Do you have any idea what the turnaround time is for that?
Starting point is 00:26:07 For ordering something from Amazon? I don't know, but it's pretty quick. They have machines that are designed just for printing and binding books and mailing them. And I've seen them in action, similar systems. I went to the MIT Press bookstore when I had the opportunity to go to a company in Boston. Yeah, in Cambridge, where MIT is. And they had one of these things just sitting there in the middle of the bookstore that if it was an MIT Press published book, and they didn't have a copy on hand, they would just print it for you real quick. So I'm guessing Amazon can do it even faster. Whatever speed MIT Press can do it.
Starting point is 00:26:53 Nice. I want to wrap the discussion for just a moment to bring a word from our sponsor, PVS Studio. The company develops the PVS Studio Static Code Analyzer designed to detect errors in code of programs written in C, C++, C Sharp, and Java. The tool is a paid B2B solution, but there are various options for its free licensing for developers of open projects, Microsoft MVPs, students, and others. The analyzer is actively developing.
Starting point is 00:27:18 New diagnostics appear regularly, along with expanding integration opportunities. As an example, PVS Studio has recently posted an article on their site covering the analysis of pull requests in Azure DevOps using self-hosted agents. Check out the link to the article in the podcast description. Okay, so we did ask for Q&A questions. We only got the one email to me, though.
Starting point is 00:27:42 And this is, the question is, when do you grab for C++ in your developer toolbox? And when do you go with some other language and kind of a follow up is what are your driving reasons for the decision, familiarity, performance, tooling, time to ship? And I guess we can kind of both try to answer this, Jason. Yeah, go for it. You should start though, because you spend far more time outside of C++ than I do, I think. Yeah. So I do spend a lot of time with C sharp these days, start spending a little bit more time with Java as well. Sorry. No, it's okay. It's okay. But I mean, the thing is, I'm not really going and starting a whole lot of new projects like this is for work and i'm really just kind of
Starting point is 00:28:26 continuing to work on this same application uh for uh years now that we have multiple platforms are being supported that's why i'm spending a lot of time on c sharp on windows and spending more time in java for an android and cross-platform desktop version of an application. But as far as reaching for other tools, the only time I'm really writing something new is if I'm just writing some little utility application, which depending on how complex it is and how much performance is a factor, I might use C Sharp, I might use c plus plus or i
Starting point is 00:29:05 might use a scripting language or do it in powershell something like that do it in powershell just had this conversation recently with another friend that was like you know how powerful powershell is and he should probably know it better and i i know basically nothing about it i know i've seen uh tweets from izzy uses PowerShell on every platform because it is available on every platform. That's weird. Yeah. I mean, in my head, it's weird. It's weird, but it's more of just Microsoft kind of loving the open source community
Starting point is 00:29:37 and trying to bring their tools to more platforms. So it makes sense. I think of that in recent history. How would you consider yourself a powershell expert oh not at all not at all i always kind of need to go to the internet to try to figure out what i want to do but um it's nice to not have to worry about installing ruby or some other scripting language and just use powershell i feel I feel like, yeah, that's interesting. I don't, yeah, sorry. No, I was just going to say, how about you, Jason? Do you have any reason you might go for some other
Starting point is 00:30:12 language besides C++ when working on a project? Yeah, I've written more code than I would care to admit in Ruby and Python. And honestly, in my head, they're basically interchangeable. I know the languages are completely different. But the question to me is, do I need something with a bunch of handy package support or not? So if I'm like, well, I need to write this thing that integrates with GitHub. Well, the GitHub OctoKit,
Starting point is 00:30:46 the best platform that it supports is Ruby. So I'm just going to use Ruby there. Or if in another case, I'm doing something with AWS, the AWS libraries for Python are better than the Ruby ones. Fine. I'll just use Python there. Whatever. That's kind of how I look at it. I don't really like programming in either one of them. Python definitely makes me more sad than Ruby does. But those are the those are the tool that I'm going to look to if I need some sort of scripted thing. Other than that, it's probably like said or bash or something if it's going to be you know, like a quick one off kind of thing. Yeah, that's a really good point about whether you're going to use some library or package manager.
Starting point is 00:31:30 I mean, kind of going back to my answer, you know, one recent thing I worked on, which is kind of a little tool for generating kind of these custom packages, I needed to write and read XML. And doing that in C Sharp, with C Sharp's standard library, is a lot easier than having to use libXML or libXML2. Yeah, that's interesting, because C Sharp kind of speaks XML natively, huh?
Starting point is 00:32:02 It was born in the era of XML. Yeah, I guess it doesn't speak JSON natively. You'd have to bring in a library for that, but XML definitely speaks natively. Yeah, and how easy it is to get back an object representation of a JSON file in Ruby is just like crazy. Yeah. YAML and JSON, I like using Ruby for those
Starting point is 00:32:21 because they're just so easy to, and then you could just like write some object thing back out in the other format if you wanted to. Okay. Well, I think that's it for us for the year. Right, Jason? Well, yeah. I don't have anything else planned between now and January 1st. Well, it's been a very strange year uh but i'm glad we were able to keep the podcast going you know get an episode out every week which we've actually never done before but managed to
Starting point is 00:32:55 do under these strange conditions because you know we're not traveling anywhere so why not record a podcast episode every week so just a retrospective thing what year did you start the podcast i think it's been five years i think 2015 i started that sound right to you so five and a half years i guess yeah i guess so yeah first episode was february 2015 february 2015 yeah okay we're getting very close to six years of the podcast. So were you not doing it in a regular weekly schedule in the very first, or were you? I think I had like a two-week break before, in between having John called on and having you on. Okay. And then it was almost weekly. It's always miss two or three weeks in a year was kind of the average for those first few years.
Starting point is 00:33:46 Right. Okay. Yeah, I guess I didn't really pay attention to that so much. I listened to the one with John Call before you had me on, I think, and then listened to the next few. Okay. Well, we got 2021 to look forward to. Hopefully things start going back to normal soon, but hopefully we can keep, you know,
Starting point is 00:34:07 the schedule going and keep CPV cast coming out weekly. Yeah. I know some people, apparently this is really hopeful to some people. So I'll just share it here too. My grandpa has actually had his first vaccine shot and we'll have his second one on Friday. It's exciting. Because that'll be two weeks from the first one.
Starting point is 00:34:31 I mean, he's a 93 year old living in a nursing home in Florida. So he checks all the boxes for being in the first, the first tier there. And so, yes, real people are getting this and maybe things will change some days in the foreseeable future. Here's hoping. Yeah. Okay. Well, happy 2020, everyone. Happy 2021.
Starting point is 00:34:53 Well, we hope 2021 will be happy, but happy 2020. Okay. Okay. Thanks, Jason. Thanks, everyone. Thanks. Thanks so much for listening in as we chat about C++. We'd love to hear what you think of the podcast.
Starting point is 00:35:08 Please let us know if we're discussing the stuff you're interested in, or if you have a suggestion for a topic, we'd love to hear about that too. You can email all your thoughts to feedback at cppcast.com. We'd also appreciate if you can like CppCast on Facebook and follow CppCast on Twitter. You can also follow me at Rob W. Irving and Jason at Left2Kiss on Twitter. We'd also like to thank all our patrons who help support the show through Patreon. If you'd like to support us on Patreon, you can do so at patreon.com slash cppcast. And of course, you can find all that info and the show notes on the podcast website
Starting point is 00:35:40 at cppcast.com. Theme music for this episode was provided by podcastthemes.com.

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