Last June 13th, we made an awesome virtual day about C++: the Italian C++ Conference 2020. Due to the Covid-19 emergency, the conference was totally online. Better late than never, I am publishing this wrap-up post.
Let me say that I am very proud that the Italian C++ Conference 2020 has been the very first major C++ event happening online. I hope that our experience has been useful to other organizers.
- the event was totally free
- total number of registrants: 502
- total number of unique virtual check-ins: 415
- number of keynote live viewers: 250
First of all, I would like to thank my staff: Alessandro Vergani (co-organizer), Stefano Saraulli, Alessandro Pezzato, Andrea Barbadoro, Mattia Verasani, Elvis Dukaj, Philipp Lenk, Riccardo Brugo.
Last but not least, thanks to all the speakers who gave great talks and to all the attendees who joined us!
As usual, let me go through the responses collected at the registration (some are missing because the facebook integration skips custom questions on eventbrite):
Online event contents
The Italian C++ Conference 2020 was a full-day online event consisting in:
- technical talks (for the most part live, just a few recorded)
- networking virtual area with text and voice/video chat channels
Live talks ran from 9 AM to 4 PM, arranged in a two-track agenda that included two short breaks and a long lunch break. The networking area was up and running for the whole day and was hosted on Discord.
- 1×90’ live keynote
- 7×50’ live Talks
- 3×30’ and 1×45’ recorded talks
- Move semantics
- C++20 in general and one talk focusing on text formatting
- C++ Development with Visual Studio Code
- Coding Patterns
- Writing efficient C++
- The Silicon Valley coding interview
- Current trends in the C++ Community
All the talks were in English (except for one recorded talk that was in Italian).
How the virtual event was made
Let me briefly go through how we have made this conference. For any further information, do not hesitate to contact me directly.
The conference was totally free but registering was required for getting access to the networking virtual area and for receiving talk links in advance. The day of the event, live talk links were disclosed for everyone but recorded sessions were disclosed only the day after.
The day before the conference, we sent a “virtual check-in” form to all the attendees. After checking in, the people were enabled to visit the lobby page that was the conference “entry point”, including all the links and information to virtually attend the conference (invitation to the networking area and agenda with links).
Live and recorded sessions were hosted on YouTube. To manage the live streaming we used StreamYard. This tool is very simple and allows the hosts to send one link to the speakers who can just share the screen and give the talk as they are taking a video call. Also, you as organizer can manage comments, display banners, and customize a bit the appearance. In my opinion, the most important feature you can get out of StreamYard is reliability, since if you lose the connection the streaming keeps on going and the speaker stays on the safe side. Our first option was a hand-made solution with OBS that is a very good tool but that, let’s say, turn the host into a “single point of failure”.
To handle questions we adopted a simple convention: attendees must use the YouTube live chat by adding “QUESTION” at front.
Just an additional note on recorded sessions: StreamYard can be used to manage recorded sessions too (e.g. the speaker cannot record an high quality talk on their machine). You can arrange some time with the speaker and stream into a private video.
Networking was based on Discord. As said, this was restricted to registrants (the invitation was not public).
We have set up a server with some text and voice/video channels to host discussions. Discord started supporting video chats just a few weeks before the conference and this was crucial for choosing this tool. Also, it’s free.
An important decision made during the conference was adding one channel for each talk, to trigger discussions around that particular topic (having the speaker on board as well, when possible).
In addition to “general” channels and talk channels, we also set up one channel for each sponsor (like “virtual booths”) and one channel for #include<cpp> (in general, this can be done for all other communities that are happy to join the conference).
Clearly, we had some support channels to ask for help and report issues. Some volunteers that we have found a few weeks before the event helped moderate the rooms and give assistance to the attendees.
Alessandro Vergani and me managed the live streaming sessions so other staff members were managing the networking area (although we stayed connected). In particular, Stefano Saraulli and Alessandro Pezzato coordinated the rest of the people involved.
It’s time to give you some feedback on the organization from the organization!
First of all, from my perspective the conference was great. This was our very first experience with online events and the number of people behind the scenes was very small. I am proud of what we have achieved.
The worst part of the event was triggering networking interactions, meaning that having spontaneous conversations was really hard compared to in person events. People preferred text instead of voice. As said, creating one channel per talk was a good decision that we made on the fly. Indeed, talks which have been followed up on Discord triggered some calls.
I know that other C++ events (e.g. C++ on Sea, CppCon, Meeting C++) are now using Remo. We are going to explore this solution in the future.
I think that live talks worked well and StreamYard was a valuable ally. I recommend this tool, especially if you plan to stream into multiple destinations. The only flaw I have found during the sessions is that communicating with the speaker is almost impossible if they switch off incoming sound or ignore the private chat. Indeed, at some point during one session I couldn’t communicate with one speaker that the time was over and, after several attempts, I had to close the connection and terminate the live streaming.
Another weakness of the combination of Discord and YouTube is just the lack of integration between them. People need to stay connected in two different systems. So you can even think of hosting the whole event on Discord (only if the event is – say – “small” due to Discord limitations) and just make all the talks available on YouTube in a second moment. This way people have to join the stream on Discord to attend a talk and will stay connected. This should also let people speak more informally since it’s like having them all in the same room.
Anyway, let me say that I have really appreciated Discord. It was very useful for keeping things under control, quickly chat with my staff, reaching people, speaking with sponsors, etc. As an organizer, I think two features could be cool to have:
- events-friendly graphical skin (e.g. arranging people in tables, table map)
- possibility to join a random channel (sort of “chat roulette”)
The online edition had good feedback, however only a small number of people took the time to vote (just 69):
In these troubled times, priorities have changed a bit. That’s also what caused this post to be published so late. The period of uncertainty we are currently living has terrible effects on our congruence-and-certainty-seeker brains. Some rules of the game are changed and we don’t know if such a change is irreversible. Anyway, the price to pay to stay in the game is adaptation, as it’s always been in the history of this planet. However, as human beings are designed, change is tough, requires some effort, and finds lots of resistance on its way.
As most people involved in technical communities I have spoken with, I am trying to make my part and keep up with my community activities, mostly online, although I look forward to making in person events again. My thoughts are with those who have decided, instead, to take a break and stop for a bit. I wish them to find new motivation after this recharge. We need you.
From my side, I will keep on arranging monthly C++ meetups (physically in Modena, when possible, and always online – as it’s been since 2018). However, we do not have any proposal yet so I need your help to diffuse this call for sessions link.
Also, I will still lead Coding Gym and, as a trainer, organize sessions on a monthly basis. Currently, the plan is to stay online for a bit, since social distancing is technically impossible in a traditional Coding Gym (you know, we do pair programming).
At the beginning of this year, I have founded ML Modena, a new community to meet up with people interested in Artificial Intelligence in the Modena area. Unfortunately, our very first meeting was planned just when the lockdown started in Modena so we have not gathered together yet. We hope to schedule a new kick-off meeting soon but we would really love to make it in person, if possible.
Usually, at this point of the year we are already working on the C++ Day. Honestly, this year I don’t know if we will make it. For sure, we cannot do it in person. Alessandro and I will speak about that by the end of August. If you are willing to help, please get in touch directly with us.
Stay safe. Hope to see you soon!