# Friday, 04 October 2024
One of the first web sites I remembered the URL of when I wanted to use it was imdb.com. "Internet Movie Data Base" and that's what it was. You could look up shows to see who was in them. It's a simple need and one that doesn't go away. "Where do I know that actor from?" Look up the show you're watching, find the character, from there the name of the actor, from there everything else they've been in ... and ah, that itch goes away and you can keep watching the show.

When I think about other web sites I started using around the same time, they're all gone, or if not gone exactly, I've replaced them with something else. Who searches on AltaVista any more? The Environment Canada weather site, once a marvelous relic of old HTML design but a great way to see forecasts and radar, has been updated to uselessness. But imdb is still there and still usable for the same thing it was always designed for.

So it was with a mild thrill that I discovered (thanks to a Google News Alert on my own name) that I am now listed there. Apparently they've loaded up a pile of podcasts. .NET Rocks, ADSP, and others that have nothing to do with me but had one guest named Kate and one named Gregory. Still quite a few podcasts I've been on that aren't indexed there, but it's a start!

Kate

Friday, 04 October 2024 13:32:19 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 30 September 2024

It's been 7 years since I was at Meeting C++ and I'm really looking forward to it. There are great keynotes planned and the schedule as a whole is full of talks I want to hear! I'm doing The Aging Programmer and hope it lands as well in Berlin as it has elsewhere. As always, I find it hard to believe there are too many C++ conferences for me to be at all of them, and I'm making an effort to try to mix things up from year to year and not just go to "the usual places" every time. It's good to see some speakers I haven't seen for a while, and be introduced to ideas I haven't been following.

There's still time to get your tickets! I hope to see you there.

Kate

Monday, 30 September 2024 14:54:39 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 08 September 2024

Tomorrow I head to Norway for NDC Techtown. And now I'll be doing two talks there! I'm adding Naming is Hard to my scheduled Aging Programmer. There probably isn't time for you to register and travel there, but if you'll be there, plan to see both my talks!

Kate

Sunday, 08 September 2024 13:36:32 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 26 July 2024

We work on the conference for a year, maybe more than a year, because we start thinking about "next year" before we've even had this year. Then it starts, and it's wonderful, and suddenly it's the last day.

We kicked off the day with a wonderful keynote by April Wensel about compassion and how bringing warmth and caring into your software development practices makes better code, not just happier people. Then I went to Tina Ulbrich's Throwing Tools at Ranges which had a lot of numbers and data for those who worry ranges bring performance issues.

A CppNorth tradition is that we don't provide lunch every single day, wanting to send attendees out into Toronto to experience the downtown neighbourhood. Day 3 was the "go out" day for lunch and from what I heard in the afternoon, people liked it, as they have other years. After lunch I went to Where There Is A Loop There is an Algorithm by Peter Lorimer and Fatemeh Jafargholi. I really liked how Fatemeh connected something I said about memorable catchphrases like "better safe than sorry" to algorithms and their names.

Then another Conor Hoekstra "so many languages" talk, Composition Intuition II. It was a careening ride between "heh, I can actually follow this, that is kind of neat" and "what?!?". Conor takes some of the mystery out of jargon words you hear other people use and helps to bring concepts from esoteric languages ("this one was written for winning code golf challenges") into our regular lives.

Then came perhaps the most anticipated break of the conference: The Canadian Snacks Break!

Butter tarts, nanaimo bars, maple cookies, and little bags of Hickory Sticks! You won't forget where you are at this conference!

We wrapped up with a keynote from Tony Van Eerd that appeared for a while to have only one slide (but actually had 86) and a lot of philosophy and thinking. To do a good job of abstraction, you need to think about what a thing is, and what the properties of a thing are, and Tony led us through that very skilfully. Definitely one to chew on on the way home.

And with that I was on the way home. Into the GO station that literally connects to the Microsoft building:

And on the train, with one well-timed selfie-with-the-venue:

See you all next year! You can even buy your tickets right now for a huge discount to use this year's budget, if you like!

Kate

Friday, 26 July 2024 07:58:57 (Eastern Daylight Time, UTC-04:00)  #    
# 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)  #