CppCon 2018 Trip Report

It’s the Sunday before CppCon. I’m standing with Scott Meyers and Kate Gregory on the 4th floor of the Meydenbauer along with some other people.

Classes start in a few minutes.

Someone who is easily recognizable joins the group. I’ve read their books and seen their talks, but I’ve never met them in person.

After greeting everyone, they turn to me. We shake hands and they tell me their name, but I don’t really need it.

“I’m Matt Butler,“ I say.

There’s a look of surprise and then delight. Their eyes light up. For a second, I’m wondering,

“How can they possibly know who I am? I’m anonymous.”

 

No, not that Anonymous.

Then my curiosity gets the better of me. Maybe they saw my talk at C++Now this year. I’ll regret asking, I’m certain of it.

“How could you possibly know me? As far as I know we’ve never met,” I ask.

They look back at me like I’m crazy.

“Well, everyone knows Matt Godbolt!”

 

Blink.

“I can totally pull this off,” I’m thinking.

“Matt and I are practically twins. I can even do the accent.”

“No one will ever know the difference.”

 

Engage, Entertain, Educate: Technical Speaking that Works

This year CppCon added a new conference class called, “Engage, Entertain, Educate: Technical Speaking that Works”. Scott Meyers, Kate Gregory and Andrei Alexandrescu taught it the Sunday before the conference.

If you ever get a chance to take the course, jump on it.

It’s eight hours of personalized training on giving conference talks by three of the best speakers in our industry. We did three lightening talks a piece throughout the day getting personalized feedback on each. I had always been under the impression that you were either a good speaker or you weren’t. But there really are strategies and techniques for dealing with everything from communicating technical material to beginning & ending to managing anxiety to how to frame a talk.

You bring the technical knowledge. They’ll add the speaking skills.

 

What they taught us that day had me rethinking my talks. Both were Monday afternoon back-to-back so I had overnight to re-tool and get ready. Andrei and Kate got me to rewrite my opening and closing. Scott found flow problems with the slides on my second exploit. But mostly they gave me the confidence to go out and give the talk I had always wanted to give.

I was fortunate that I got the theater as a venue. I tend to pace when I think and being on a large stage with the view screen above me let me prowl the stage while I talked. Like most people, I’ve always had a problem with fear of public speaking but the work the day before seemed to have dealt with that. I’m still not even really sure how.

While the new speaker clocks we have made a huge difference with pacing my talk, the count down to the start can be a bit of a negative. Waiting is always the worst part. Instead of hiding behind the podium, this time I decided to step into the moment and have a NASCAR start from the center of the stage.

The theater itself has a disco ball suspended from the ceiling. You know, just in case the 70s break out again. That was a good place to start breaking the ice and warming up the audience before the cameras started rolling.

Andrei was right, though. When you do a two hour talk and pour that much energy into it you walk off the stage drained. It went that way for me as well. That night I sat down and wrote them a thank you note and put in all the things I changed for my talks.

There were more than a dozen items.

 

New Talks and New Friends

Like C++Now, this was my first trip to CppCon and the first time that I had spoken there. Besides doing two talks on secure coding best practices on Monday, I organized a panel on software security held on Thursday. All three should be available on the CppCon YouTube channel shortly.

Some of the notable talks I saw:

Better Code: Human Interface – Sean Parent

I had been waiting to see this talk since Meeting C++ when the video didn’t work. As with all of Sean’s talks, it’s a combination of scientific analysis, “Sean Parent moments” and common sense. The problem is that our common sense often fails us. I really liked how he used the underlying logic to show how our UIs often fail. If you like Sean Parent’s talks, this is a great one.

Patterns and Techniques Used in the Houdini Graphics Application – Mark Elendt

Mark Elendt won an Academy Award for this graphics work using Houdini. While I’m not a graphics guy, I kept finding myself dazzled by the technology that takes us to different worlds and as he went through their lessons learned, I kept hearing myself say, “Yep, been there.” His Reflections list at the end was every mistake I had made coming up in the C++ world. Even if you’re not really into graphics, this is a great talk on finding the way forward even if it is by fits and starts.

Memory Tagging and how it Improves C++ Memory Safety – Kostya Serebryany

I come from the info sec world and memory tagging is a natural defense to some of the exploits we build into our code. This is a great talk if you want to understand how memory tagging helps prevent vulnerabilities and helps manage memory during the application’s lifetime. Much of it involves changes to the underlying hardware, but it’s a great primer to memory tagging and the benefits we can expect from it.

Frozen Data Structures in C++ – Serge Guelton

Everybody hates std::map and its cousins. But it you need something like it, the Frozen library is a great example of how to take std::map and actually make it perform well. I won’t give away the ending but not only is Serge a very good speaker, his library eliminates many of the performance problems in std::map while giving us the tools that std::map provides.

Modern C++ in Embedded Systems – Michael Caisse

I missed Michael’s original talk at C++Now since we were presenting at the same time. But this was a great follow-on to that talk. C++ doesn’t have the foothold in the embedded world that it should. I’ve worked at embedded companies where a few engineers who were devoted to C vetoed my attempts to use C++. When I got the chance and showed them how C++ not only saved them time but had little or no overhead compared to C, they started to become believers. Not only is Michael a great presenter but he made me miss the embedded world. If you work in embedded, this is a great talk to watch.

OOP is Dead, Long Live Data-Oriented Design – Stoyen Nikolov

I didn’t think I was going to like this talk given the title, but the title is really click-bait. That it got me there means that it worked. Stoyen’s argument isn’t to abandon OOP, but to put it in it’s proper perspective. We do have a tenancy to get carried away with deep class hierarchies and forget that the hardware operates on the data not the hierarchies. It’s probably one of the best talks on finding the balance between data-oriented design and OPP that I’ve seen.

Thoughts on a More Powerful and Simpler C++ – Herb Sutter 

I’m still not convinced about MetaClasses. But Herb’s talk does a lot to make the case. I also liked the conversation style format with two developers using Compiler Explorer to explore different code samples. Whether or not you’re a believer in MetaClasses, this was a great talk.

Surprises in Object Lifetime – Jason Turner

This is a really great talk on how object lifetimes aren’t always what we think they are. Our intuition is often wrong as you’ll see. I didn’t get to see this at the conference but Jason hosts the MeetUp that I go to which is where I did get to see it.

 

While I got to see some really great talks, the real benefit is the endless conversations you’ll have with some of the smartest people in our industry. I got to meet people for the first time I’ve been watching for years like Scott, Andrei, Sean, Bjarne & Herb and I got to meet old friends that I had not seen since last May.

CppCon really is a place where the time we spend together makes us community.

 

The Move to Aurora

And that goes for planning the conference.

Like C++Now, I am one of the planners for the conference. By now you will have heard that we’re moving CppCon to Aurora, CO which is part of Denver. Part of my job is to coordinate that move. It’s something I’ve been working on for the past five months and there is now less than one year left until we turn power on at the conference.

Jon already covered the reasons for the move: we’ve outgrown the Meydenbauer. And where we’re going: the Gaylord Rockies in Aurora. The conference center is still under construction so the first time I’ll get to visit is going to be in January with the rest of the team visiting in March.

Planning a conference the size of CppCon is a non-trivial task. It takes an army of volunteers working year-round to prepare and long hours during the conference to make it all work. My Friday before the conference started at 4 AM Denver time, involved a flight to SeaTac and ended after midnight Bellevue time. That’s not atypical. There were a lot of nights like that when the staff room was still up and running until late into the night.

 

The Longest Day

The last day of the conference was the longest, though. Not because of time but just because that was when we had to say goodbye to the staff of the Meydenbauer. I have only been with the conference for this year, but I had gotten to know them. They really are great people who performed miracles for us every day.

After lunch, the Meydenbauer staff gathered in the offices to say farewell to Jon who had been there since the beginning. It was an emotional goodbye. They presented him with a framed photo of the Bellevue skyline so he wouldn’t forget the city that had given birth to CppCon. They gave him a Seattle Seahawks t-shirt so as not to seed any territory to the Broncos.

But it was the CppCon t-shirt signed by the Meydenbauer staff that was so powerful and so moving. We were saying goodbye to family and that’s always painful. The rest of the afternoon would be spent working on the presentation for the big reveal. There were names to collect: volunteers, speakers, staff. Interviews to schedule and dates to lock down. It was a lot of busy work for a team trying to get the slides right while battling their own fatigue and a sense of loss.

There were walk throughs, changes, more walk throughs. One slide, the “Not Bellevue” slide was the hardest. It had the dates for the next conference and where the location of Bellevue, Washington was, a red “Not” was written before it. Every walk through got hung up there. It was hard to get past it. It was the obituary for CppCon at the Meydenbauer.

Then it was time to do it for real. It’s never easy to watch from the wings while a friend struggles to get through their talk. There was that “Not Bellevue” slide to get past again.

I was moved, though, by something completely unexpected: the Gaylord Rockies video.

Maybe it was just the fatigue and the swirl of emotions I was caught up in, but I found the Gaylord Rockies video strangely emotional for me. I had seen it several times before, but this time the scenes on the large screens of my adopted home state did to me what the “Not Bellevue” slide had done to Jon.

I’m not quite sure if I adopted Colorado or Colorado adopted me, but twenty-eight years ago we started the adoption process and completed it this year with my own family’s move to the Centennial State. I am so blessed to live in Southern Colorado at 10,000 feet in the shadow of the Rocky Mountains.

I started writing these words as my flight raced across Idaho towards home. As I set the final words down, I’m surrounded by mountains covered in hues of deep green, gold, orange, yellow. There is a gentle breeze blowing though the valley here that tells me that I am where I was always meant to be.

Now that my adoptive home is going to be the adoptive home for CppCon I hope that all of you who come here will want to adopt Colorado for your own.

As I did.

 

The Road Ahead

But there is a lot of road ahead of us before September. While coordinating a conference is a non-trivial exercise, moving an established conference is making that look easy. Everything that we know about CppCon and how it operates is now in the past. What it becomes in the future is still to be determined. And that’s where you come in.

If you’ve gotten his far, here’s what we need:

Automation. Much of what we do are manual processes. But that won’t scale. We need engineers who can help automate the back-end processes like email notifications for everything from grants to registrations to t-shirt sizes in the same way that we now have automated clocks for the speakers. If you have back-end experience, we could use your help.

But more importantly,

Local volunteers who will work the conference. The NWCPP Users’ Group has provided the bulk of the volunteers until now and we’ll have some of their veterans with us in Aurora. But we need local volunteers to fill out the Aqua Army of 60-70 volunteers needed to manage the conference. You’ll still have the majority of the conference free to see talks, but the volunteers are the life’s blood of the conference and now it’s on Colorado.

 

As for the CppCon staff, we’ll take a very short break to catch up on our sleep and reconnect with our families. Then we’ll be back at work. There’s a lot to get done.

And the clock is running.