# Friday, 16 June 2023

Time for an update on the conferences I'm doing in 2023.

In April I did the closing keynote at ACCU, Grinding, Farming, and Alliances How words and ideas from casual gaming can make you a better programmer. My idea here is that certain things you are fine with in games, like "daily housekeeping", don't feel the same in your job. If you could feel better about them, you might be happier or more successful. Also, games pull on strengths like altruism and responsibility to get you to do things -- can your job do the same? Can your harness that to be more successful (however you define success) or happier at work? This talk was recorded and I expect it on the ACCU Youtube channel some time in June.

Next up will be "my own" conference, which is to say the one dearest to me as well as geographically nearest, CppNorth. There's still time to register for this: it will be in Toronto at the King Edward Hotel. July 17th and 18th are preconference workshops, and the 19th, 20th, and 21st are three jam packed days of sessions with evening activities Sunday, Monday, and Tuesday. If you live in and around Toronto this is your chance to see famous speakers (and discover some new ones) without having to fly a long way. I recommend you get a hotel room though, so you can truly immerse yourself in the conference while you're attending. My keynote is Steps To Wisdom: some tips I want to share with you that I earned through hard experience.

In September I'll be returning to NDC Techtown, this time to deliver the closing keynote on Day 1. These days I choose conferences based on many factors and small friendly ones like CppNorth and NDC Techtown really appeal to me. Both attract very good speakers and I expect to learn things -- I know I did last year!

In November I'll be doing something I haven't done before -- I recommend doing something new at least once a year no matter how old you get. In this case it's Qt World Summit in Berlin, where I will have a small keynote. I look forward to new people and new ideas from this experience, and hope to reach some people who haven't heard me speak before.

It's not too soon to think about the 2024 season, for me anyway. If you'd like me to speak at your conference, you can see many of my previous talks on my YouTube playlist. Please check my Speaker Kit for the details of my preferences.

See you at a conference, I hope!

Kate

Friday, 16 June 2023 16:00:49 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 03 August 2022

I've been working away for the last few months completely overhauling my C++ Fundamentals course at Pluralsight. Of course I updated everything for C++20, but I also added a module on error handling options, tweaked most demos, and lightened the overall look and feel. I'm really happy with how it turned out.

Here's the table of contents:

Leaving pointers almost till the end may seem like a shock, but this is how I teach C++ these days and it really works well.

As always, if you need a trial code, look for the image in the sidebar here to get a free trial and give it a whirl! I had a great time writing and recording it and hope you enjoy watching it.

Kate

Wednesday, 03 August 2022 11:18:49 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 25 February 2022

Maybe you hadn't heard? There's going to be a C++ conference in Toronto this summer. It's very exciting! I'm helping to arrange it. We've got a great venue (the King Edward) and are busy building a program right now that includes breakouts, workshops on concurrency, generic programming, and game development, plus entertainment in the evenings and plenty of special extras. I want to see Canadian C++ programmers well represented, and hope we attract people from further afield as well. Toronto in the summer is warm, fun, and light well into the evening.

Toronto downtown

Right now, the early bird price of $925 is in effect. After we announce the full program in April, the regular price will be $1250. So you can save a lot of money if you trust us to put together a great conference program for you (and we will!). You'll save enough to be able to pay for the speaker dinner, a conference Tshirt, and so on. And you'll let us know that we'll get the attendees we need to put on a great show.

Registering early helps us do things like make deposit payments to our vendors. We don't have a surplus-from-last-year, because this is our first year. So support from the community will really help. Why not check your schedule for the third full week of July (the conference is the 17th to 20th, and there are two-day workshops over the weekend of the 15th/16th) and arrange now to join us?

Kate

Friday, 25 February 2022 15:31:14 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 21 February 2022

I have missed conferences for a long time now. I did a few online talks, but it's not the same, not at all. This year, ACCU are holding their conference as a hybrid event. This means while many will gather in Bristol for all the networking, friendship, serendipity, and other benefits of being in person, others will join us online. I think that is great: for many people traveling to a conference is not an option -- for reasons of money, physical limitations, visa restrictions, and so on -- and being able to attend online is terrific for anyone who can't travel to the conference. For me, it feels safe now to travel. I have traveled twice during the pandemic: to Singapore in Feb 2020, when it was underway but hadn't really reached Canada yet, and to Singapore again in Nov 2020 for urgent family business, complete with two 14 day quarantines and multiple tests. I'll be taking all possible precautions, and I think it's going to be safe.

The schedule has been published and my talk will be Friday afternoon. I've booked my plane tickets and hotel room, and am starting to build out the list of talks I plan to attend and people I want to meet. By the way, Guy Davidson will also be there (doing a keynote, in fact) so if you're hoping to get your copy of Beautiful C++ signed, that's a good opportunity! I think there will probably be a table for #include <C++> but even if there isn't, watch our for our shirts and say hi!

I'm going to talk on Abstraction Patterns: things I've learned to spot in code that show a missing abstraction. Unlike the sort of "business objects" that you design at the start of a greenfields project or a major expansion, you don't need deep business knowledge and a long meeting with a business analyst to design these: the code will show you what to do. Come and see what I've found and if it can help you.

Kate

Monday, 21 February 2022 17:00:30 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 05 November 2021

It's true! I helped to write a book! Another book! (Do not ask me what this brings the total to, I truly do not know.) This one is about some of the C++ Core Guidelines.

Opinions vary on when it will be available: maybe the last week of 2021, maybe early 2022. You can pre-order from the publisher if you can't wait. There will be both an ebook and a paper version.

It's Guy Davidson who wrote it really; I have been a sort of editor and suggester and inspirer most of the time. If you liked my CppCon 2017 talk, 10 Core Guidelines You Need to Start Using Now, you will love this book, and not just because it's three times as many guidelines. Guy has included explanations of the 30 guidelines we chose, along with plenty of examples, the occasional diagram, and stories that put them into context and show you why it matters how you write certain constructs and why you should avoid some aspects of the language entirely. We are delighted that both Bjarne Stroustrup and Herb Sutter, who edit the Core Guidelines, reviewed the book, gave us helpful comments on the text, and wrote a foreword and an afterword for us as well.

I learned things writing this. You will learn things reading it. It may well change the way you approach code. That is one of our goals. The other is to get you trusting the guidelines and dipping into them when you have decisions to make about how to implement something. If these 30 are useful and good (and they are!) then imagine what else is waiting for you when you're ready!

 Please spread the word far and wide.

Kate

ps: the full title is quite a mouthful. We're thinking of RainbowFlower as a nickname for the book. What do you think?

Friday, 05 November 2021 13:40:38 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 31 August 2021

This summer has featured a lot of personal busy-ness and not a lot of work things to announce. One nice thing that has happened is my renewal as an MVP.

According to various "kate bio.txt" files kicking around my hard drive :-), I was first awarded in January 2004. So it will be a while yet until the blue 20 year marker arrives. The program has changed a lot over the years, but it's still relevant to me and a great source of information from the Visual C++ team.

Kate

C++ | MVP
Tuesday, 31 August 2021 17:12:05 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 17 May 2021

In April, I did my Naming is Hard talk at ACCU 2021. I'm getting better at doing talks online and handling interactions, at least I think I am :-). The recording is now online, so if you weren't at the conference, you can watch the talk. Being there is still better, even when it's digital - being able to chat to other attendees and the presenter is always going to be better than just watching a recording.

I added the talk to my youtube playlist of conference talks, so if you like that one and want some more, take a look!

Kate

Monday, 17 May 2021 20:19:53 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 08 March 2021

I’ve been thinking lately about a lesson I saw taught in a martial arts class over a decade ago. A young student was misbehaving. I knew this kid from field trips and other school activities, and he was doing typical things for him – not paying attention, calling out funny responses from the back row, making faces and showing off, that sort of thing. He was always a little difficult to manage but this particular day he was worse than usual. One of the instructors stopped the class and took the boy aside from the group. He picked up a lightweight rattan sword. They use these for practice – they’re very light, and they are made of several light sticks bundled together. They make a loud clattery noise when they hit, and use up most of the energy doing that, so they don’t hurt. They weigh very little.

The instructor got the student to sit or kneel, and hold his hands out straight in front of him at shoulder height. Then he held out the sword and asked the student to take it with both hands, holding the sword and his arms all parallel to the floor. Simple. You could do the same thing yourself right now with a ruler or a pencil or anything else rigid and lightweight. It’s trivial to hold your arms extended, elbows locked, hands a fixed distance apart (because they’re holding something that doesn’t bend or stretch.) Easy, right? By now everyone was watching to see what the actual punishment was going to be. Would the instructor now hit the student, or demand they do something difficult? (It was common in that class to assign pushups for misbehaviour, and I adopted the habit myself, giving my kids pushups in the grocery store if they were driving me crazy.) But no, the instructor just stepped back and said “just hold that as long as you can.” The kid grinned. Everyone else looked puzzled. It was trivially easy to do.

But if you try this yourself, you’ll soon discover that very quickly it gets harder. It starts to really hurt after just a few minutes. If you’re stubborn and you grit your teeth, you can keep going. This student was very stubborn. After a while though, his arms would occasionally droop down. “Either put it down or keep it up! Shoulder height! Arms straight!” the instructor would call and the student would try again and manage to get back into position. Eventually he was clearly in distress. The instructor told him “you can put it down whenever you want” but it was quite a while before he did. His muscles were clearly very sore.

On that day, the instructor didn’t explicitly close the loop. He seemed content to have found a way to get through to this student that classes were not his to disrupt and there were things the instructors could do that the student didn’t like. But years later, I saw a larger lesson in the choice of that particular exercise. Lifting that light sword (or the pencil or ruler you tried this with) is nothing. It’s really nothing at all. No effort. Anyone can do it. And at first, holding it is nothing also. If you had never lifted a pencil before, and you met someone who was struggling after holding one for many minutes, and you tried lifting a pencil yourself, you would be really puzzled. “Why are you complaining? This is super easy. There’s nothing to it! Anyone can do it!” The student’s misbehaviour was like this. Each little thing – the funny comment, the silly face, doing the move backwards – was in itself nothing. Easy to deal with or ignore. Not a problem. But enough of them add up. Just like the time holding the light weight. It becomes hard. It becomes painful. It becomes unbearable.

I really urge you to try this. How long can you hold the pencil or ruler out before you start to feel an effort? Before it hurts? Before you physically cannot do it any longer? Try predicting these times and then doing it.

The world is full of things that are trivial and nothing if you only experience them once, or once a decade, for a few minutes. It can be nearly impossible to imagine that these trivial things could ever add up to something painful. In 1970 (yes! 50 years ago!) a university professor coined the term microaggression for tiny moments of “you don’t belong” aimed at racial minorities, disabled people, women in male-dominated industries, gay people, and so on. People who haven’t experienced a steady diet of “you don’t belong”, however mild, often literally cannot imagine how it could add up to something painful. Sure, maybe you wince for a moment when someone assumes a group of developers are all male, or all straight, but it’s no big deal, right, and I’m sure the women know that when we say “men” we mean everyone, and the gay people know that when we say “wife” we mean wife, husband, partner, whatever. On its own, one tiny moment of “the only people I have to consider are X” is a little needle for people who aren’t X, but it’s such a tiny needle, who would complain, who would object, there was no nasty intent. Think about holding your arms out for 10 or 15 minutes and then think again about exclusionary language, policies that assume only married people have children, asking people “where are you from”, telling someone “you don’t look like a software developer”, making jokes about people’s weight or appearance, and all those tiny tiny little things that are nothing once, but that truly genuinely add up over time to real pain.

And then ask yourself: if it really doesn’t matter whether you say “men” or “people”, then why is it so important you keep saying “men”? That sounds like it actually does matter after all. If it’s no big deal and of course we all know that there are people who differ from you in some way, why are you not prepared to do the work of talking as though such people exist, instead asking them to do all the work of translating your literal words into what you probably meant, or would have meant if you had thought about it? How can you lessen some of the pain and effort other people have to put in all day, every day, day after day? It will be no big deal to you, right?

Kate

Monday, 08 March 2021 12:44:25 (Eastern Standard Time, UTC-05:00)  #