Main studio
Opening of C++ Russia 2022 Conference
We will talk about the schedule, sessions, and share the information. Join the broadcast to find out what's on the air soon!
Start of main content
The time in the program is for your time zone ().
Main studio
We will talk about the schedule, sessions, and share the information. Join the broadcast to find out what's on the air soon!
Talk
An overview of actual for today Soviet achievements in the fields of compilation, metacomputation and program synthesis.
RTU MIREA
Main studio
C++ is written in very different fields - with different requirements, peculiarities, and complexities. And if you're not involved in ML, you may have a rather vague idea of how the developers' work there is different from yours. Maybe you should drop everything and go there. Or on the contrary, it's not your thing at all, and in general, C++ in this area is not long left?
Experienced people can help you figure this out. Therefore, at the conference we will talk about the peculiarities of this sphere with those who have spent more than a year in it: Ashot Vardanian, Stanislov Kirillov. And Pavel Filonov will help to lead this conversation.
Partner’s talk
Nobody likes writing a lot of if else if
code. In many languages, pattern matching exists to solve this problem.
Unfortunately, C++ only has it for std::variant
via std::visit
.
We'll discuss how to implement your own simple pattern matching solution using the example of working with AST nodes.
PVS-Studio
Talk
Denis will show how the software sees the reverser.
One of the aspects of Denis' work is the analysis of targeted malware.
Denis will focus on a couple of target malware threats in his talk. Without claiming to be an expert in development, he will offer an alternative view: from binary to source code.
Kaspersky Lab
Talk
Library of low-level universal and portable mechanism for communication between software components.
Catalyst Aerospace Technologies
Talk
This talk covers a number of interesting programming patterns using lambdas, from features that became available in C++11 all the way to techniques that will become possible in the upcoming C++23 standard.
JetBrains
Main studio
A technical interview is a complicated thing in itself, and not everyone has any idea how it goes. And when the interview is narrowly focused, it is even more so.
Egor Suvorov will conduct an interview with Anatoliy Tomilov, who will conventionally work with the algorithmic section. The goal is to show how it usually takes place, what knowledge and skills the candidate needs, and at the same time to analyze mistakes that both sides can make.
Talk
How to extend the W3C standard yourself and stop coding on HTML/JS/CSS.
Talk
In the first part of the talk, the speaker will discuss the use of cross-module analysis in well-known compilers and how it relates to Linkage Time Optimizations (LTO). The second part will cover the technical details of the system implementation. The speaker will talk about the problems and solutions his team has encountered and share ideas about some of the optimizations that can be made.
PVS-Studio
Talk
Coroutines are a powerful tool added to C++20. This time we will concentrate on the generators part of the coroutines. We'll get up to speed with how coroutines work under the hood, and then learn about the co_yield
keyword, and how simple generators and asynchronous generators conceptually work.
The time in the program is for your time zone ().
Main studio
We will talk about the schedule, sessions, and share the information. Join the broadcast to find out what's on the air soon!
Independent consultant
Talk
Many people think that wasm is only for the browser. It is not — it can be run on the backend as well. Wasm allows you to run random code in different scripting languages, like JS, Python or Lua, in a single environment and at the same time.
The talk describes all the limitations of wasm virtual machine based server applications and the related features.
Talk
The template mechanism in C++ allows you to build a library of rather complex algorithms for list processing, including element-by-element transformation, filtering, searching and sorting. The declarative style is suitable for implementing such algorithms. The method of declarative metaprogramming is demonstrated on the example of list processing.
N-able Technology
Talk
In this talk, the speaker would like to take you through the entire debugging process, starting with a program that crashes. What do we do next? Which questions do we have to ask? What information do we need? What can we do to find the cause of the crash? Which tools can help us in this quest? And last but not least, what can we do to make sure this bug never happens again?
think-cell
Partner’s BoF-session
Everyone knows about Clang and that it's nice to write your touring. But where was Clang 15 years ago? At the beginning of PVS-Studio, we had to make it work. As a result, the architecture was ambiguous. The developers will tell you how not to write frontend and how to deal with the consequences.
Main studio
A conversation in the main studio about the features of autopilots.
Talk
The speaker will talk about Abseil, Folly, GMock/GBenchmark/boost and see what the pros are and whether they should be used in 2022.
Kaspersky Lab
Talk
The talk introduces the changes that have occurred with Reflection TS: the new features and limitations that this specification brings. There will also be an opportunity to try out the new features and discuss what is still missing.
Orion Innovation (formerly MERA)
Talk
The talk discusses whether Go can be considered a "system PL" and what this means in general. There will be a chance to write a couple of simple applications and libraries which are usually written in "system PLs" and see how much you have to pay for that.
Main studio
A technical interview is a complicated thing in itself, and not everyone has any idea how it goes. And when the interview has a narrow focus, even more so.
The architectural interview (System Design) is one of the most difficult, both for the candidate and the interviewer.As part of the broadcast from the main studio, one of these interviews will be conducted by Alexander Polomodov. He will be considering a candidate for a C++ developer position in the architecture area.
Let's see how the interview usually goes, what knowledge and skills the candidate needs, and at the same time analyze mistakes that can be made by both sides.
Talk
The talk about the idea of an ideal ecosystem through an overview of several ecosystems around different operating systems. It will also be told about the new features of the Kaspersky SDK.
Kaspersky Lab
Talk
The security problem in Chromium-based browsers is errors related to the use of objects after they have been released/destroyed. MiraclePtr is being actively implemented and used to solve this problem.
Talk
Maxim will talk about how performance is optimized in ClickHouse: performance tests and practices. He will talk about the infrastructure used to analyze query performance and find places that should be optimized. Discusses the choice of data structure, libraries, writing specializations.
ClickHouse
The time in the program is for your time zone ().
Main studio
We will talk about the schedule, sessions, and share the information. Join the broadcast to find out what's on the air soon!
Playrix
Talk
An overview of the "secure by design" approach in which security is achieved by initially designing correctly. Secure by design patterns and examples of their use in C++ will be discussed.
Kaspersky Lab
Talk
Mikhail and Kristina will tell you what to do after the developer has applied all the classical optimizations, which are described in the GPGPU courses. The talk also describes several algorithms used in decompilers and their adaptation to the graphic card architecture.
Sudo
Talk
Every program may encounter errors, some originating from internal bugs in the program, others coming from the environment the program is operating in. Ignoring all errors will make the program utterly unreliable, while treating every conceivable one introduces lots of extra complexity with little benefit. At think-cell, we have been using and refining our own principled approach to error handling, which we have not seen elsewhere. This talk describes our method, so that in your next project you can write more reliable software with less effort.
think-cell Software
Main studio
C++ is written in very different fields, with different requirements, peculiarities, and complexities. And if you're not involved in mobile development, you may have a rather vague idea of how the developers' work there is different from yours. Maybe you should drop everything and go there. Or on the contrary, it is not your thing at all, and in general, the "pluses" in this area are not long left?
Experienced people can help you figure this out. So at the conference, we will talk about the specifics of this field with those who have spent more than a year in it: Vladimir Ivanov and Ruslan Morozov.
Talk
Roman will show the inner workings of the std/core language Rust, primitives and approaches that can be applied both to low-level programming (Linux kernel module, for microcontrollers) and high-level programming, including multithreading.
Parity Technologies
Talk
We show approaches to automating the analysis of problems on the example of the script library, published by the speaker in Open Source. It is intended to be used with WinDBG and GDB and helps in automating a number of routine tasks that appear when analyzing the causes of program crash both during live debugging and working with memory dumps.
Kaspersky Lab
Talk
Why is clean code still the exception and not the norm? An intriguing question I read recently. Most of the answers are so human, but also so wrong. It's them! The project managers, the junior developers...
Main studio
We take stock, remember the bright moments and talk about our plans. Join the broadcast, so you don't miss anything!
JUG Ru Group
On June 26 in St. Petersburg at the Park Inn by Radisson Pulkovskaya there will be a joint offline C++ Russia 2022 and Hydra 2022 conference day.
For your convenience, Hydra 2022 activities are tagged with #hydra_part.
The time in the program is for your time zone ().
Discussion
We will talk about the schedule, sessions, and share the information. Come to the room or join the broadcast to find out what to expect soon!
JUG Ru Group
Independent consultant
Talk
At first Taxi had a monolithic architecture, but then the monolith expanded and troubles began to arise. In his report Anton will tell you how to overcome these troubles, why you need your own framework userver and what its structure is all about.
Yandex Go
Talk
This is educational first speech. Let's see why ACID transaction properties are important and how they are implemented in distributed databases with sharding and replication. What about geo-distributed databases? Is it possible to achieve fault tolerance (high availability) and support strong consistency in such databases. What are trade offs for performance. discuss famous CAP theorem and what it means for data indexing and DB transactions.
SPBU
Main studio
The interview from C++ Russia and Hydra main studio.
Talk
SYCL memory hierarchy overview as an example of how the traditional C++ memory model interacts with heterogeneous programming.
Talk
Asynchronous replication is a well-known technique to provide an independent replica of a database for different purposes including disaster recovery, geo-replication or scaling read workload. Traditionally, a log of changes from source replica is treated as an input for target replica database. If source and target replicas are distributed databases that handle high workload, putting all updates to a single log of changes could be nearly impossible.
Yandex
Yandex
Partner’s talk
C++ developers don't like to pay for something they don't use. But there is a nuance, RTTI. As soon as you write dynamic_cast
in the code, and you have to pay for runtime type information. We will look at how you can reduce the overhead by implementing your own dynamic_cast
without RTTI.
PVS-Studio
Main studio
The interview from C++ Russia and Hydra main studio.
Yandex Go
Independent consultant
Buffet and beverages of your choosing.
Talk
IO-performance becomes increasingly important:
Stacks that were OK-ish in the past are not OK now. You can't saturate the HW IO capacity while doing context switches, wakeups in the kernel etc. So what before was an "option" is actually a MUST HAVE for most of the high performance applications.
OKTET Labs
Talk
In this talk, we cover on how to design concurrent Binary Search Trees starting from the simplest ones. Hopefully, after this talk the attendee will understand the standard tricks necessary for the implementation of Binary Search Trees. These tricks are important and can help to implement other more complex data structures.
ITMO University
Talk
Feature embedding (inlining) is an optimization that is based on the heuristics used to make the final decision about feature embedding. These heuristics are designed to make an efficient solution in the general case, but, as a consequence, can lead to far from efficient solutions in different from general cases. To solve this problem, LLVM has added support for using a machine learning model that answers the question, based on analysis of the compiled code, whether a function should be embedded into the call point in question.
In this talk, we'll look at how this mechanism for determining whether a function should be embedded using machine learning works, how it can improve your program, and what its limitations are.
Talk
Sergey will talk about C/C++ compiler and application optimization for the open and free RISC-V architecture, the new standard changing the microprocessor world. You will learn about the history of the architecture, current state and plans in the international RISC-V community, architecture support in development tools, source code and compiler optimizations and transformations, performance hints and command system extensions.
Syntacore
Main studio
The interview from C++ Russia and Hydra main studio.
Independent consultant
Talk
Developing the VK Calls desktop application was a real challenge. The team set several goals at once: to provide native builds for Windows, macOS, and Linux, to achieve maximum performance and quality, while removing the limit on the number of participants in the call. And to do all this in the shortest possible time. To do this, we had to think in advance how to cut some of the sharp corners that inevitably arise during the development in C++.
Talk
This talk will help you dive into the various algorithms that have been implemented in Java, .NET, and other runtimes. We will consider the tasks they solve and learn to understand problem areas. Also, solving certain tasks, we will create our own thread pool, after which we will achieve its maximum performance.
Speech Technology Center
Talk
This talk describes a dynamic analysis tool that allows detecting strict aliasing rules violation in C++ programs. This topic covers implementation details of this tool that is implemented as a part of LLVM infrastructure. The talk requires basic knowledge of LLVM middle-end part and common ideas of sanitizers (e.g. AddressSanitizer) implementation
Main studio
The interview from C++ Russia and Hydra main studio.
Talk
At high loads, code efficiency may be a much better investment than buying new resources. Let's look into the "under the hood" of the processor. We will see what the cache, the pipeline, the vector instructions are for, and also see what else is there. We will look at the differences between x86 and ARM. We will discuss what code should be able to get the most out of the processor and not wait for hundreds of cycles for that byte to be loaded.
Huawei
Talk
Odnoklassniki team has been developing and maintaining distributed fault-tolerant custom storages for many years. Our hot/cold blob storages provides efficient handling and processing of binary data (video, photo, music, etc.) approaching 1EB in size. Cassandra-based NewSQL supports our transactional workloads in numerous high-performance distributed clusters. Apart from custom homemade systems we have been using a fleet of deployed on-premises external products to store and deliver build and test artifacts, libraries, images, packages, logs, backups, etc. External Amazon S3 or on-premises S3 compatible storage service may fit the role of the common storage backend for all those products. S3 provides a high level object API and an evolved ecosystem of tools and SDKs for the most popular languages and platforms. In his talk Vadim will describe implementation of S3 compatible storage service based on battle-tested blob and NewSQL storages at Odnoklassniki. The talk will cover the architecture and data model, features and trade-offs, performance and optimization, some intricacies and surprises. The ideas and experience presented in the talk might be useful to designers and developers of distributed storage services, especially S3-compatible and/or Cassandra-based ones.
Odnoklassniki
Talk
Now the sequence of optimization passes is chosen with the help of peer review by the compiler developers using a certain set of benchmarks. This is a very difficult task and a huge search space that ML can help with.
Roman and Maria will consider approaches to solving this problem. They will make reviews of research papers and the tools and models used, describing their advantages and disadvantages. They will also show what practical results are achievable using machine learning to select the optimal sequence of optimization passes.
Discussion
Concurrency in theory. Concurrency in practice. Concurrency in production.
We discuss only real-world problems. Talking about upcoming innovations.
Discussion
We take stock, remember the bright moments and talk about our plans. Come to the room or join the broadcast, so you don't miss anything!
JUG Ru Group
Independent consultant
To see old friends. To discuss current problems. To come up with new ideas. To debate and just chat.