CppCon 2021 Virtual Trip Report, A User Story

This is the first CppCon hybrid (in person and virtual) conference, and in my opinion, it was a success in terms of content and organization, particularly from the virtual side. Sure, there were the occasional quirks, or the first day emergencies if one didn’t read the “instruction manual” (ahem) beforehand. But ’nuff said.

I’m writing this trip report while the experience is fresh, and before the glitter fades, drinking a hot cup of coffee while everybody else sleeps.

The Words of the Conference

I’ve joked in the past that every conference seems to coin a term that other presenters and attendees start using. Last year’s it was incantation (if C++ feels like magic to you, then you know why).

This year the words of the conference were: respect, inclusion and harassment-free. It is sad that at 21% into the 21st century we still have to be talking about this, but thanks to the organizers for making this a conference where everybody is treated respectfully.

Format

There were two formats: in person, which you had to shell some green (a.k.a, money) to land a seat in the conference and a bed in the Gaylord Rockies hotel or a nearby hotel. This is no different than in 2019, albeit the attendance numbers I ignore (I remember Jon Kalb mentioning the number of attendees, but that detail escapes my mind. A constraint for attendees this year was being able to fly to the U.S. due to COVID, even while vaccinated.

I will concentrate on my experience using the virtual format.

The virtual format, which is the one I used, had an excellent body of volunteers and presenters that were answering every question I had. The conference used a Discord server with plenty of channels, and again, people were very, very helpful. Several of the volunteers were from Europe, which brings me to a kudos moment: thanks to the organizers for accommodating attendees from all over the world; even though the schedule was early (at least for me: I gave a lightning talk and had to get up at 4 AM PDT to be ready for 5 AM). It shows the commitment to the C++ community and I for one appreciate it.

Virtual Facilities

There were three virtual facilities to be aware of: Discord for social media, digital medium (CppCon.digital-medium.co.uk) and Zoom for the presentations online, and Gather Town, a virtualization of the facilities that required too much fingering, in my opinion.

Discord, as mentioned above, was key to follow up on several topics. It also had specialized channels, but I mostly used the ones referring to the online experience. Again, the body of volunteers was excellent. It was funny to see some of the statuses as “Sleepy” for those of us on the West coast in the U.S.

The presentations were available from a nifty website from digital medium (CppCon.digital-medium.co.uk) that updated the upcoming sessions and one could just click the link and join using Zoom, which in my opinion was a nice choice. It a was very flexible and familiar medium–who doesn’t use Zoom, and one could chat with other attendees and post questions. Furthermore, it allowed presenters to pre-record their presentations and answer questions as the session was in progress. Two sessions that come to mind are Sy’s and Bryce’s.

Now we come to Gather Town. This is the part that I did not enjoy much. A few of the online sessions had to be accessed through Gather Town. Now, you could “practice” beforehand and move around using, literally, your arrow keys. I was late to a couple of sessions because on the first attempts either the session posted did not have a Gather Town shortcut or I missed it. Regardless, to participate over a virtual microphone it was confusing–a session by Nico Josuttis comes to mind, where it was painful to have to wait until a participant could “walk to the mike” and ask the question, receiving instructions online. Nico was patient, though ;-).

I guess that as a participant I was expecting last year’s virtual format, but alas, it wasn’t so. To the organizers credit, the links appeared in Discord and one could just click on them and then join a session in Gather Town by “picking a seat” and clicking X. Yep, X marks the spot.

As feedback to the organizers, this is one of those cases where a physical metaphor does not translate onto a virtual one.

Tracks

Well, there were too many (you can find them in the expanded schedule, right hand side here). My favorite was the Software Design track and gravitated towards those sessions, as well as the Async/Concurrency and Parallelism and Algorithms/Functional tracks.

My Favorite Keynotes

Keynotes are the anchors of the conference, and as one would expect, they rise above the common talks and concentrate on the timeless and not the timely. I will be brief here and say that my favorite keynotes were Value in a Procedural World, by Lisa Lippincott, and Extending and Simplifying C++, by Herb Sutter. I’ll be writing more about those keynotes in future posts.

My Favorite Session

I have to say it. Eric Niebler‘s Working With Asynchrony’s Generically: A Tour of C++ Executors (Parts 1 and 2) , was a delight to attend. Besides the expertise, the presentation was well done, with animation, coloring, and examples. Definitely worth your while once the sessions start to appear in YouTube.

My Other Favorite Sessions

Jason TurnerYour New Mental Model of constexpr. This is the first time I attend one of Jason’s sessions, and boy, it was an attention turner (punt intended). The session is a tour around constexpr from its beginnings to what it is today, and Jason’s experience as well as an accomplished trainer, made the session very enjoyable. And sure, I reminesced that I was playing Space Invaders while waiting at the bus station in my college years. Oh, did I mention that a Commodore 64 was my first computer?

Walter BrownCorrectly Calculating Min, Max and More: What Can Go Wrong? Well, apparently, a lot! Joke aside, this is a talk that I can explain to my daughter (at least half of it) even though she programs in Java and I like Walter’s style. By the way, I went back to es.cppreference.com and documented std::less<void> in Spanish.

Klaus IglbergerType Erasure: Breaking Dependencies – A Design Analysis. This is a prescriptive talk that everybody should attend. I had seen other talks and read material online, but this one brings it home. The analogy of the Strategy design pattern went a little too far, in my opinion (Strategy encapsulates an algorithm), so not everything is a strategy (policies are not strategies, so policy-based design wouldn’t qualify as a strategy, again, in my opinion), but the talk is very solid.

Andrew Lumsdaine and Phil RatzloffGeneric Graph Libraries in C++20. This is a very promising talk. I keep a copy of The Boost Graph Library in my bookshelf and hearing Andrew, one of the authors, express that C++20 is ripe for standardizing graphs in C++ was music to my ears. This is one of the projects that I’ll probably join if there’s space in it.

Bryce LelbachC++ Standard Parallelism – Nice presentation, easy flow, prerecorded, which gave Bryce the time to answer questions on the fly. Between becoming a New Yorker, baking, and leading the LEWG, I don’t know how he finds time for anything else, but check this out. And if you can say mdspan

Lightning Talks

Lightning talks are supposed to be light. and so they were. That’s C++ for the rest of us, that love it and live it, and some loath it. The talks were nicely coordinated online and in person. In my particular case, kudos to Phil Nash for herding us, a bunch of C++ enthusiasts and practitioners onto the void. Nah. Check them out once they’re online. You’ll have fun. I gave one entitled C++ en tu idioma, where I share my experience in slowly, very slowly documenting es.cppreference.com, the brother/sister site of cppreference.com, but in Spanish. If you have some time, check the talk and the site, and participate!

In Retrospective

I attend one C++ conference a year, and this one is it. It is the time for me to recharge, to absorb, and use it as a directive on what to learn and expect in the coming years The virtual format worked for me, and I hope that the organizers keep it in coming years. The “human touch” is needed too, and I’m glad that there was an in-person option too. For personal reasons I had to cancel my trip to Aurora, and I appreciate that the organizers provided a hefty window for refunds, and an affordable price for online attendance.

Where will C++ be in C++23, C++26, C++29? (heck, hopefully I’m retired by the time C++29 hits the proverbial stands). Well, if this conference is an indication, C++ will be used in even more spaces than it is today, richer, hopefully easier to use, and as I’ve said before, what I love about the language is its expressiveness, its flexibility, and of course, its community.

Posted in software | Tagged , , | Leave a comment

Lambdas en C++

Look what the Chihuahua dragged in! Well, in the absence of cats, a Chihuahua will do.

Lambdas en C++ is a Spanish translation of C++ Lambda Story, a collaboration with well-known author and blogger Bartłomiej Filipek. You can follow his C++ Stories blog.

Last year I did a review for the English version of the book that you can find here.

So, if you’d prefer to read C++ en tu idioma, check out the electronic version of the book on Leanpub.

Better yet, bundle it with C++17 – La guía completa and get to a great start with Modern C++ in your native language.


Lambdas en C++ es una traducción al español de C++ Lambda Story, una colaboración con el conocido autor y blogger Bartłomiej Filipek. Puedes seguir su blog C++ Stories.

El año pasado hice una reseña del libro de la versión en inglés que puedes encontrar aquí.

Así que si prefieres leer C++ en tu idioma, echa un vistazo a la versión electrónica del libro en Leanpub.

Todavía mejor, líalo con C++17 – La guía completa y empieza con el pie derecho con C++ moderno en tu lengua madre.

Posted in software | Tagged , , , , | Leave a comment

Shhh! Be Mindful!

Finally the book is here! I’m biased, extremely biased about this book, and for good reason. We met Renda and the Madrigals when our daughters went to the same kinder garden, elementary and middle school. We’ve vacationed together and have spent time together as families and still go out together every couple of months.

So you can say we know them well.

When we found out that Renda was writing this book we couldn’t help but be happy. Writing a book is such an endeavor, and a topic about mindfulness and families is a rare thing to find, and this book is unique in that way.

We have been happily part of Renda’s mindfulness sessions as a family and can attest to their effectiveness. One of the first things that you notice is that you do practice, well, as a family! That awareness in itself, that you’re doing something you like with the someones you love makes all the difference. Besides, Renda has a unique way of creating an ambiance, calming you down, focusing you in the moment, in the now, in the present.

So, if you’re into mindfulness and want to share this experience with the rest of your family, go ahead and get a copy. Got mine. On Kindle.

You can get it on Amazon here:

Posted in software | Leave a comment

From “See You Zoom!” to “See You, Zoom!”

Torrey Pines State Beach, San Diego, CA

With a large percentage of vaccinated people in the US, and the number of COVID-19 cases dropping dramatically in our county in California, it seems inevitable that some time in the near future we’ll have to return to a physical office, if only partially. For those of us with kids at home, there’s also a large possibility that they’ll have to return physically to school.

Last year I took the plunge and got a one-year subscription to Zoom, and our family meetings and community service have benefited from it. We schedule at least three meetings during the week, but it seems all this will be coming to an end. Zoom has proven resilient and useful–I have to provide an attendance list for about 25 kids in a class, and the reports are great. But being candid, I won’t miss it a bit once we’re able to meet people in person. So nope, I won’t renew.

Transitioning (as a family and not as an individual) will be stressful. There is some anxiety kicking in because of the unknown.

Regardless, it is concerning that other countries are still in the thick of it, and my thoughts go for those friends of ours with family in India. We’ve had the misfortune of losing three uncles and two aunts, in the span of three months, one just last week, albeit only one of them to COVID. This is on my side of the family.

If you’re in the US, how are you coping with the transition?

Posted in software | Leave a comment

If you build it, will they come?

This is my Lightning Talk for CPPCON 2020. I’m super grateful to Chris Ryan for posting it on LinkedIn.

Quality C++ documentation is abundant…as long as it is in English. If you’re a Spanish speaker your options are limited. This talk is about my experience in bringing es.cppreference.com, the Spanish companion site to cppreference.com, up to date to enable Spanish-speaking C++ lovers and enthusiasts a quality experience when learning C++…en español.

Many years ago I read a follow-up book to the seminal Design Patterns book by The GoF, called Pattern Hatching: Design Patterns Applied by John Vlissides. He kept a homonymous monthly column in C++ Report, a magazine now defunct. One of the things that called my attention is that he mentioned that keeping on with design patterns was a labor of love.

Before his passing, he was kind enough to review an article that I intended to publish on Pluggable Factory and gave me very valuable feedback, as well as feedback on using the nifty counter technique–originally in the C++ ARM and then in John Lakos‘ book, Large Scale C++ (first edition)–to implement a variation of Singleton.

To me, John was an inspiring figure to give to the community without expecting anything in return, and hopefully the effort of translating C++ documentation to Spanish will enable others to learn and love this programming language that has given me so much.

So John, this is my labor of love.

Posted in software | Leave a comment

Look what the cat dragged in…

Well, in reality I like birds better.

Disclaimer: I got C++ Lambda Story as a gift from the author, Bartłomiej Filipek, and in a previous post I shared that I had covered the book end to end.

Nonetheless, it’s nice to see a book come to life in physical form and will certainly enjoy having a copy instead of starting up a PDF reader.

Highly recommended, focused book about C++ lambdas.

Now, if only it were in Spanish…

Posted in C++, C++17, C++20, lambdas, software | Tagged , | Leave a comment

C++23 Stacktrace library documentation now available in Spanish / C++23 Documentación de la biblioteca de listado de pila ahora disponible en español

Una de las primeras características de C++23 se encuentra disponible aquí.

Todas las características documentadas hasta ahora se encuentran aquí.

Posted in software | Tagged , , , , | Leave a comment

C++20 Three-Way Comparison Now Available In Spanish / C++20 Comparación de tres vías ahora disponible en español

Three-way comparison (aka “the spaceship operator <=>) is a cool new feature in C++20. While the usage is simple, the documentation is not :-). Strong, weak, partial ordering…concepts, more concepts, type traits, and so on.

Documentation a long time in the making, but I finally had a good couple of days working on it. There are some examples missing–ditto in the English version–but nonetheless much needed documentation. You can find it here.


La comparación de tres vías (también conocida como “el operador nave espacial”, <=> ). Mientras que el uso es simple, la documentación no. Ordenamiento fuerte, débil, parcial…conceptos, más conceptos, rasgos de tipo y así sucesivamente.

La documentación tomó bastante tiempo, pero finalmente tuve un buen par de días para trabajar en ella. Hay algunos ejemplos que faltan–lo mismo en la versión en inglés–pero no obstante, se necesita mucho la documentación. La puedes encontrar aquí.

Posted in software | Leave a comment

C++20 format library now available in Spanish/Biblioteca de formato de C++20 ahora disponible en español

You can find it here/Puedes encontrarla aquí.

Posted in C++, C++20 | Leave a comment

Should the new Mac mini M1 be called a Big Mac?

For the past week I’ve been enjoying the new Mac mini M1 (with Apple Silicon), and boy, what a thing of beauty.

Externally it looks the same; the back, as has been reported, has less extensibility, but I don’t mind–I use either Thunderbolt 3 or Bluetooth accessories, so no problemo. I paired it with and older Apple Wireless Magic keyboard and trackpad, a Samsung 34″ C34J791 Thunderbolt 3 monitor that can double as a T3 hub, extended storage with a Samsung Portable X5 SSD with Thunderbolt 3 and this thing is fluid.

I also own a 2019 MacBook Pro (Intel Core i9, six-core), and informally they’re on par in terms of performance, but Geekbench reports, the Mac mini M1 beating the MacBook Pro hands down.

I’ve been running versions of IntelliJ IDEA for Apple Silicon and CLion for Apple Silicon. Startup time almost instantaneous from a cold boot. Kudos to Phil Nash, Anastasia Kazakova and team for these great tools.

It took around 3 weeks to receive it since I ordered it, but it was worth the wait–and I wasn’t in a hurry. If you can get your hands on one of these, or are undecided, highly recommended.

Posted in hardware, software | Tagged , , , , , , | Leave a comment