Skip to content

Instantly share code, notes, and snippets.

@GuillaumeDua
Last active June 26, 2019 11:07
Show Gist options
  • Save GuillaumeDua/eb0ffbb85b7793faec1d9b4ca4b1b47f to your computer and use it in GitHub Desktop.
Save GuillaumeDua/eb0ffbb85b7793faec1d9b4ca4b1b47f to your computer and use it in GitHub Desktop.
Trip report : CPPP conference

Trip report : CPPP Conference

By Guillaume "Guss" Dua

June 15, 2019 PARIS

An international C++ conference in the heart of Paris

Two days ago, the CppFrUG completed its first conference, in Paris, France.

So many C++ conferences already exist. However, before the CPPP (and despite the strong C++ French community) there was none in France.

To name only a few, you may have heard of Meeting C++, emBO++, C++ Now, CppOnSea, C++ Russia, and of course the CppCon.

Here is the challenge that Joel Falcou and Fred Tingaud completed with success :

  • In only 5 months, create the first French C++ conference in Paris

Thank you to all of the people who participated : volunteers, speakers and attendees. You all made this possible.

To choose is to renounce

Most of the day, there was about 3 talks scheduled at a time.
The greatest challenge for someone who attend such conference, is to choose which one to attend to.

I was so glad that was not the case of the first one, scheduled as a planery, main event.

Kate Gregory - "Emotional code"

Like most of Kate's talks, this one was definitly a game-changer.
(See Simplicity : not just for beginners or Stop teaching C)
In the way of an echo, her words keep resonating into my brain days after I heard them.

When I read the schedule first, I wonder what "emotional code" could be.

Her base reasonning was the following :

  • Programmers are humans beings
  • Humans feel emotions
  • Programmers create code
  • So programmers leave trace if their emotions behind their code

Such a non-tech keynote mays sound as a dissonance at first. Especially when scheduled as a C++ conference main event. However, it had a huge impact on me. I did not leave my sit with a new C++ trick in mind, nor ideas of software design fusing, but with a deep feeling that this talk will change the way I work forever.

The key point of this was to replace feeling such as fear, arrogance, selfishness and lazyness by confidence, humbleness, generousity, and proactivity. It's all about minimalism in code : Take time to clean up, get ride of things you don't need anymore like comments or bad patterns.

The goal here is to make anybody on your team, including yourself, happy to deal with code.

Hana Dusíková - A state of compile-time regular expression

C++ TMP is one of my favorite topic, so I naturally had a great time attending to Hana Dusikova's keynote about compile-time regular expression in C++.

In a nutshell, her talk was about elegance in C++.

Her base postulat is the following :

  • Interpreting REs at runtime have a large impact on performances.

And there's only a small room for optimization. From a programmer perspective, REs are both deterministic and finite state machines. Sounds familiar right ? This is a perfect case for compile-time implementation of DFSM (deterministic finite state machine).

This is why she created a compile-time RE library : CTREv2, which is available on GitHub.

In this talk, she described how users can use her library in order to simply create a deterministic finite state automaton (DFSA) at compile-time from an RE string.

The result C++20 syntax is gorgeous : simple, intuitive and clear.
(see CTREv2 repo's Readme.md for more):

std::optional<std::string_view> extract_number(std::string_view s) noexcept {
	if (auto m = ctre::match<"[a-z]+([0-9]+)">(s)) {
        return m.get<1>().to_view();
    } else {
        return std::nullopt;
    }
}

Her previous talk on the same topic at Meeting C++ 2018 is available here on youtube.

Workshop : Preparing your recruitment tests

After the lunch break, which was the opportunity to discuss with interesting peoples, I was curious to attend to a workshop about recruitment tests.

This is a well-known topic for most developpers, as we all already passed a ton of test.

There, I had an obvious but definitly appropriate advice : relax, and have some sleep.

Odin Holmes - Tacit DSL All the Things

DSL stands for domain specific language.

In this keynote, Odin makes us wonder about language fundamentales. How to express ourselves, and use declarative composition as a synthax evolution.

Honestly, this talk was really cool. Also, it made my brain melt.

A similar talk is available here on Youtube, from Aspen's C++ Now 2019.

Ben Deane - Identifying Monoids: Exploiting Compositional Structure in Code

Ben introduce his keynote with a simple though : every brain is different, and as developpers we all have a different sens of pattern recognition. This may be call "instinct".

His goal here is to show us a lot of code example, so we can get accomodated to spot monoids in our codebase, during code review for instance.

A part I particulary appreciated was about the usage of monoidal struture in distributed computation.

A similar talk is available here on Youtube, from Aspen's C++ Now 2019.

A few more words

Once again, I'd like to thanks everyone who attended this first CPPP conference : speakers, developers, and volunteers. I can't wait for the next one !

I met great people, old friends and new ones.

Also, I'd like to have some words of encouragement for the CppFrug staff that I working on the Youtube channel : I hope all keynotes videos will be available soon !

CppFrUG links :

By Guillaume "Guss" Dua

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment