Hello, and welcome to C++ Weekly. I'm your host, Jason Turner.
Now in this episode we need to talk about a bunch of updates to the channel - projects,
current status of things, and there's some things I really need your help with
so I hope that you stick around for the end of the episode to see what those things are.
So first and foremost as you can see here I have continued to release updates to my Best Practices
book, and I continue to release more puzzle books. I currently have five puzzle books available,
and I'm on the second edition of Best Practices, and of course if you buy these books on Leanpub
then you get updates to them if I have to publish any corrections. Now the puzzle books, you've seen
them before in other episodes, they're really meant to be written in, so I don't feel like
the e-book is the best option for that but if you have something like a Remarkable
tablet or something like that where you can write in the pdf then that might be
a great option for you. Of course if you do want a print version these books are all available on
Amazon as well. Now I don't sell Kindle books through Amazon because Amazon takes a giant
chunk of my profit if I do it that way, so if you want the e-book go to Leanpub, if you want the
print book go to Amazon; and all of these links are in the video description below. Now something
I never talk about on this channel is I am actually a Microsoft MVP. This comes up from time
to time when I give conference talks and stuff and people say they have no idea what that means.
It basically just means that Microsoft, uh, is thanking me for my contribution to the global C++
community effectively. So I've won this award for eight years in a row. I'm not an employee
of Microsoft, I am not in any way obligated to talk nicely about Microsoft or anything like that,
but it gives me access to some internal resources at Microsoft and Microsoft tools that I have
available. Now I am surprised every time that I meet someone who is surprised to learn that I
actually do training. Now I have said in almost every one of my 333 episodes up to this point
that "My name is Jason Turner. I'm available for code reviews and on-site training," or something
along those lines. On-site training means I actually do offer training to companies. That is
how I make most of my living, so if you work for a company that uses C++, you have, say, at least
10 developers on your team, and you want my highly interactive, highly customized style of training
for your team then please contact me. There's a million different ways to. You can contact me
from my website (and this is again linked in the video description - that's emptycrate.com,
that's not very complicated), or you can reach out to me on Twitter or Discord or Linkedin
if you would like to. There's a million different ways to get in touch with me
and I do my best to keep up with all of those different ways that people might get in contact
with me. I do offer a wide variety of topics for my classes, but generally the way it works
with my classes is I send a pre-class survey to the students who will be attending so I can
really get a feel for what their C++ experience level is and I can tightly customize the class
just to those students. So this is a relatively unique way of training and I think it's
worked very well in the past. There have been companies that have had me back multiple times,
so I think that you should definitely check this out for your team and particularly as we
are moving to an environment where our teams are more and more distributed geographically. It's
a good opportunity to bring everyone into the same place for a few days a year where they can
all interact with each other and all benefit from getting unified and having the same conversations
about C++ at the same time together. Okay, so the big news item here that you may not have noticed
is I have a second channel. I've had it for a long time now - six years in fact,
and it was called The Retro Programmer previously. I've decided to rebrand a little bit. Now you
can see here I'm still in the process of unifying my branding in different places.
This still says The Retro Programmer. It is now called The [Fill in the Blank] Programmer, and
you can find it by searching for either of these things currently on YouTube, and there should be
a link again in the video description. Now I just wanted an area where I could expand a little bit
the topics that I talk about so it's not just C++ that I'm allowed to talk about. If you're a fan of
C++ Weekly you may have noticed that if I have an episode where I don't talk about C++ specifically
people seem to get a little annoyed. They don't like that episode as much, so this is a place for
me to talk about all of the other topics that affect programmers. I have worked with a wide
range of programming languages and tools over the decades that I've been developing,
so I can talk about various random things here. Okay, so on to Github and the projects. Now again,
I'm in the process of making sure that everything is cleaned up. This is my Github profile.
These are the projects that I have pinned at the moment. Now these cpp-best-practices ones - we'll
talk about those a little bit more in just a moment. I have my json2cpp project which I
talked about in an episode and also talked about a little bit at a talk that I gave at CppNorth
just two weeks ago; and I have this tools project where I've been trying to accumulate all of the
different little utility kinds of things that have direct or indirect relevance to this channel,
but also just things that I've worked on over the years; I'm putting them all in one place. And...
then there's the official C++ Weekly repository, and we'll talk about that more again in just a
moment. Okay, so this is the C++ Best Practices organization. I created this on Github so that
I had a top level place of putting together things like my starter projects which I know many of you,
again, are familiar with and I've mentioned them several different times; but we have the Conan
CMake boilerplate template project - it's very bare bones. The GUI starter project has SFML
and FLTK and a couple of other things in it; and then there's the FTXUI template and that
is the one that was used for the C++ Weekly Game Jam a couple of months ago. They are all
based on the boilerplate project. So the boilerplate is the top level one
and any global changes need to be merged into it, and then I have a shared history with that and the
GUI starter template and the FTXUI template, so I have a way of sharing that history between these
three projects. So if you open a bug fix or pull request or something on, say, the FTXUI template,
there's a very good chance I'm going to ask you to move that to the boilerplate template project.
And the Best Practices project - you've seen that probably. It has 6,000 stars currently.
This is not all of the best practices that are in my book, it's kind of tangentially related. It's
largely a collection of C++ tools, but it is a large markdown document that you can check out and
you can read here online, fork if you want to, use inside your own organization. Okay so getting
back to upcoming events now, I have the C++ Best Practices book it's been mentioned at least three
times already in this episode. I currently have 4,556 readers on Leanpub alone - uh, that doesn't
include the people who have bought it on Amazon. So I thought that sounds like a pretty good number
of people who have presumably read this book. I tried so hard to make it very readable. It is very
succinct chapters, very simple applicable things to your project that you are currently working on.
So I decided to go ahead and build on this and for CppCon 2022 coming up September 11th to the 16th
here I am going to be offering a pre-conference workshop and this is called "Digging Deeper with
C++Best Practices." It is going to be at the Gaylord of the Rockies in Aurora, Colorado
as a pre-conference workshop from September 10th to the 11th, 2022; and the idea is to, like,
build on these best practices and, like, really understand, "Okay why do we avoid initializer list
in some cases? What does the compiler actually do with this code? How does a ranged for loop
actually make our code better?" that kind of question. It's going to be really digging deeper,
understanding the language at a deeper level, so I hope that you sign up for this class
and come and check that out - again, September 10th through 11th, 2022, CppCon, Aurora, Colorado.
So now this gets to where I need your help. If you saw this episode "This Game Teaches C++!",
then you might know where this is going. I have this project - I have ultimately
decided to name it Travels. It is currently in the C++ Best Practices organization,
and it is both a game that I'm working on, and if you've been a long time watcher of this
YouTube channel then you know that there is the C++ Weekly game project. Okay,
I finally have something that can actually be playable. Boy, it took several years
of trying many different things, but I realized as I was working on this that I had created an
environment that could also be used for teaching and learning C++. So there are game lesson files
in here; and right now I have "hacking lessons" 0, 1 and 2, and to actually play one of these
you have to go into the project and you have to change the actual game that's being launched.
So right now it is launching my game, the thing that I am currently working on for my own fun,
and if you comment this line and uncomment this line and hit play, then it comes right
back up again. It is fully designed for being as simple, and fast, as easy to work with as possible
while also at the same time trying to push people towards best practices. So
everything can run inside a Visual Studio Codes window. It is text based. It uses FTXUI.
It has virtually no hardware requirements at all. You can easily run this on a raspberry pi
class device - even inside a Visual Studio Code you can run it on a raspberry pi with the full
GUI debugging experience with sanitizers enabled, with all of the best practices,
with clang tidy, with clang format - it's all here. Where I need your help is first of all
ideas for what new lessons to create. So you can go ahead and open up Issues and say
lesson idea and create a lesson idea, and then I also need people who are willing to come in
and start to try to create those lessons with me so that we can really make this
a good sandbox for learning and playing with C++. I dig into this some more
in the keynote talk that I just gave at C++ on Sea 2022 called "Making C++ Fun, Safe and Accessible."
That's not out yet, but it should be out in the near future. So the Travels game is the first
thing I need your help with. The second thing I need your help with is my Cpp Weekly project.
This is all of the episode ideas that I currently have going. I think I've put in everything in
here, even the things that I would consider to be a little bit secret. I just went ahead and
put them in here because I want your feedback on this, and you can go in and you can give a thumbs
up to any of these episode ideas and say that this is an episode that you would like to see;
and I'm going to take this seriously. In fact as soon as I'm done recording this episode, I'm going
to record an episode about C++23's stacktrace library because it is currently the thing that is
on top, and then shortly after that I will record an episode called "What is a Pointer" and it will
be for The [Fill in the Blank] Programmer channel. So please come in here, add episode ideas, uh,
you know, try to check and make sure that it's not a duplicate of an existing episode;
and then also come in and vote on which ones you would like to personally see by adding a thumbs up
to it. As you can see we've only had, you know, a few people involved so far. I would love to
get as much feedback as possible on episode ideas. So the last thing then is that I am
strongly considering actually doing more regular sponsorship on the channel and I have gotten
many people reaching out to me about wanting to do some sort of sponsorship of the channel.
It's only happened a couple of times so far, so I thought I would make it a little bit
easier for everyone. This is my Github sponsors page. If you want something that is embedded in
the starter project descriptions or in the YouTube video descriptions then I have things
that you can just click on here and become a corporate sponsor and I'll automatically go in
and I'll update all of the videos so they have a link to your project, or your company, or your
current job opening that you have, or whatever; and that'll be in the video descriptions or
in the project links themselves (in the project descriptions);
but if you want something outside of these options here then please contact me. I am happy to discuss
the possibility of sponsorship with anyone and, to be clear, I am looking for things that are
a good match for this channel specifically. I want to do things that are respectful to
the audience and for the channel. And then I just also want to take a moment again to thank
all of my patrons on Patreon.com. You all really help keep the channel going. I currently have 162
patrons. It's a huge blessing, and I'm, again, really thankful for all of you. So thanks for,
you know, watching this episode of C++ Weekly. I hope that you can, you know, help out a little bit
in helping me decide the direction of these channels - what videos that you would like to see
on various topics, and I would really love to start getting some feedback on that Travels
game so that I can see how I might expand the various lessons in there; and if anyone can play
with them and see what you think that would be awesome. So thanks again and thanks for watching.