C++ Day 2017: Wrap-up post

C++ Day 2017


At the beginning of December, on the 2nd, the Italian C++ Community hosted the C++ Day 2017 and about 110 people gather together. The drop rate was the lowest I have ever seen: ~8% (120 tickets emitted). This free event was hosted at Centro Culturale Giacomo Alberione, an historical location in the lovely center of Modena.

As usual, the event has been organized with no budget. Only a few sponsors covered the main expenses. Guido Pederzini was the event co-organizer and, above all, he found and was responsible for our charming location. Guido and I organized this event in a few weeks. Initially, the plan was to do it in Bologna. However, at the beginning of September, an agreement I had with some people there fell through (you know, bureaucracy…). Then we restarted from scratch, in September, with no location, no sponsors and just a few confirmed talks. Giving up? Not me.

I pushed a lot for having this event because I think continuity is important. I am committed to be directly involved in the organization of 2 main events about C++ in Italy every year. My target is to keep alive this “italian” dialogue about C++ that I have started about 5 years ago.

Guido is from Modena and he found this beautiful location in the center of the city. Just a few days later we made a visit to this place and then we set the event live on our website.

Honestly, after the huge results of the Italian C++ Conference 2017, my expectations for the C++ Day 2017 were simply lower. Only one track, no money for lunch and a location with “only” 100 seats.

I was wrong.

The available tickets got sold out in 3 weeks and people started flooding the wait-list shortly after. We ended up emitting more tickets than available seats. That’s normal for free events because organizers have to take into account some “drop” (people who subscribe but at the end don’t show up). Then we had 120 tickets but our room could accommodate at most 100 people. Guess what? 110 people showed up! Thus the room got full packaged and we needed to add some additional seats on the fly. This clearly caused some inconvenience.

My apologies for that, it’s our fault. Mine, firstly.

Apart from that, the event was really pleasant and the feedback we have received so far confirms my feeling.

Modena was a great location! During the last two years I have created some activities here in Modena (above all: Coding Gym and C++ meetups), thanks to my collaboration with ConoscereLinux (Modena Linux User Group). In the future I’d like doing more stuff in this city.

THANK-YOU!

Let me spend some kind words to thank who made the event possible:

The co-organizer Guido Pederzini and the rest of the staff Alessandro Vergani and Illya Dudchenko. A few awesome people! Thank you.

Our sponsors: Recognition Robotics, Sigeo srl, Elettric80. Thanks for your big support!

The speakers: Carlo Pescio, Stefano Cristiano, Daniele Pallastrelli, Alberto Bignotti, Sebastiano Galazzo. Thanks for sharing your stories with the ecosystem!

Centro Culturale Giacomo Alberione, for hospitality and support. Thanks a lot!

Last but not least, a big thanks to 110 people who attended the C++ Day 2017! You are amazing!

Some stats

As usual, some data about the attendees.

Attendees age:

  • the oldest: 58,
  • the youngest: 19,
  • the average: 35.

Attendees gender:

  • gentlemen: 105,
  • ladies: 5.

Responses to the C++ survey:

(I don’t use C++ at work – Rarely – At least half of the time – Daily/Most of the time)

(I don’t know C++ – Novice/Student – Fluent – Expert)

(I don’t use C++ – C++98/C++03 – C++11 – C++14 – C++17)

(Boost – Qt – MFC – POCO – JUICE – Scientific Libs – Graphics Libs – Physics Libs – Other)

(VS – CLion – Eclipse – VSCode – DevC++ – QtCreator – VAX – ReSharper++ – Other)

Structure and contents of the event

The C++ Day 2017 was a single-track full-day event consisting of 5×60′ technical talks, 2 coffee breaks (30′ each) and a long lunch break (90′ – people formed groups and went around the center of Modena). The talks (all in italian):

  • (Slightly) Smarter Smart Pointers by Carlo Pescio
  • C++ and UI: un unorthodox approach by Daniele Pallastrelli
  • Immediate Mode Graphical User Interfaces in C++ by Stefano Cristiano
  • C/C++ interoperability with other languages by Alberto Bignotti
  • Artificial Intelligence Today by Sebastiano Galazzo

Slides and links

It’s worth mentioning that Sebastiano Galazzo is currently the only italian holding a Microsoft MVP title for the category AI. I was very happy to invite him talking not strictly about C++. The most part of the attendees appreciated the idea too (according to the feedback).

And…a special guest joined the event for a few minutes:

Thanks to Herb Sutter for his message! This was a surprise for the people attending, even if, due to technical issues, I was not able to play it at the beginning of the event as I planned but just after lunch.

Videos of the talks are on YouTube.

Feedback

Less than 50% of the attendees left feedback. The feeling was quite good and it seems that only that inconvenience with the seats penalized the event a bit. This was definitely a 4-star events. Some charts follow:

(Learning new things – Peeking at what others are doing – Networking – Job opportunities – Business opportunities – Having fun)

#cppDay17 and quizzes

You know we always give gadgets and prizes during the event. Prizes come with tweets but, this time, I decided to give a chance to quick quizzes. These consisted in understanding the output of a few lines of C++ code. The snippets were always an application of an STL algorithm.

The first snippet was something like:

vector<int> v = {1,2,3,4,5};
cout << accumulate(next(begin(v)), end(v), 2);

Here you just have to notice the summation starts from the second element and the accumulator is initialized with 2.

The second exercise:

vector<int> v = {1,2,3,4,5};
reverse(begin(v)+2, end(v));
reverse(begin(v), begin(v)+2);
reverse(begin(v), end(v));

One person got it right and he won a prize. Afterwards, I asked: “what’s this code really about? Are you able to replace the last three lines with only one?”.

A couple of smart guys replied: “rotate“. Indeed, std::rotate was the answer:

vector<int> v = {1,2,3,4,5};
rotate(begin(v), begin(v)+2, end(v));

This exercise was inspired by the last Coding Gym I moderated in Modena a few weeks ago. The final challenge was about shifting an array and Roberto Melis proposed this solution to emulate std::rotate (rotate would have been the easy solution, however we set up the constraint “don’t use rotate or such”). Many people learnt something new!

The last snippet was copied from cppreference:

std::vector<int> v(10);
v[0] = 1;
adjacent_difference(v.begin(), v.end() - 1, v.begin() + 1, plus<>{});

This is basically filling v with the first 10 Fibonacci numbers. A bit of explanation here:

adjacent_difference computes the differences between the second and the first of each adjacent pair of elements of a range. The result is written into another range, eventually overlapping with the input. In the snippet, the operation is “plus” (sum), and input and output lean on the same range: the input begins from the first element, the output begins from the second. This way, adjacent_difference will output the sum between the first and the second elements into the third, between the second and the third into the fourth, and so on (remember the first step of adjacent_difference is always to copy the first input straight into the destination):

v[0] -> v[1]
v[0] + v[1] -> v[2]
v[1] + v[2] -> v[3]

Regardless the application of this particular snippet in real-world code, I think it’s very instructive to see patterns and how they work. That’s one of the pillars of my Coding Gym.

What’s next

We already have some activities in the pipeline.

In 2018 I will keep on organizing Coding Gym and I have new plans for that. Please get in touch if you want to set up a monthly Coding Gym ** in your town. On **Jan 9 evening I’ll be speaking and demoing about Coding Gym in Bologna, at XPug January meetup.

We are checking the waters for the Italian C++ Conference 2018. We need sponsors and we’ll open a call for papers at some point. Please get in touch if you are interested.

It’s likely that, before Summer, we’ll have another C++ event that a few good guys from Pavia are looking after. The Italian C++ Community will patronize such event and the “historical” staff will get somehow involved in the organization (me, firstly).