# Thursday, 31 August 2023

During CppNorth, I took a few minutes away from the conference to do an interview for Pluralsight. The host was my dear friend Julie Lerman and we had a great time. We talked about my courses, #include <C++>, CppNorth, Carbon, and a lot more.

I thought you might like to see a few "production stills" of how I set up the space to do the recording. It's always a challenge in a hotel room to get good light, keep the bed out of frame, and be reasonably near an available power plug. I did it!

Yes, I have my ring light clipped to a lampshade. And I brought the light, my good mike, and my mike stand to Toronto with me in my suitcase. Getting the laptop up high enough and at the right angle involved a little foraging in the room :-)

This was the view from my chair. (That desktop background is the view out of the Bridge of Sighs, in Venice.)

And here's the final video.It's about seventeen minutes; please do share the link with others.

Kate

Thursday, 31 August 2023 11:04:11 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 27 August 2023

The recordings from ACCU have been appearing over the last few weeks and now both of my talks are up:

  • C++ And Beyond: Discussion is a panel discussion with Vittorio Romeo, Kevlin Henney, Nico Josuttis, and me, moderated by Bryce Lelbach. The fun starts just six minutes in when Nico declares C++ "fundamentally broken." Still, there is some positive and hopeful content. We should think about the languages we use and what we want from them. C++ is a language that changes, which has consequences, both good and bad.
  • Become a Better Programmer by Using Words and Ideas From Casual Gaming is my closing keynote. Not a lot of syntax in here, but a new way of looking at some of the things you do at work, and how to approach those, that you may find helpful.

Going to conferences in person has many advantages, and I'm glad we're solidly back to doing that. But for the ones you can't attend, you can at least watch the sessions, and I highly recommend that you do.

Kate

Sunday, 27 August 2023 11:57:22 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 18 August 2023

The agenda for the Qt World Summit has now been released.

I'll be doing a half-hour version of a talk I've given only once before, "Am I a Good Programmer?" Many people have told me this is something they worry about pretty often.So at the end of November, we can discuss it together.

I've been lucky enough to speak in Berlin at several different conferences and I'm looking forward to being back there again. Would you like to join me? You can even get a discount of 10% if you use the code QtWS23_Kate -- register here.

Kate

Friday, 18 August 2023 12:32:58 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 20 July 2023

Day 3 began with a terrific keynote from Jessica Kerr, I can write the code. But getting something done is another matter. I was so thrilled when she agreed to come and do a keynote, and this one didn't disappoint. I took pictures of several slides, always a good sign.

After a break it was time for Tony Van Eerd with Value Oriented Programming Part V: Return of the Values. There was plenty of pop culture here but also some darn good advice about making good abstractions, and what's good about them. Then out for lunch again ... I deliberately chose something different on my second trip to the market.

The afternoon started with Conor Hoekstra and New Algorithms in C++23. Conor makes these things look easy -- perhaps they actually are? Then the closing keynote, from Timur Doumler, called Contracts, Testing, and the Pursuit of Well Defined Behaviour. We sure have plenty of undefined behaviour to deal with:


I enjoyed this keynote too -- they were all good.

And then it was time to say goodbye to this lovely venue and this lovely conference for another year.


Being all on a single floor this year made it super easy to meet people, have chats, enjoy the breaks, and so on. One thing I noticed this year was that some people brought their children. This was just lovely! Parents are quite capable of knowing if their child can sit quietly and be in a session, and it was great to see that in action. I hope bringing children to conferences is something I see more often in the future.

Kate
Thursday, 20 July 2023 16:26:00 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 18 July 2023

Another amazing day in Toronto! Let's talk about what sessions I went to so far.

I started with Patrice Roy's Moving an Existing Project to C++ 20 for Fun, Beauty… and Results!. The first part set up a problem and showed some C++17 code to handle it. I was a little impatient during this part, because it was a lot of code and I would have done some of it differently (because I am doing C++20 which is the point of the talk) but I did notice that it was carefully written to be fast and readable. Then the fun started as things got shorter, simpler, and (proven with some measuring) faster using C++20 goodies.

Next was Ben Deane with Calendrical C++: std::chrono, History, Mathematics and the Computus. This very entertaining talk took a problem few of us really face in code (when is Easter next year?) and used it to show off what chrono can do with dates. Probably my favourite slide was the one to show when Thanksgiving is. When you get to it, you'll see why.

The first break of Day 1 was the "Canada Snacks" -- see the published menu for details. I've never put a blackberry on a Nanaimo bar, but they certainly were delicious.

I enjoyed And Then() Some(T) by Victor Ciura a lot, even though I had to duck out early. If you would say no to "are you using higher order functions today?" this is the talk for you. Because you almost certainly are, and knowing that will make a lot of things easier to understand.

For the last talk of Day 1 I had planned to attend Rud Merriam's A Journey into Ranges, Views, Pipelines, and Currying but some last minute schedule juggling as speakers ran into travel problems put it up against Timur Doumler with C++ and Safety. Safety is a timely topic, so I'll wait for the video to watch Rud's talk. Timur did an interesting review of what the word "safety" even refers to, why governments are starting to have an opinion, and whether C++ can ever be proven safe -- and why you should care.

We wrapped up the day with the conference dinner, a nice mix of old friends and new, speakers and not, and good food. I enjoyed the conversations a lot!

Day 2 started with a keynote from Ben Deane, Optimizing for Change. Some excellent advice in this talk even if I did find the dark background a bit of a challenge on some of the code slides.

I had an online meeting I couldn't miss, so I didn't go to another morning session. After my call I walked over to the St Lawrence Market to get some lunch. I wish more conferences were fully in the towns where they are held, and made it simple for attendees to walk out and experience a little sunshine and access a wider variety of food options.

The afternoon had more tough choices, but I went to Why Good Code is Relative by Daniel Withopf. A good summary of why you can't "just write it the fast way" and some solid code samples about how to actually follow advice like "avoid heap allocations."

Then I went to Get() into Retroactive Static Reflection by Vincent Tourangeau. This was a slideless talk, bopping around in a lot of surprisingly-readable code that showed how to get properties, introspection, and a lot of other things you think C++ doesn't have -- and all with C++11. I know I'll be watching the video when it's out because there were a few moments where I wanted to rewind and see something again!

For my last session of Day 2 I went to Writing C++ to Be Read by Vincent Zalzal. I really enjoyed this talk! It's the sort of talk I would give, but Vincent included a number of excellent points I had not made or heard before. He also had fantastic slides, with highlights to point out the parts he wanted to draw attention to, and good examples.

That left the Lightning Talks. Wow, these were so good! As always, some were funny, some showed something we needed to learn, and some were highly personal. I've seen a lot of lightning talks and I always get a lot from them. But I don't remember lightning talks from student volunteers and members of the organizing committee anywhere else. Worth staying up for!

Next, one more day!

Kate



Tuesday, 18 July 2023 07:03:11 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 17 July 2023

So great that the second year of CppNorth has really happened, and started so darn well, too!

We started planning year two even before year one had happened, with a "next year" folder, and never really stopped. If you thought it was challenging to plan and host a conference with a pandemic still underway, that's nothing compared to doing the same thing during -- what are we calling it? -- an "economic downturn"? Getting attendees and sponsors took a lot of work, and luckily a pile of people who aren't me did that work.

Me, I showed up on Day 1 and did a keynote. I really enjoyed it, too. I'll post again when the video is up ... if you're an attendee you should be able to get the slides any time now.

This is 90 minutes of "stuff I've learned" like "Take Notes in Meetings" and "Always Take a Moment to Check" (aka Shift Left but for people) and the like. Many people told me it was helpful, which is very reassuring.

Kate

Monday, 17 July 2023 11:34:57 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 15 July 2023

I had a lot on my plate when the MVP renewals appeared July 6th, but I'm delighted to number myself among this illustrious group again. I'm never worried that I haven't done enough for the C++ community, but I do sometimes worry if the C++ community is the target audience for the program any more. Still, I suppose it must be, since they renewed me.

I updated my profile on the MVP site a little.

Kate

Saturday, 15 July 2023 10:10:05 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 17 June 2023

From time to time I think it's wise to summarize the courses I have on Pluralsight. There is a link on the side you can use to get a free trial if you want to take any of these. Because I redo most of the courses each time a new version of C++ becomes widespread, there are quite a few courses with similar names. Here's a quick summary.

If you are using the latest version of a major compiler, you are on C++20. These courses have been updated for C++20:

  • C++ 20: The Big Picture This is an overview covering "what is C++?" and "what is it used for?". If someone has suggested you learn it, start here to understand why you might want to. The title means that it's up to date to C++20, not that it only covers C++20. The actual content is equally applicable to older versions of the language.
  • C++20 Fundamentals is more properly "the fundamentals of C++ including things that were introduced in C++20". This is an introduction to the ideas, syntax, and standard library. At seven and a half hours it can't cover absolutely every corner of the language, but it does cover what you need to call yourself a C++ programmer, and get started writing real code. This course assumes you already know how to program. If you don't, try Learn to Program with C++ 17 which will cover the building blocks of programming languages like loops, functions, and objects while teaching the C++ syntax and library. Afterwards, you can take Fundamentals to fill in any gaps.
  • C++20 Algorithms Playbook again covers up to and including C++20, so plenty of things that have been around for decades, but it does have a lot of content that is C++20 only, because ranges made such a big difference here. If you're not on C++20 yet, take the C++17 version, listed below. Both versions are designed to convince you to stop writing raw loops and start using the many useful functions provided in the standard library. I demystify iterators and show you the benefits of using library code instead of rolling your own.
If you're not on C++20 and are wondering if you should be, try What's New in C++20. It will show you what you have to gain by updating to the latest version of your compiler (and how to try things out if your compiler doesn't support something yet.)

If you're on an older version and can't move, you should still use the latest iteration of Fundamentals. There's very little C++20 only material in there, and it's all signposted, so you can just move past that part if you need to. For the algorithms course, Beautiful C++ 14: STL Algorithms is the older version that doesn't have all the ranges additions.

Some of my courses are really not version specific, but apply to particular kinds of work you might need to do.
I plan to update everything for C++23 when the compilers have support for the new features. There are a few things coming I'm really looking forward to!

Kate

Saturday, 17 June 2023 14:51:47 (Eastern Daylight Time, UTC-04:00)  #