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 …
* 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 …
Если поговорку "With great power comes a great responsibility" перевести на язык С++, то получится что-то в духе "Если для оптимизации программ вы используете низкоуровневый доступ к памяти, то вы же и отвечаете за контроль этого доступа".
Непонимание этой ответственности - причина большого набора известных уязвимостей в программном обеспечении.
Когда …
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 …
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 …
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 …
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, …
При разработке продуктов, которые содержат в себе функционал на основе машинного обучения выделяют 2 важных этапа: обучение модели и ее применение.
Для обучения модели часто используется язык Python и многочисленные фреймворки для решения задач машинного обучения.
При применении модели уже нет такой однозначности и может возникнуть необходимость проинтегрировать готовую ML …
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 …
Язык C++ меняется на глазах. Для часто возникающих на практике задач, ранее требовавших от программиста особых ухищрений, вводятся ясные и лаконичные средства либо в сам язык, либо стандартную библиотеку, или в библиотеку Boost. Обратная сторона развития языка заключается в том, что многие программисты не успевают уследить за изменениями и продолжают …
В любой большой кодовой базе можно встретить куски абсолютно непонятного кода. Как правило такой код пишется чтобы немного выиграть в производительности приложения... и как правило такой код не нужен в принципе, так как оптимизирует не то что нужно, не в том месте где это нужно и не так как надо.
В …
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 …
- 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>
- …
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 …
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 …
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 …
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 …
- 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 …
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 …
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 …
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 …
- 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 …
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 …
- 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.
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 …
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 …
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 …