INFJ, spoonie, Ravenclaw, probably a cylon. I'm a game industry veteran who plays lots of videogames and has lots of opinions about things.

5.14.2018

A CPPNow Travel Guide

Disclaimer: This blog focuses more on the travel and community aspects of CPPNow rather than the technical side -- if you're looking for the latter, there are (or will soon be) many trip reports written by people far more intelligent than I who cover this. I feel that the atmosphere and inclusiveness of a conference is just as important as how good the content is; if you disagree, this is not the blog for you.

Last year I put together The Beginner's Guide to CPPCon detailing my unexpected but incredibly pleasant adventures in Bellevue. I figured that would be my last report until CPPCon 2018, but life has a funny way of surprising you, in the form of more C++ conferences.

I'd heard of CPPNow -- formerly known as BoostCon -- from Ben, who attended the 2017 conference, but I didn't know much about it other than it featured much more advanced C++ content than CPPCon. When I asked if I should attend, he inadvertently scared me off of it by telling me I probably wouldn't get much out of the talks because they were so high-level. So when he asked me if I wanted to attend with him this year, I was more than a little wary.

CPPNow 2018 was hosted at the Aspen Physics Center which is easy walking distance of the Aspen Meadows Resort, where most of us were staying for the week. I'd never been to Colorado so I wasn't sure what to expect beyond much cooler weather than what I was used to in Southern California. Stepping off the plane at the Aspen airport, it wasn't just the high altitude that took my breath away.

Spoiler: it was this freaking scenery.

So picture this: you get to spend a week learning about all of the amazing advances in modern C++, helping to shape the future of the programming language, and you get to do it in an impossibly beautiful place. I mean... you can't really lose.

I would describe the Meadows resort as the type of place you'd expect to find yourself if you were a billionaire with fragile nerves who needed to go away for a while to rest. It's set on 40 acres of meadows, streams, and mountains, with multiple modern art installations and rooms that are more like apartments. There are no street lights at night, no traffic noises, none of that -- just peace and quiet with a view of the stars clearer than I've had in over a decade. Downtown Aspen is about a mile and a half away. If you don't want to rent a car and are in good health (unlike me, who stupidly overdid it and ended up almost unable to get out of bed just three days in), it's easily walkable. There's also a free shuttle running from the resort to the downtown area so that you can experience the amazing local restaurants at mealtimes or go shopping. Emphasis on local, by the way; you won't find many major chains in Aspen, especially when it comes to food or retail. There are three grocery stores, all independently owned, and their selection may be shockingly small if you're used to massive Safeway or Albertson's locations. Price-wise, though, they were on par with or slightly cheaper than what I'm used to paying in Orange County -- although a few folks from less expensive areas found the costs a bit surprising. It's still cheaper than room service or going out to eat for every meal, however; the average cost of lunch at one of the more reasonable restaurants was around $20 for food, drink, and tip per person.

Really, I figured I'd be spending most of my time on my own. I had met lots of folks briefly at CPPCon but I hardly expected they'd remember me, and there were still plenty of attendees who I hadn't met. What actually happened was I walked into the reception area, had a bunch of people wave at me, and then ended up pulled into conversation with people I'd never seen before in my life but were all quite happy to introduce themselves and welcome me into the fold. Whereas you might think a smaller conference like CPPNow, with an average of 150 or so attendees, would be clique-ish, this was absolutely not the case. The only way you can end up eating lunch at a table alone at this conference is if you choose to do so. Otherwise, people will wave you over and insist you sit with them and make you feel like a member of a wonderfully nerdy -- and actually fairly diverse -- family. One of the regular attendees had a birthday during the conference week, and everyone chipped in for a huge birthday cake to surprise him with at the meet-and-greet barbeque.

All in all, there was never a time at CPPNow where I felt unsafe or unwelcome, even though I'm still a C++ novice and more of a hobbyist than a career programmer. Tired, yes, since we were all up at 7 or earlier and usually not in bed before midnight or later, but it was well worth it.

I didn't get to attend all of the talks, but the handful that I did were very impressive indeed:

"Easy to Use, Hard to Misuse: Declarative Style in C++" by Ben Deane. Look, full disclosure: this is not just any Ben, it's my Ben. I try very hard not to be biased -- but it did win Best Session at the conference, so clearly I'm not the only one who thought it was amazing. I've always felt that one of Ben's strengths as a presenter is his ability to provide clear examples of easily implementable methods for improving your code in addition to showing off innovations in the code itself. He manages to give concrete explanations in a context where the information offered is often vague and open to interpretation; whereas other guides to declarative style may be full of buzzwords and meaningless statements, this talk gives actionable feedback on how we can make our code more readable and efficient if we only change our way of thinking about what we write. I'd wager that even less experienced C++ programmers could benefit from this talk, since I truly feel that the easiest way to learn best coding practices is to do so as close to the beginning of your education as possible in order to avoid being caught off-guard by dramatic shifts in expectations later on down the road.

"Making Your Library More Reliable with Fuzzing" by Marshall Clow. I've loved hidden object games, word searches, and other similar types of puzzles since I was a child. It should be no surprise, then, that testing and security are actually my two favorite aspects of programming. Thanks to Marshall, you, too, can learn more efficient and reliable ways to break things with the end goal of making a better library! This was one of the shorter talks at CPPNow, coming in at around 45 minutes, but it certainly was effective. Marshall gave a great overview of some of the more popular modern fuzzing tools out there and how to use them for maximum benefit. He's an engaging and passionate speaker who clearly knows his topic inside and out, and so is a very reliable authority, eager to answer questions as they pop up. I wish I'd seen this talk about a year and a half ago when I was still implementing automated tests as part of my day job -- it would have saved me an awful lot of confusion.

"Secure Coding Best Practices: Your First Line is the Last Line of Defense" by Matthew Butler. Honestly, this was the talk I was most looking forward to, and Matthew did not disappoint. With his security background in law enforcement and the military, he's definitely someone who knows what he's talking about when it comes to keeping your code shored up tight. I was relieved to see that he didn't sugarcoat the reality of the battle to ensure your infrastructure stays safe -- the reality, of course, being that there is no such thing as "completely safe" and that we must stay two steps ahead of malicious individuals out there looking to compromise our systems and information. Matthew excelled at pointing out common areas of vulnerability and how something that seems innocuous or like it's not a big deal can lead to severe consequences if left unchecked. To drive home the point, he executed a quick and simple buffer overflow attack during the talk; it should be pointed out that the particular method he used would only be effective against machines from the early 2000s or earlier, but even with modern architecture it's still a potential attack surface, and the results are just as devastating. I'm keeping my fingers crossed that he writes a book someday, because I haven't been this excited about security matters since the first time I read Kevin Mitnick's The Art of Deception.

The lightning talks. Twice during the week, there was a special evening session from 8 to 10pm of very informal lightning talks. Subjects ranged from the mindblowingly technical to the comedic -- Odin Holmes's extremely literal "lightning talk" springs to mind -- but there was also one by JeanHeyd Meneide, a.k.a. ThePhD, that spoke bravely and honestly about what it was like to grow up as a "smart kid" of color and feeling stuck between two worlds for a long time as a result. I'm anxious for video of that talk to come out on YouTube because it was a very valuable and necessary representation for any programmers of color who have ever felt similarly and goes a long way for promoting inclusiveness in tech. As far as code goes, Jeff Trull's live demo and demystification of the GDB Python API for debugging was a real favorite of mine, since I'm a proponent of combining my two favorite languages, C++ and Python, in all sorts of exciting and usable ways.

The main difference between talks at CPPNow and other conferences is that audience participation is almost a requirement. Rather than holding questions and challenges until the end of the speech, attendees are quick to -- very respectfully, I should add -- point out flaws in the presented code or suggest alternate methods for achieving desired results. Speakers at CPPNow need to be on their toes and ensure that they have a deep understanding of the subject they're discussing, but I want to emphasize that none of the "live feedback" was cruel or anything other than constructive. This is a conference for people who want to learn and discuss, rather than memorize the algorithms shown to them on a screen. Even after the sessions were officially over, the atmosphere at the reception center's social gathering was more reminiscent of listening to Socrates on the steps of the Parthenon than simply a party... although, of course, there was plenty of that, too.

Going home after a week of learning and socializing in such a great environment was hard. I'm counting down the days until the talk videos (and one episode of CppChat filmed at the conference itself!) are put up for viewing on YouTube. Will I be attending CPPNow 2019? Absolutely yes! It's become my favorite conference of the year. But until then, I've got CPPCon 2018 around the corner to keep those C++ fires burning.