Workshop

Phil Nash. Accelerated TDD: For More Productive C++ [English]

30 April 2021

We all know that writing tests for our code is “what we should do”, and maybe we’re even doing that already. But it feels like extra busy-work that slows us down – and they hardly ever catch any bugs anyway…
Maybe we’ve even tried TDD, and felt that it was just …

Reindert-Jan Ekker. Python for C++ developers [English]

28 April 2021

* Abstract

This session will give a short introduction to the Python programming language from the perspective of C++ programmer.

We will go over the core Python language and compare its features with
C++. Although many things are similar, you will learn about some
interesting and surprising differences between the two languages.
Along …

Pavel Filonov. Защищая C++ [Russian]

23 April 2021

Если поговорку "With great power comes a great responsibility" перевести на язык С++, то получится что-то в духе "Если для оптимизации программ вы используете низкоуровневый доступ к памяти, то вы же и отвечаете за контроль этого доступа".

Непонимание этой ответственности - причина большого набора известных уязвимостей в программном обеспечении.

Когда …

Antony Polukhin. Quick and modern C++ [RUSSIAN]

22 January 2021

Course Description:
In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in …

Rainer Grimm. Concurrency with modern C++ [English]

21 December 2020

Date: 21.12.2020
Time: 10:00 - 19:00 (GMT+3)
Place: Zoom.
Cost:
300 BYN (till 22.11.2020)
350 BYN (till 06.12.2020)
400 BYN (till 20.12.2020)

Course Description:
This class gives you a detailed insight into the multithreading facilities of C++11, C++14, and the parallel algorithms which we got with …

Mateusz Pusz. C++ Concepts [English]

17 December 2020

Date: 17.12.2020 (transfer from 27.11)
Time: 10:00 - 19:00 (GMT+3)
Place: Zoom
Cost:
300 BYN (till 30.11.2020)
400 BYN (till 16.12.2020)
Duration: 8h

C++ Concepts is one of the most significant and long-awaited features of C++20. They improve template interfaces by explicitly stating the compile-time contract between the …

Klaus Iglberger. Modern C++ Design Patterns [English]

11 December 2020

Date: 11.12.2020
Time: 10:00 - 19:00 (GMT+3)
Place: Zoom
Cost:
300 BYN (till 22.11.2020)
350 BYN (till 29.11.2020)
400 BYN (till 10.12.2020)
Duration: 8h

Design patterns have proven to be useful over several decades and knowledge about them is still very useful to design robust, …

Pavel Filonov. Запускаем ML модели на С++ [Russian]

При разработке продуктов, которые содержат в себе функционал на основе машинного обучения выделяют 2 важных этапа: обучение модели и ее применение.

Для обучения модели часто используется язык Python и многочисленные фреймворки для решения задач машинного обучения.

При применении модели уже нет такой однозначности и может возникнуть необходимость проинтегрировать готовую ML …

Nicolai Josuttis. C++17 - The new Language and Library Features [English]

CoreHard 2018 Spring

C++17 is out for a year now and at least partially supported by Clang, GCC, and Visual Studio. While C++ is no revolution and changes the style of programming (as C++11 did), it is a remarkable collection of many many features both in the core language and the library. It …

Vadim Vinnik. Programming in C++ 11, 14, 17 in a right way: STL and language features [Russian]

CoreHard 2018 Spring

Язык C++ меняется на глазах. Для часто возникающих на практике задач, ранее требовавших от программиста особых ухищрений, вводятся ясные и лаконичные средства либо в сам язык, либо стандартную библиотеку, или в библиотеку Boost. Обратная сторона развития языка заключается в том, что многие программисты не успевают уследить за изменениями и продолжают …

Antony Polukhin. Quick and modern C++ [Russian]

CoreHard 2018 Spring

В любой большой кодовой базе можно встретить куски абсолютно непонятного кода. Как правило такой код пишется чтобы немного выиграть в производительности приложения... и как правило такой код не нужен в принципе, так как оптимизирует не то что нужно, не в том месте где это нужно и не так как надо.
В …

Pavel Filonov. Continuous integration for C++ developers [Russian]

CoreHard 2018 Autumn

And we will build our own CI with conan and travis
Introduction
Developers’ mind has a common opinion, about their work which become completed after they’ve committed the code, and what happens next – not their problem. There is a great quote by Robert Highline for that thesis:
Each person should know how …

Ivan Čukić. Advanced C++ techniques and functional programming idioms [English]

CoreHard 2018 Autumn

- Algorithms in the standard library
- Function objects in C++, callables and std::invoke
- Lazy evaluation, lazy algorithms and ranges
- Creating new language constructs on the library level
- Removing invalid program states with sum types and std::variant
- Generic programming and template constraints using void_t
- Handling errors with optional<T> and expected<T, E>
- …

Rainer Grimm. Multithreading with modern C++ [English]

CoreHard 2018 Autumn

Abstract
This class gives you a detailed insight into the multithreading facilities of C++11 and C++14, and the parallel algorithms which we got with C++17. If possible, we will have a more in-depth look into the C++ memory model consisting of the atomics and the various memory models in C++. This …

Antony Polukhin. Quick and modern C++ [Russian]

CoreHard 2018 Autumn

In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in not …

Pavel Filonov. Continuous integration for C++ developers [Russian]

CoreHard 2019 Spring

And we will build our own CI with conan and travis
Introduction
Developers’ mind has a common opinion, about their work which become completed after they’ve committed the code, and what happens next – not their problem. There is a great quote by Robert Highline for that thesis:
Each person should know how …

Mateusz Pusz. Modern C++ idioms [English]

CoreHard 2019 Spring

C++ is no longer C with classes and it never was only an Object Oriented language. C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance. Such usage requires …

Vadim Vinnik. What is used daily in C++ but still unfamiliar: rvalue references, std::move, copy elision and more [Russian]

CoreHard 2019 Spring

- Template parameter and auto type inference.
- Auto refenerces and passing arguments into a function.
- Expression categories: (gl|r|l|x|pr)-values.
- When are constructors get called and when do not.
- Tail recursion optimisation becomes possible in C++.
- Actually, std::move does not move anything.
- Constexpr vs. const.
- Smart pointers vs. raw pointers.
- Function objects …

Antony Polukhin. Quick and modern C++ [Russian]

CoreHard 2019 Spring

In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in not …

Pavel Filonov. Continuous integration for C++ developers [Russian]

CoreHard 2019 Autumn

And we will build our own CI with conan and travis
Introduction
Developers’ mind has a common opinion, about their work which become completed after they’ve committed the code, and what happens next – not their problem. There is a great quote by Robert Highline for that thesis:
Each person should know how …

Mateusz Pusz. Modern C++ idioms [English]

CoreHard 2019 Autumn

C++ is no longer C with classes and it never was only an Object Oriented language. C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance. Such usage requires …

Vadim Vinnik. What is used daily in C++ but still unfamiliar: rvalue references, std::move, copy elision and more [Russian]

CoreHard 2019 Autumn

- Template parameter and auto type inference.
- Auto refenerces and passing arguments into a function.
- Expression categories: (gl|r|l|x|pr)-values.
- When are constructors get called and when do not.
- Tail recursion optimisation becomes possible in C++.
- Actually, std::move does not move anything.
- Constexpr vs. const.
- Smart pointers vs. raw pointers.
- Function objects …

Antony Polukhin. Quick and modern C++ [Russian]

CoreHard 2019 Autumn

In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in not …

Vadim Vinnik. Compile-time computations and metaprogramming [Russian]

CoreHard 2020 Spring

- Expression categories: how not to get lost in (g?l|p?r|x)value;
- Move semantics and its alternatives (RVO, CoW);
- Function specializations for short-living objects;
- Compile-time computations with constexpr;
- Parametric polymorphism;
- Fine-tuning with property classes;
- SFINAE and pattern matching;
- Arithmetic computations on types;
- Compile-time lists processing.

Klaus Iglberger. Modern C++ Design Patterns [English]

CoreHard 2020 Spring

Design patterns have proven to be useful over several decades and knowledge about them is still very useful to design robust, decoupled systems. Modern C++, however, has profoundly changed the way we use C++, think about design and implement solutions. This hands-on training explores modern C++ design and the modern …

Rainer Grimm. Concurrency with modern C++ [English]

CoreHard 2020 Spring

Course Description
This class gives you a detailed insight into the multithreading facilities of C++11, C++14, and the parallel algorithms which we got with C++17.
Additionally, we will have a look into the C++ memory model consisting of the atomics and the various memory orders in C++. This insight will provide you …

Antony Polukhin. Quick and modern C++ [Russian]

CoreHard 2020 Spring

In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in not …