Начало основного контента

Настройки

  1. . Online

    Время в программе указано для вашего часового пояса ().

    • Главная студия

      Открытие конференции C++ Russia 2022

      Язык -RU

      Говорим о расписании, сессиях и активностях. Подключайтесь, чтобы узнать, что вас будет ждать в эфире в ближайшее время!

      • Сергей Платонов
      • Юлия Головчанская
      • Павел Филонов
    • Доклад

      Автоматизация программирования в СССР: субъективный обзор незаслуженно забытых теоретических результатов

      Язык -RU

      Обзор актуальных и сегодня советских достижений из области компиляции, метавычислений и синтеза программ.

    • Главная студия

      Разговор в студии про C++ в ML

      Язык -RU

      На C++ пишут в очень разных сферах — с разными требованиями, особенностями, сложностями. И если вы не причастны к ML, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?

      Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: Ашотом Варданяном, Станисловом Кирилловым. А провести эту беседу поможет Павел Филонов.

      • Ашот Варданян
      • Станислав Кириллов
      • Юлия Головчанская
      • Павел Филонов
    • Доклад от партнера

      Pattern matching для бедных, или Пишем свой `std::visit` для AST.

      Язык -RU

      Никто не любит простыни if else if. Во многих языках для решения проблемы существует pattern matching. К сожалению, в C++ он есть только для std::variant через std::visit. Мы рассмотрим, как можно реализовать свой простой pattern matching на примере работы с узлами AST.

    • Доклад

      Взгляд с обратной стороны: как смотрит на код реверсер

      Язык -RU

      Денис покажет, как софт видит реверсер. 
      Один из аспектов работы Дениса — разбор целевых вредоносов. 
      На паре целевых вредоносов спикер и сосредоточится в выступлении. Не претендуя на экспертизу в разработке, он предлагает альтернативный взгляд — от бинарей к исходникам.

    • Доклад

      Embedded software bus: платформонезависимая библиотека публикации-подписки для встраиваемых систем реального времени

      Язык -RU

      Библиотека низкоуровневого универсального и переносимого механизма коммуникации программных компонентов между собой. 

    • Доклад

      С++ лямбда идиомы

      Язык -RU

      В этом докладе рассматривается ряд интересных паттернов программирования с лямбдами: от возможностей, которые появились в С++11, до методов, которые станут возможными в грядущем стандарте С++23.

    • Главная студия

      Техническое интервью: Алгоритмическая секция

      Язык -RU

      Техническое интервью — сложная штука сама по себе, и не все представляют, как оно проходит. А когда интервью имеет узкую направленность, то тем более.

      Егор Суворов проведет собеседование с Анатолием Томиловым, который условно будет работать с алгоритмической секцией. Цель — показать, как оно обычно проходит, какие знания и навыки нужны кандидату, а заодно разобрать ошибки, которые могут допустить обе стороны.

      • Егор Суворов
      • Анатолий Томилов
      • Юлия Головчанская
    • Доклад

      Межмодульный анализ C++ проектов

      Язык -RU

      В первой части доклада спикер рассмотрит применение межмодульного анализа в известных компиляторах и то, как он связан с оптимизациями времени связывания (LTO). Во второй части — технические подробности реализации системы. Спикер расскажет о проблемах и решениях, с которыми столкнулась его команда, а также поделится идеями о некоторых оптимизациях, которые можно сделать.

       

    • Доклад

      Учимся готовить C++ корутины на практике, часть 2: генераторы

      Язык -RU

      Корутины — мощный инструмент, добавленный в C++20. В этот раз доклад посвящен части корутин, отвечающей за генераторы. Будет рассказ о том, как работают корутины, о ключевом слове co_yield и о том, как концептуально работают простые и асинхронные генераторы.

  2. . Online

    Время в программе указано для вашего часового пояса ().

    • Главная студия

      Открытие

      Язык -RU

      Говорим о расписании, сессиях и активностях. Подключайтесь, чтобы узнать, что вас будет ждать в эфире в ближайшее время!

    • Доклад

      Запускаем почти произвольный код через WebAssembly на backend-end

      Язык -RU

      Многие думают, что wasm — это только для браузера. Это не так — его запускают и на бэкенде. Wasm позволяет запускать произвольный код на различных скриптовых языках, вроде JS, Python или Lua, в едином окружении и одновременно.

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

    • Доклад

      Декларативное метапрограммирование: обработка списков на этапе компиляции

      Язык -RU

      Механизм шаблонов в языке C++ позволяет построить библиотеку достаточно сложных алгоритмов обработки списков, включающих поэлементное преобразование, фильтрацию, поиск и сортировку. Для реализации таких алгоритмов подходит декларативный стиль. На примере обработки списков демонстрируется метод декларативного метапрограммирования.

    • Доклад

      Nobody Can Program Correctly: Lessons from 20 Years of Debugging C++ Code

      Язык -EN

      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? 

    • Доклад от партнера

      Как не надо писать фронтенд компилятора

      Язык -RU

      Все знают про Clang и что на нем приятно писать свой тулинг. Но где же был Clang 15 лет назад? На заре PVS-Studio приходилось выкручиваться. В итоге архитектура вышла неоднозначной. Разработчики расскажут вам, как не стоит писать фронтенд и как теперь бороться с последствиями.

      • Филипп Хандельянц
      • Юрий Минаев
      • Сергей Ларин
    • Доклад

      Reflection TS: будущее рефлексии в C++

      Язык -RU

      В докладе рассматриваются те изменения, которые произошли с появлением Reflection TS:  новые возможности и ограничения, которые привносит эта спецификация. Также будет возможность опробовать новинку в деле и обсудить, чего по-прежнему не хватает.

    • Доклад

      Go и мир системного программирования

      Язык -RU

      В докладе обсуждается, можно ли считать Go «системным ЯП» и что вообще под этим подразумевается. Будет возможность написать пару несложных приложений и библиотек, которые обычно пишут на «системных ЯП», и посмотреть, какую цену за это придется заплатить.

    • Главная студия

      Техническое интервью: Архитектурная секция

      Язык -RU

      Техническое интервью — сложная штука сама по себе, и не все представляют, как оно проходит. А когда интервью имеет узкую направленность, то тем более.

      Архитектурное собеседование — одно из самых сложных, как для кандидата, так и для интервьюера. В рамках эфира из главной студии одно из таких собеседований проведет Александр Поломодов. Он будет рассматривать кандидата на позицию C++ разработчика по направлению работы с архитектурой.

      Посмотрим, как обычно проходит интервью, какие знания и навыки нужны кандидату, и заодно разберем ошибки, которые могут допустить обе стороны.

      • Владимир Иванов
      • Александр Поломодов
      • Александр Воронков
    • Доклад

      Экосистема вокруг ОС: какие инструменты нужны разработчику?

      Язык -RU

      Спикер даст свой взгляд на экосистему C++ разработчика под мобильные и встраиваемые системы, расскажет о новинках в KasperskyOS SDK.

    • Доклад

      Сырые безопасные указатели в Chromium. MiraclePtr

      Язык -RU

      Проблема безопасности в браузерах на Chromium — это ошибки, связанные с использованием объектов после их освобождения/уничтожения. Для решения этой проблемы в настоящее время активно внедряется и используется MiraclePtr.

    • Доклад

      Практики оптимизации производительности на примере ClickHouse

      Язык -RU

      Максим расскажет, как оптимизируют производительность в ClickHouse: перформанс-тесты и практики. Расскажет про инфраструктуру, которая используется для анализа производительности запросов и нахождения мест, которые следует оптимизировать. Обсуждается выбор структуры данных, библиотек, написание специализаций.

  3. . Online

    Время в программе указано для вашего часового пояса ().

    • Доклад

      Безопасный дизайн на С++

      Язык -RU

      Обзор подхода «secure by design», при котором безопасность достигается путем изначально правильного проектирования. Будут рассмотрены паттерны безопасного дизайна и примеры их использования на С++.

    • Доклад

      Доклад про декомпилятор GPGPU

      Язык -RU

      Михаил и Кристина расскажут, что можно делать после того, как разработчик применил все классические оптимизации, про которые рассказывают на курсах по GPGPU. А ещё в докладе рассказывается про несколько алгоритмов, применяемых в декомпиляторах, и их адаптации для архитектуры видеокарт.

    • Доклад

      A Practical Approach to Error Handling

      Язык -EN

      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.

    • Главная студия

      Разговор о C++ в мобильной разработке

      Язык -RU

      На C++ пишут в очень разных сферах, с разными требованиями, особенностями, сложностями. И если вы не причастны к мобильной разработке, то можете иметь довольно смутное представление о том, чем работа разработчиков там отличается от вашей. Может быть, стоит бросить всё и перейти туда? Или наоборот, это совершенно не ваше, да и вообще «плюсам» в этой сфере осталось недолго?

      Разобраться в этом помогут опытные люди. Поэтому на конференции поговорим об особенностях этой сферы с теми, кто провёл в ней не один год: с Владимиром Ивановым и Русланом Морозовым.

      • Владимир Иванов
      • Руслан Морозов
      • Юлия Головчанская
    • Доклад

      Голый Rust

      Язык -RU

      Роман покажет внутреннее устройство std/core языка Rust, примитивы и подходы, которые можно применить для низкоуровневого программирования (модуля ядра Linux, под микроконтроллеры). Бонусом будет объяснение принципов работы безопасной многопоточности.

    • Доклад

      Украшаем молоток: как автоматизировать разбор проблем в дебаггере

      Язык -RU

      Спикер покажет подходы к автоматизации разбора проблем на примере библиотечки скриптов, опубликованной в Open Source. Она предназначена для использования c WinDBG и с GDB и помогает в автоматизации ряда рутинных задач, возникающих при анализе причин падения программ как при отладке вживую, так и при работе с дампами памяти.

  4. . Online + offline

    26 июня в Санкт-Петербурге в Park Inn by Radisson Pulkovskaya пройдет совместный offline‑день конференций C++ Russia 2022 и Hydra 2022.

    Для вашего удобства активности Hydra 2022 отмечены тегом #hydra_part.

    Время в программе указано для вашего часового пояса ().

      • Зал 1

        Доклад

        Открытие офлайн-части конференций C++ Russia 2022 и Hydra 2022

        Язык -RU

        Говорим о расписании, сессиях и делимся информацией. Приходите в зал или подключайтесь онлайн, чтобы узнать, что вас будет ждать в ближайшее время!

      • Зал 1

        Доклад

        Монолит vs Микросервисы, и Как эффективно работать с последними в C++

        Язык -RU

        Раньше в Такси была монолитная архитектура, но потом монолит стал разрастаться, и начались проблемы. Как эти проблемы преодолевали, к чему пришли, для чего нужен собственный фреймворк userver, а также о его устройстве — Антон расскажет в своем докладе.

      • Зал 2

        Доклад

        Distributed transactions implementation trade-offs

        Язык -RU

        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.

        • #hydra_part
      • Зал 2

        Доклад

        Parallel Asynchronous Replication between YDB Database Instances

        Язык -RU

        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. 

        • #hydra_part
      • Зал 3

        Доклад от партнера

        Есть ли жизнь без RTTI, или Пишем свой dynamic_cast

        Язык -RU

        C++ разработчики не любят платить за то, что не используют. Но есть нюанс — RTTI. Стоит написать в коде dynamic_cast, и вам приходится платить за информацию о типах на рантайме. Рассмотрим, как можно уменьшить накладные расходы, реализовав свой dynamic_cast без RTTI.

      • Обед

        Шведский стол и напитки на выбор.

      • Зал 1

        Доклад

        Файловый и сетевой стек в Userland: почему их нужно использовать в 2022 году 

        Язык -RU

        IO-перформанс становится все популярнее, и вот почему:

        • появляется больше ядер;
        • PCIe Gen3 наконец-то уступает место PCIe Gen5 и перестает быть узким местом;
        • драйверы NVMe и 200G NIC означают, что сеть становится быстрее.

        Стеки которые были «ну, ок» в прошлом — теперь не ок. Невозможно увеличивать мощность железа и в то же время заниматься переключением контекста и прочим. И то, что раньше было «одним из вариантов», сейчас то, что нужно для приложений с высокой производительностью.

      • Зал 2

        Доклад

        What about Binary Search Trees?

        Язык -EN

        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.

        • #hydra_part
      • Зал 3

        Доклад

        Использование машинного обучения для улучшения инлайнинга в LLVM

        Язык -RU

        Встраивание функций (инлайнинг) — это оптимизация, которая основана на эвристиках, использующихся для принятия итогового решения о встраивании функции. Эти эвристики призваны сделать эффективное решение в общем случае, но, как следствие, могут привести к далеким от эффективности решениям в отличающихся от общих случаев. Для решения этой проблемы в LLVM была добавлена поддержка использования модели машинного обучения, которая на основе анализа компилируемого кода отвечает на вопрос, нужно ли встраивать функцию в рассматриваемое место вызова.

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

      • Зал 3

        Доклад

        C++ компиляторы и оптимизация программ для открытой и свободной процессорной архитектуры RISC-V

        Язык -RU

        Сергей расскажет о С/C++ компиляторе и оптимизации приложений для открытой и свободной процессорной архитектуры RISC-V — новом стандарте, меняющем мир микропроцессоров. Вы узнаете об истории развития архитектуры, современном состоянии и планах развития в международном сообществе RISC-V, поддержке архитектуры в инструментах разработки, оптимизациях и трансформациях кода на уровне исходного кода и компилятора, подсказках позволяющих улучшить производительность и использовании расширений системы команд.

      • Зал 1

        Доклад

        Как упростить себе жизнь при разработке клиентского приложения на современном С++: пример VK Звонков

        Язык -RU

        Разработка десктопного приложения VK Звонки была настоящим челленджем. Команда поставила перед собой сразу несколько целей: предоставить нативные сборки под Windows, macOS и Linux, добиться максимальной производительности и качества и снять при этом ограничение на число участников в звонке. А еще сделать все это в максимально сжатые сроки. Для этого пришлось заранее продумать, как срезать некоторые острые углы, неизбежно возникающие при разработке на C++.

      • Зал 2

        Доклад

        Thread pools: variety of algorithms and features

        Язык -RU

        Доклад поможет погрузиться в различные алгоритмы, которые были реализованы в Java, .NET и прочих runtimes. Мы рассмотрим решаемые ими задачи и научимся понимать проблемные места. Решая определенные задачи, мы также создадим свой пул потоков, после чего добьемся его максимальной производительности.

        • #hydra_part
      • Зал 3

        Доклад

        Type Sanitizer: способ обнаружения нарушений правил strict aliasing в C++

        Язык -RU

        Одними из наиболее неочевидных и трудноуловимых правил стандарта языка С++ являются правила strict aliasing, которые создают множество проблем (например, таких как «каламбур типов» (type punning)). Из-за этого многие приложения собираются с опцией -fno-strict-aliasing, которая запрещает компилятору полагаться на использование этих правил. В свою очередь, это ведет к снижению производительности программ, т. к. компиляторные оптимизации, полагающиеся на анализ типов, не могут в полной мере произвести оптимизацию кода. Вместо этого было бы полезно иметь способ обнаружения нарушений strict aliasing-правил, который бы позволил избежать использования опции -fno-strict-aliasing при сборке программы.

        В данном докладе обсуждается способ динамического анализа приложений, который позволит обнаружить нарушения strict aliasing-правил, не замеченных компилятором. Данный доклад нацелен по большей части на компиляторную аудиторию, т. к. затрагивает детали реализации внутренностей LLVM.

      • Зал 1

        Доклад

        Что следует помнить C++ разработчику об архитектуре процессора

        Язык -RU

        При больших нагрузках повышение эффективности кода может оказаться куда лучшей инвестицией, чем закупка новых ресурсов. Заглянем в «подкапотное пространство» процессора. Увидим, для чего там кэш, конвейер, векторные инструкции, а также посмотрим, что там есть ещё. Разглядим отличия x86 и ARM. Обсудим, каким должен быть код, который способен выжать из процессора все соки, а не ждать сотни циклов пока загрузится вон тот байт.

      • Зал 2

        Доклад

        OK S3

        Язык -RU

        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.

        • #hydra_part
      • Зал 3

        Доклад

        Обзор последних исследований в области подбора оптимальных последовательностей оптимизационных проходов с помощью ML

        Язык -RU

        Сейчас последовательность оптимизационных проходов выбирается с помощью экспертной оценки разработчиков компилятора с использованием определенного набора бенчмарков. Это очень сложная задача и огромное пространство поиска, в решении которой может помочь ML.

        Роман и Мария рассмотрят подходы для решения этой проблемы. Сделают обзоры исследовательских работ и используемых инструментов и моделей, опишут их достоинства и недостатки. А также покажут, какие практические результаты достижимы с использованием машинного обучения для подбора оптимальной последовательности оптимизационных проходов. 

      • Зал 1

        Обсуждение

        Круглый стол. Concurrency

        Язык -RU

        Concurrency в теории. Concurrency на практике. Concurrency у нас на продакшене.

        Обсуждаем только реальные проблемы. Рассуждаем о грядущих инновациях. 

        • Ivan Prisyazhniy
        • Даниил Подольский
        • Виталий Аксенов
        • Николай Марков
        • Иван Пономарёв
        • Александр Боргардт
      • Зал 1

        Доклад

        Закрытие конференций C++ Russia 2022 и Hydra 2022

        Язык -RU

        Подводим итоги конференций C++ Russia и Hydra, вспоминаем яркие моменты и рассказываем о дальнейших планах. Заходите в зал или подключайтесь к трансляции, чтобы ничего не пропустить!

      • Нетворкинг

        Повидать старых знакомых. Обсудить актуальные проблемы. Прийти к новым идеям. Подискутировать и просто поболтать.