# Thursday, 25 July 2024

Day 2 at CppNorth started with Lightning Talks! But first I had to walk to the venue. When I drive around, I'm used to a flagger making cars stop from time to time to let a construction vehicle proceed. But this was my first sidewalk flagger:

The lightning talks were terrific, as they so often are. Funny, helpful, educational, often all 3. Pier-Antoine Giguère was our high-energy MC and really shone. I don't have any pictures because I was paying attention to all the talks!

Then it was Chandler Carruth, one of my fellow Carbon leads, with How Designing Carbon with C++ Interop Taught Me About C++ Variadics and Overloads, a talk I definitely enjoyed. There was plenty of code in both languages.

The audience seemed to enjoy it, too. After lunch I went to Hiding your Implementation Details is Not So Simple by Amir Kirsh, who has a gentle teaching style I really like. Then it was Mitigating the Intellectual Anxiety Associated with Learning the C++ Programming Language by Emmanuel Danso Nyarko from CppAfrica. If you've ever worried about C++'s reputation for being "the language for smart people" this talk will show you just how real it is. The reality of what jobs are available in Africa controls what languages people will learn. With no high-paying fintech or envy-of-your-friends gamedev employers, why would someone take on something they think is incredibly difficult?

This also applies to what is in the standard library. Seasoned C++ developers with lots of community folks to talk to can figure out how to build a UI. Different projects will make different choices - use Qt or some similar C++ framework, put a not-C++ frontend on a C++ engine, or some of the other choices of various age and success. But how does someone without that community navigate those choices and get started? Why doesn't the standard library help with that in any way at all other than "console apps" with keyboard input and text output?

Then I went to see Sohaila Ali, a very poised 17 year old with years of experience in hackathons and other contests and conferences, talk about career from that youth perspective. The audience was very engaged and the conversation after the talk was lively and enlightening.

Alas, as that talk wrapped up I had to do as I mentioned in my keynote and accept my own limitations. After a very full day of interesting talks I needed to cut the input for a while so I did not see Eric Wastl's keynote. I look forward to the recording, because I heard it was good.

One more day to go!

Kate

Thursday, 25 July 2024 19:59:18 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 24 July 2024

Monday morning started with a short walk to the venue. The first few minutes were against the flow of Toronto commuters pouring off a GO train and walking to nearby offices, which was quite an experience. But on reaching the 44th and 43rd floors, the reward was an amazing view!

I was worried about whether this year's food would be able to match the wonderful food we had our first two years, at a hotel. Well, it's been just as good and even better at times. Here's the morning pastries and fruit:

I had the opening keynote again this year. Here's the empty room after my tech check:

My talk went really well. This was the first time I had ever given it. I really wanted to reach the younger people, and I believe I did, to make sure they are aware there are things they can do early on to build up resources that will help you have a happy and healthy old age, and program for as long as you want to. I'll blog a link to the recording when it's live. Here's a picture from Twitter:

After my talk, I attended "C++ is a MetaCompiler" by Daniel NikPayuk. He had terrific outlining on his slides.

I urge everyone who is doing a talk to bake all their highlighting and "notice here that" into the slides themselves. Show the code, then advance or build or whatever you call it in your slide tech, so that the thing you want to show people is highlighted in some way. A coloured background like this works fine. Talk to it, then advance to the next thing. This is quicker than anything you might do with a mouse or other tool on the fly, it looks neater, it is guaranteed to be on the recording (pointing with your hand or a laser pointer never is), and the slides themselves remind you of the things you wanted to point out on them! I learned a lot from Daniel this week, starting in this talk but not ending there.

Then I watched Beginner's Mind, Expert's Mind by Dawid Zalewski. This talk was literally about minds in a way I wasn't expecting and it was very good. Highly recommended.

After lunch (spent mostly goggling at the amazing views, but the food continued to be very good) I went to "Software Engineering Completeness : Knowing when you are done and why it matters" by Peter Muldoon and "Meandering Through C++ to Create ranges::to" by Rud Merriam. I really enjoyed both of these, one for having no code at all but understanding how code fits into the big picture, and the other for having a lot of code and opinions about that code.

Then I went back to the hotel for a nap so that I could attend the Belonging Dinner in the evening. Negar Farjadnia talked about living as your authentic self and how even if there are a lot of barriers to that, putting in the effort to overcome those barriers and reach a place where you can live authentically brings huge rewards, not just in being happier but in many other aspects of your life.

What a first day! Super pleased with how it went!

Kate

Wednesday, 24 July 2024 11:32:40 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 23 July 2024

Sunday I travelled to CppNorth in Toronto. It started for me with a bus trip:

After the bus, I had an hour on the train and then a 5 minute walk to the conference hotel, the Royal York. I waited for my room to be ready and was pleased to be able to see the venue from the hotel:

It's the blue glass building with the diamond shapes on the side. Going back and forth between the venue and the hotel is quick and easy.

That evening we had a small reception to pick up our badges. I liked these pronoun pins:

I also enjoyed the Northern Lights image on the badges. I met people who were here in previous years, new speakers, and old friends I am happy to see many times a year. Everyone was eager and ready to learn. It's a great start to the week for sure!

Kate

Tuesday, 23 July 2024 15:01:08 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 10 July 2024

Things are really starting to happen on the Carbon project. Since Chandler Carruth announced the project two years ago at CppNorth, progress on the language design, and the toolchain implementation, has been considerable. Until very recently, if you wanted to try your hand at writing a little "hello world" application, you literally had to clone or fork the repo, and then build all the toolchain and tests, and you had to install a lot of dependencies in order to do that.

Now, there are nightly releases of a tool that can compile and link Carbon code. The only dependency I needed (on a WSL Ubuntu fresh install) was clang-16. I got that like this:

wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 16
sudo apt install \
  clang-16 \
  libc++-16-dev  \
  libc++abi-16-dev \
  lld-16

Then I downloaded a nightly build, untar-ed it, and could compile and link Carbon code, within the limitations of what has been implemented so far.

If you haven't been paying attention, you might want to watch some conference talks. Or check out the Carbon Copy newsletter. You'll find the 3 issues that have been published in the announcements section of the repo. Issue Number 3 is the latest and includes sample code that runs the Sieve of Eratosthenes to count the number of primes under 1000. (You can edit it to try a different limit, if you like.) This shows off user defined types (with a factory function), while loops, if, and a number of other parts of the language. 

Of course, Carbon is nowhere near ready to use. The only UI it can do is to print an integer. No other types, and it can't read input. There are no strings. There's no C++ interop. A number of language features (generics, variadics, lambdas and so on) are not implemented. It is nearly ready to evaluate. If you can't wait to start evaluating, you don't have to. Just be aware you can't evaluate all of it yet. But you can start, if you would like to.

Kate


Wednesday, 10 July 2024 14:17:13 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 21 May 2024

I really enjoy speaking at NDC Techtown in Norway. The airport is pleasant and easy to navigate, the trains are reliable, and it's a quick walk from the train station to the hotel, which is right at the venue. Plus the other speakers are always amazing, so I have a jam-packed two days of sessions to attend. Many years ago I decided to only speak at conferences where I would want to watch sessions, and it improved my life tremendously!

This year I'll do The Aging Programmer. This is a new talk that should be helpful for even the youngest programmers amongst us, because when it comes to planning for a happy old age doing what you enjoy, it's never too late, and it's also never too soon.

See you there! You've got three more days to order Early Bird tickets!

Kate

Tuesday, 21 May 2024 11:07:23 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 13 May 2024

I am really starting to look forward to CppNorth. We're in a new venue this year, the Microsoft Canada offices! They have a lovely suite of presentation rooms that they make available to community groups like ours. The program is chosen, and we're working on the schedule. In the meantime you can see the speakers and their talks. If you're ready, register now! You can also book a room at the conference hotel, the Royal York. It's an easy walk from Union Station to both the conference and the hotel as you can see from this map showing all three.

For those who would fly to Toronto, there's a train called the UP between Union Station and YYZ. You should plan to come a little early so you can do some sightseeing before the conference. There's a see-and-do channel on the conference discord that will give you some great ideas.

I'm honoured to do the opening keynote again. This year's topic: The Aging Programmer. Eyes, wrists, memory, stamina ... so many things we rely on can get weaker as we age. That doesn't mean you can't keep going if you want to. I'll talk about it.

See you there!

Kate

Monday, 13 May 2024 16:39:01 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 09 May 2024

On January 8th, 2004, I got an email from the MVP Lead for Visual C++ at Microsoft, asking if I would like to be an MVP. After checking to see what that meant, I said yes, and was accepted into the program. I was renewed every year, and at some point after half a year, making just over 20 years coming up at the end of June. I'm still the only MVP called Kate.

I went out for MVP Summit that first year, and some RD stuff at the same time. Here's a production still from "Red Chair Green Wall" - the plan had been to greenscreen in some image related to where we each were from, but then in the end, we didn't. I'm including it to show how much younger I was then!

I've decided not to renew this year. Usually, people making this announcement do so because they're no longer doing the sorts of things MVPs do. But I'm still teaching, speaking, helping folks online, writing the occasional book, helping to run a conference, and all the technical things as well. What's changed isn't so much me, it's the program. I always valued my connection to the Visual C++ team very highly. These days, the team maintains those connections with developers whether they are MVPs or not. Events like Pure Virtual C++, among other things, can keep me informed as well or better than the program can. The MVP program is all Azure this and AI that and exciting details and announcements about conferences that just aren't relevant to me. I'm sure they are useful and exciting tools and events, for someone. I am focused on my little piece of the world and don't need more information on the stuff I've decided to ignore.

Joining the program was definitely life changing. I had some wonderful times, learned things I really needed to learn in as quick and enjoyable a way as you can imagine, met terrific people and raised my professional profile. I would do it all again in a heartbeat. I'm just not going to keep doing it, because for me personally the benefits are dwindling.

I'm truly grateful to John Perry, for bringing me into the program, to Karen Young for inspiration and funny stories, to Sasha Krsmanovic for everything, to Sim Chaudhry for cheer and support, and to Betsy Weber for being the last one standing. Most of all, I'm grateful to my fellow C++ MVPs, and the Canadian MVPs from all technologies, for being great people to spend time with and learn from. There are too many to mention -- I hope you all know you really made a difference.


Sure, I could have cropped it a little tighter, but then you wouldn't see the picture in the background of me with Bill Gates :-) What a marvelous pair of decades!

Kate

Thursday, 09 May 2024 15:02:29 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 31 March 2024
I'm doing some work on getting older as a programmer. As part of that, I'd like to know what programmers have on their minds when it comes to aging. Our ability to type is a big deal. What else?

I've put a survey at https://forms.gle/gv3Zet5k6mhwcm7q6. Please take it, and please ask other developers you know to take it too. It doesn't matter what programming language you use. You can even answer if you're not a programmer -- perhaps you're retired, or you do a different job -- there's a question about whether you program at the moment.

I'd like to hear from a wide variety of ages and genders so please share this widely. Thanks!

Kate

Sunday, 31 March 2024 13:25:35 (Eastern Standard Time, UTC-05:00)  #