C++ CoreHard Spring 2017 Conference

C++ CoreHard Spring 2017 – очередная конференция для C++ разработчиков.

Организаторами выступает сообщество CoreHard.by, объединяющее не только С++ разработчиков, но и тех, кто интересуется С, ассемблером, промышленными контроллерами и высоконагруженными серверными решениями.

Хотите выступить с докладом? Оставляйте заявку

#CoreHardBy

Выступают

Программа

  • 11:00 - 11:10

    Открытие

  • 11:10 - 12:00

    Considerations for choosing the parallel computing strategy that fits your needs

    Dori Exterman

    Multi-core architecture is the present and future way in which the market is addressing Moore’s law limitations. Multi-core workstations, high performance computers, GPUs and the focus on hybrid/ public cloud technologies for offloading and scaling applications is the direction development is heading. Leveraging multiple cores in order to increase application performance and responsiveness is expected especially from classic high-throughput executions such as rendering, simulations, and heavy calculations. Choosing the correct multi-core strategy for your software requirements is essential, making the wrong decision can have serious implications on software performance, scalability, memory usage and other factors. In this overview, we will inspect various considerations for choosing the correct multi-core strategy for your application’s requirement and investigate the pros and cons of multi-threaded development vs multi-process development. For example, Boost’s GIL (Generic Image Library) provides you with the ability to efficiently code image processing algorithms. However, deciding whether your algorithms should be executed as multi-threaded or multi-process has a high impact on your design, coding, future maintenance, scalability, performance, and other factors.

    A partial list of considerations to take into account before taking this architectural decision includes:
    - How big are the images I need to process
    - What risks can I have in terms of race-conditions, timing issues, sharing violations – does it justify multi-threading programming?
    - Do I have any special communication and synchronization requirements?
    - How much time would it take my customers to execute a large scenario?
    - Would I like to scale processing performance by using the cloud or cluster?

    We will then examine these issues in real-world environments. In order to learn how this issue is being addressed in a real-world scenario, we will examine common development and testing environments we are using in our daily work and compare the multi-core strategies they have implemented in order to promote higher development productivity.

  • 12:10 - 13:00

    C++ 17 сейчас

    Игорь Садченко

    Недавно работы комитета по стандартизации WG21 были завершены, и документ-черновик C++17 был отправлен на рассмотрение в Международную организацию по стандартизации (ISO). С этого момента технически можно считать, что стандарт C++17 у нас есть. Если вы ещё ознакомились с принятыми изменениями, то сейчас для этого самое время. В докладе будет сделан обзор нововведений. Рассмотрено текущее состояние дел у популярных компиляторов с поддержкой С++17.

  • 13:10 - 14:00

    Асинхронность и сопрограммы

    Григорий Демченко

    Как показывает практика, применение классического, основанного на callback’ах подхода к асинхронному программированию обычно оказывается неудобным. Для упрощения написания и поддержки сложного асинхронного кода можно использовать иной подход, основанный на прозрачном использованием сопрограмм. Он значительно сокращает объём и сложность кода, превращая его в понятный, легко читаемый и структурируемый код.

  • 14:00 - 14:30

    Кофе-пауза

  • 14:30 - 15:20

    How to make a large C++-code base manageable

    Viktor Sehr

    My talk will cover how to work with a large C++ code base professionally. How to write code for debuggability, how to work effectively even due the long C++ compilation times, how and why to utilize the STL algorithms, how and why to keep interfaces clean. In addition, general convenience methods like making wrappers to make the code less error prone (for example ranged integers, listeners, concurrent values). Also a little bit about common architecture patterns to avoid (virtual classes), and patterns to encourage (pure functions), and how std::function/lambda functions can be used to make virtual classes copyable.

  • 15:30 - 16:20

    Continuous Integration для C++ разработчика

    Павел Филонов

    В головах разработчиков бытует мнение, что их работа заканчивается после того, как они закомитили код, а весь остальной процесс их вовсе не касается. Взамен такого устаревшего мнения мы выдвинем свой тезис - тот факт, что код сбирается на машине разработчика не интересует никого! Наша цель - сделать следующий шаг навстречу непрерывной интеграции (CI, англ. Continuous integration) и автоматизировать разрешение зависимостей, сборку и модульное тестирование под все целевые платформы.

  • 16:30 - 17:20

    Как за час сделать недельную работу

    Антон Полухин

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

  • 11:00 - 11:10

    Открытие

  • 11:10 - 12:00

    Considerations for choosing the parallel computing strategy that fits your needs

    Dori Exterman

    Multi-core architecture is the present and future way in which the market is addressing Moore’s law limitations. Multi-core workstations, high performance computers, GPUs and the focus on hybrid/ public cloud technologies for offloading and scaling applications is the direction development is heading. Leveraging multiple cores in order to increase application performance and responsiveness is expected especially from classic high-throughput executions such as rendering, simulations, and heavy calculations. Choosing the correct multi-core strategy for your software requirements is essential, making the wrong decision can have serious implications on software performance, scalability, memory usage and other factors. In this overview, we will inspect various considerations for choosing the correct multi-core strategy for your application’s requirement and investigate the pros and cons of multi-threaded development vs multi-process development. For example, Boost’s GIL (Generic Image Library) provides you with the ability to efficiently code image processing algorithms. However, deciding whether your algorithms should be executed as multi-threaded or multi-process has a high impact on your design, coding, future maintenance, scalability, performance, and other factors.

    A partial list of considerations to take into account before taking this architectural decision includes:
    - How big are the images I need to process
    - What risks can I have in terms of race-conditions, timing issues, sharing violations – does it justify multi-threading programming?
    - Do I have any special communication and synchronization requirements?
    - How much time would it take my customers to execute a large scenario?
    - Would I like to scale processing performance by using the cloud or cluster?

    We will then examine these issues in real-world environments. In order to learn how this issue is being addressed in a real-world scenario, we will examine common development and testing environments we are using in our daily work and compare the multi-core strategies they have implemented in order to promote higher development productivity.

  • 12:10 - 13:00

    Модульность и управляемая многопоточность встраиваемых С++ приложений - трудности, проблемы, решения

    Василий Вяжевич

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

  • 13:10 - 14:00

    Применение фреймворка GStreamer в системе видеонаблюдения

    Пётр Мороз

    Я хочу рассказать о фреймворке GStreamer, который предназначен для обработки аудио/видеоданных. А также для чего мы его использовали в одном из наших проектов.

  • 14:00 - 14:30

    Кофе-пауза

  • 14:30 - 15:20

    Boost.Algorithm: что, зачем и почему

    Александр Зайцев

    В стандартной библиотеке <algorithm> есть много очень полезных для повседневной работы алгоритмов, и с каждым новым стандартом их количество увеличивается. Но всегда чего-то не хватает. Мы поговорим, как тут может помочь Boost.Algorithm, что есть полезного в этой замечательной библиотеке и немного окунёмся в процесс разработки библиотеки в Boost.

  • 15:30 - 16:20

    Работа с реляционными базами данных в C++

    Николай Гродзицкий

    Поговорим в первую очередь о библиотеках, которые унифицируют работу с различными БД: Oracle, MSSQL, Postgres, MySQL и др. Я поделюсь своим опытом работы с некоторыми из них. А также посмотрим, что может нас ожидать в будущем в плане работы с SQL базами данных.

  • 16:30 - 17:20

    Охота за менеджером пакетов в С++

    Иван Сидоров

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

Организаторы

  • Corehard.by

Партнеры

  • DPI Solutions
  • Awem Games
  • SolarWinds
  • Apalon
  • EPAM
  • IncrediBuild
  • JetBrains
  • C++ User Group Russia
  • PVS-Studio
  • IT-academy
  • eventspace.by

Инфопартнеры

  • Kaspersky Lab
  • dev.by
  • Imaguru
  • IBA Institute
  • comaqa.by
  • itstep.by
  • gamedev.by
  • javaday.by
  • conf.cocoaheads.by/
  • ITVDN
  • HotWork
  • trud.com
  • avradays.com
  • vse-kursy.by