Хотите освоить среду выполнения wasm/wasi и запускать серверные приложения без привязки к операционной системе?
Присоединяйтесь к нашему бесплатному уроку «Wasm на сервере для высоконагруженных систем».
Дата: 09.04 в 20:00 мск
На уроке вы узнаете:
- Основы компиляции приложений в WebAssembly из различных технологий разработки: tinygo, emscripten, cargo.
- Как использовать Docker и NGINX Unit для публикации ваших wasm-приложений.
- Подключение wasm к envoy и публикация как функций в knative.
- Инструменты отладки и оценки производительности опубликованных wasm-приложений с использованием wzprof.
Не упустите возможность погрузиться в мир WebAssembly и трансформировать свою разработку серверных приложений!
После вебинара можно записаться на курс «Highload Architect» от Otus. Курс доступен для приобретения в рассрочку.
Пройдите короткий тест и начните обучение бесплатно: https://vk.cc/cvZDwk
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
💡 Разрабатываешь на C++? Освой кроссплатформенную разработку на QT и ОС Аврора
Вкладывай в перспективу - вкладывай в себя!
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvVFsN
🎁 А еще OTUS празднует День Рождения! Дарим вам промокод 7YEARS -15% на оплату любого курса до 07 апреля 2024.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❓ Хотите познакомиться с разработкой на Unreal Engine 5 и попробовать себя в роли разработчика игр?
Отус приглашает 10 апреля в 20:00 по мск на бесплатный вебинар по созданию игрового шутера на Unreal Engine 5 «Создаём шутер от первого лица на Unreal Engine 5. Создание проекта, игровой сцены, игровые ассеты и анимации»!
Вебинар является бесплатной частью полноценного онлайн-курса «Unreal Engine Game Developer. Basic».
На вебинаре вы вместе с опытным экспертом:
✅ создадите проект и игровую сцену;
✅ импортируете игровые ассеты и анимации для вашего шутера;
✅ подготовите UI: уровень здоровья и боеприпасов.
➡️ Регистрация на вебинар: https://vk.cc/cvTXxc
Основные темы открытого урока:
- Создание уровня игры
- Импорт моделей и анимаций
- Настройка анимаций
- Создание простейшего UI
✨ Не переживайте, если вы пропустили первый вебинар, после регистрации на второй, вам будет доступна запись первого вебинара, которую вы сможете посмотреть на странице курса.
После вебинара вы сможете продолжить обучение на специальных условиях и получить видеокурс по программированию на С++ в подарок.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Инструменты и библиотеки для создания собственного игрового движка на C++
Вы хотите узнать больше об игровых движках и написать их самостоятельно? Это здорово! Чтобы помочь вам на этом пути, вот некоторые рекомендации по библиотекам и зависимостям C++, которые помогут вам начать работу.
https://pikuma.com/blog/how-to-make-your-own-cpp-game-engine
#cpp #programming
👉 @cpp_lib
Алгоритмы на С/С++
Задача о Ханойской башне
Быстрая сортировка (quick sort)
Бинарный поиск в отсортированном массиве
Сортировка методом выбора
Сортировка методом пузырька
Минимизация просмотров в методе сортировки пузырьком
Модифицированный метод пузырька
Сортировка методом вставок
Шейкер - сортировка
источник
#cpp #programming
👉 @cpp_lib
📚Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20
Автор: Adrian Ostrowski (2021)
Для начала вы познакомитесь с архитектурными концепциями, включая устоявшиеся паттерны и новые тенденции. Затем книга объяснит, что такое архитектура программного обеспечения, и поможет вам изучить ее компоненты. Далее вы познакомитесь с концепциями проектирования, связанными с архитектурой приложений, и паттернами разработки программного обеспечения, а затем узнаете, как создавать, упаковывать, интегрировать и развертывать свои компоненты. В заключительных главах вы изучите различные архитектурные качества, такие как ремонтопригодность, возможность повторного использования, тестируемость, производительность, масштабируемость и безопасность. Наконец, вы получите представление о распределенных системах, таких как сервис-ориентированная архитектура, микросервисы и cloud-native.
#cpp #programming
👉 @cpp_lib
🦾 Изучите Qt Remote Objects и межпроцессное взаимодействие для старта работы в кроссплатформенной разработке
🎙 Ждём вас на бесплатном практическом уроке от OTUS, спикер Владимир Щелов — ведущий разработчик в 1С.
На вебинаре:
- поговорим про механизм Qt Remote Objects;
- разберем его работу на примере;
- освоим удобный механизм организации межпроцессного взаимодействия, доступный на Qt;
- научимся пользоваться им на конкретном примере.
Встречаемся 2 апреля в 19:00 мск в рамках курса «Разработка прикладного ПО на Qt и ОС Аврора». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvJYMIРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
🔥 Освой актуальные инструменты разработки на С++
Пройди тест по C++ и проверь подходит ли тебе наш курс
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvHNq8Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
C++: Эмулятор NES с нуля
#1: Bitwise Basics & Overview
#2: The CPU (6502 Implementation)
#3: Buses, RAMs, ROMs & Mappers
#4: PPU - Background Rendering
#5: PPU - Foreground Rendering
#6: APU - Sounds, Beeps & Bloops
#7: More About Mappers
источник
#cpp #programming
👉 @cpp_lib
📚C++ Standard Library Quick Reference
Авторы: Marc Gregoire, Peter Van Weert (2016)
Стандартная библиотека шаблонов является жемчужиной языка программирования С++ и содержит основные алгоритмы, структуры данных и функции, необходимые для повседневной работы. Обычно она изучается в конце любого руководства по С++, однако этот справочник направлен исключительно на изучение STL, рассматривая основные темы, такие как контейнеры, лямбда-выражения, указатели и функции по работе с многопоточностью.
В книге рассматриваются следующие темы:
✔️ математические функции;
✔️ контейнеры;
✔️ алгоритмы;
✔️ потоки ввода/вывода;
✔️ строки;
✔️ многопоточность.
#cpp #programming
👉 @cpp_lib
💡 Разрабатываешь на C++? Освой кроссплатформенную разработку на QT и ОС Аврора
❗️ Вкладывай в перспективу - вкладывай в себя!
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvBd8i
Курс доступен в рассрочку.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📚Expert C++: Become a proficient programmer by learning coding best practices with C++17 and C++20's latest features
Авторы: Vardan Grigoryan, Shunguang Wu (2020)
Язык C++ развивался на протяжении многих лет, и сейчас доступна его последняя версия - C++20. Начиная с C++11, C++ постоянно расширяет набор функций языка. В новой версии вы познакомитесь с такими возможностями, как концепции, модули, диапазоны и корутины. Эта книга станет вашим путеводителем в изучении тонкостей языка, методов, инструментов C++ и новых возможностей, появившихся в C++20, а также поможет вам применить их при создании современного и отказоустойчивого программного обеспечения.
#cpp #programming
👉 @cpp_lib
Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow
Раз уж Вы заинтересовались данной статьёй, то ожидается, что Вы умеете программировать на с++ с использованием библиотеки Qt и разрабатывать нейросети на Python c использованием библиотеки tensorflow.
Соответственно остаётся только понять как использовать обученные Вами нейросетевые модели в Qt проектах.
https://habr.com/ru/articles/719888/
#cpp #programming
👉 @cpp_lib
👩💻 Как прокачать свои скиллы в разработке на С++?
Прийти на бесплатный практический урок «Атомарные типы данных и Memory Ordering» от OTUS.
На вебинаре:
🔹 поговорим о типах данных в C++, для которых не нужна дополнительная синхронизация при конкурентом доступе;
🔹 разберемся, как С++ помогает тонко оптимизировать lock-free разработку с помощью memory ordering.
Встречаемся 28 марта в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvxvCyРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Применяем стандартные алгоритмы в C++. Семь примеров
Меня зовут Николай, я разработчик С++ в SimbirSoft. В этой статье я хочу поделиться своим опытом применения алгоритмов.
Каждый из нас знает, что существуют алгоритмы стандартной библиотеки, и что они делают. Но не все и не всегда используют их. Я тоже их не использовал до той поры, пока не узнал, когда их применять.
Все примеры взяты из реального проекта. Чтобы не загромождать примеры, код этих функций был упрощён для лучшего восприятия.
Прежде чем перейти к примерам, необходимо отметить основное преимущество алгоритмов: они позволяют упростить код и повысить читаемость (или самодокументирование, которое позволяет на основании названия алгоритма понять, что делается), обобщить код. Начиная с C++17, алгоритмы могут выполняться параллельно, реализация алгоритма может быть жестко с оптимизирована компилятором по сравнением с обычным кодом.
https://habr.com/ru/companies/simbirsoft/articles/804675/
#cpp #programming
👉 @cpp_lib
📚Professional C++, 5 ed.
Marc Gregoire (2021)
Description: Professional C++, 5th Edition raises the bar for advanced programming manuals. Complete with a comprehensive overview of the new capabilities of C++20, each feature of the newly updated programming language is explained in detail and with examples. Case studies that include extensive, working code round out the already impressive educational material found within.
#cpp #programming
👉 @cpp_lib
CMAKE TUTORIAL
EP 1 | Understanding The Basics
EP 2 | Libraries | Installing | Pairing with Executables | RE-DONE!
EP 3 | Git Submodules (adding glfw windowing library example)
EP 4 | Versioning Source Code
EP 5 | Making Libs Optional
EP 6 | Installing Your Software! (part 1/2 of install)
EP 7 | Installing With CPack! (part 2/2 of install)
EP 8 | find_library(...) (part 1/2 of find lib)
EP 9 | find_package modules and config options (2/2 of find libs)
EP 10 | Running CMake on Windows (like linux) (Over-explained)
источник
#cpp #programming
👉 @cpp_lib
👩💻 Изучите Контейнеры STL для профессиональной разработки на С++
Ждём вас на бесплатном практическом уроке от OTUS.
Стандартная библиотека C++ предоставляет набор контейнеров данных для большинства сценариев хранения, преобразования и индексирования. На вебинаре рассмотрим устройство и подход выбора используемых контейнеров.
Встречаемся 11 апреля в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvSTLaРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Практика языка C.
Константин Владимиров.
На этом занятии мы завершим первый семестр знакомства с основами языка C и разберём многомодульные программы и структуры данных.
00:00 Хеш-таблицы.
15:10 Алгоритм Рабина-Карпа.
22:30 Range-based queries и снова о деревьях.
29:42 Многомодульные программы.
36:30 Структуры данных.
42:40 Литература и задачи.
44:45 Демонстрация многомодульных программ.
источник
#cpp #programming
👉 @cpp_lib
6 невозможных вещей - Кевлин Хенни - Открытие Keynote Meeting C++ 2023
"Иногда я верю в шесть невозможных вещей до завтрака", - сказала Королева Алисе во время ее приключений через зазеркалье. Всего шесть? В разработке программного обеспечения мы постоянно верим в невозможные вещи, независимо от времени суток! Однако в этом докладе мы рассмотрим шесть конкретных невозможных вещей, которые определяют границы наших возможностей, начиная с мельчайших деталей представления целых чисел и заканчивая минным полем оценки задач и расстановки приоритетов, неопределенностью распределенных систем и пределами вычислимости. Как только мы узнаем свои пределы, мы сможем работать в их рамках, создавая решения, а не проблемы.
источник
#cpp #programming
👉 @cpp_lib
📚Beginning C++20: From Novice to Professional
Авторы: Ivor Horton, Peter Van Weert (2020)
Начните с изучения основ программирования, продвигаясь через пошаговые примеры, которые помогут вам стать опытным программистом на C++. В эту книгу включены новые возможности стандарта C++20, такие как модули, концепты, диапазоны и spaceship operator. Все языковые концепции, которые объясняются в книге, проиллюстрированы примерами рабочих программ, а все главы включают упражнения, которые помогут вам проверить и попрактиковать свои умения. Для всех примеров из текста и решений упражнений предусмотрена бесплатная загрузка исходного кода.
Во время чтения книги вы:
✔Начнете программировать со стандартом C++20;
✔Изучите работу с массивами и циклами, указателями и ссылками, строками и т. д.;
✔Напишете свои собственные функции, типы и операторы;
✔Откроете для себя основы объектно-ориентированного программирования;
✔Используете перегрузку, наследование, виртуальные функции и полиморфизм;
✔Напишете общие шаблоны функций и классов и сделаете их безопасными;
✔Изучите все тонкости контейнеров, алгоритмов и диапазонов.
#cpp #programming
👉 @cpp_lib
Dangerous Dave
Серия видеороликов, показывающих начинающим программистам, как воссоздать Dangerous Dave с помощью C и SDL (2 часа)
источник
#cpp #programming
👉 @cpp_lib
Устал писать тесты с кучей моков? Сложно поддерживать приложение, ведь бизнес логика перемешалась с инфраструктурой? 😰
Присоединяйся к нашему практическому курсу по Domain Driven Design, где за 10 вебинаров мы разложим все по полочкам.
🚀Стартуем 1 апреля. Присоединяйся прямо сейчас https://microarch.ru/courses/hexagonal-architecture?utm_source=posev&utm_medium=erid:2VtzqwtV8Fo&utm_campaign=10
Наш курс по Domain-Driven Design позволит вам изучить основы и принципы этого подхода, а также освоить практические навыки, необходимые для успешного применения DDD в реальных проектах. Вы узнаете:
✅ Что такое Domain-Driven Design и почему он так важен для современных разработчиков.
✅ Основы проектирования доменов и формирование предметной области.
✅ Принципы и методы моделирования предметной области, включая разработку моделей предметной области и определение бизнес-правил.
✅ Создание эффективных и масштабируемых сервисов с использованием DDD.
✅ Применение шаблонов проектирования и принципов DDD для оптимизации кода и повышения производительности.
Курс ведет действующий архитектор и разработчик Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.
Не упусти шанс стать экспертом! Присоединяйся к нашему курсу и раскрой свой потенциал в разработке успешных проектов уже сегодня https://microarch.ru/courses/hexagonal-architecture?utm_source=posev&utm_medium=erid:2VtzqwtV8Fo&utm_campaign=10
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwtV8Fo
Автоматическая Генерация Конфигураций для Make Сборок
При разработке программного обеспечения (особенно для микроконтроллеров) рано или поздно придется столкнуться с тем, что надо как-то передавать конфигурации для данного программного проекта.
В своем опыте я пришел к выводу, что с точки зрения масштабирования кодовой базы, конфиги проще всего передавать через переменные окружения. Да.. Плюс в том, что переменные окружения можно определять прописывая прямо в скриптах (Make, CMake и т.п.).
Выглядит это так. У каждой сборки есть файл config.mk в котором перечислены программные компоненты из которых должна собираться эта конкретная сборка. Содержимое этого файла обычно выглядит так.
https://habr.com/ru/articles/798213/
#cpp #programming
👉 @cpp_lib
Отладка C при помощи пакета Cosmopolitan Libc
Cosmopolitan Libc предоставляет набор отладочных возможностей, повышающих удобство разработки на C: трассировка вызовов функций, интеграция с gdb, среда выполнения ASAN/UBSAN и многое другое! На C написано много быстрого и критически важного кода. Если вы пользуетесь программами, написанными на C, если вам приходится предусматривать интерфейсы для работы с библиотеками на C, исправлять баги в коде на C, либо даже переписывать имеющуюся на С программу на каком-то другом языке, то именно этот инструмент помогает понять, что делается в вашем коде на C. Отладка – это не просто россыпь инструкций printf. В этом посте будет рассмотрено, как Cosmopolitan Libc помогает наверняка и как следует отлаживать код C. Все примеры находятся в этом репозитории.
https://ahgamut.github.io/2022/10/23/debugging-c-with-cosmo/
#cpp #programming
👉 @cpp_lib
Words counter benchmarks
Это серия все более производительных "счетчиков слов" (не вычурных, просто разделяющих "слова" пробелами), реализованных с использованием возможностей Modern C++20, таких как span, string_view, filesystem, ranges и других.
При необходимости используются параллельные хэш-карты и другие зависимости, такие как контейнеры Abseil, Boost.Future (допускающие продолжения) или Asio с корутинами C++20.
https://github.com/germandiagogomez/words-counter-benchmarks-game
#cpp #programming
👉 @cpp_lib
❓Хотите с нуля освоить разработку игр или сменить сферу на геймдев?
Отус приглашает 27 марта в 20:00 по мск на бесплатный вебинар по Unreal «Создаём шутер от первого лица на Unreal Engine 5»!
Вебинар является частью полноценного онлайн-курса «Unreal Engine Game Developer. Basic».
На вебинаре вы узнаете об отличиях и преимуществах движка Unreal Engine 5, установите его и научитесь базово ориентироваться в его интерфейсе.
➡️ Регистрация на вебинар: https://vk.cc/cvzl6x
Основные темы вебинара:
✔️ Что такое игровой движок
✔️ Основные отличия и преимущества Unreal Engine 5
✔️ Установка и настройка Unreal Engine 5
✔️ Подбор ассетов из маркетплейса
✔️ Создание проекта
Не упустите свою возможность, попробовать себя в роли разработчика игр на Unreal Engine!
После вебинара вы сможете продолжить обучение на специальных условиях и получить видеокурс по программированию на С++ в подарок.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Рефакторинг с использованием C++17 std::optional
Существует множество ситуаций, когда вам нужно выразить, что что-то является "необязательным" - объект, который может содержать значение или нет. У вас есть несколько вариантов реализации такого случая, но в C++17 появился, пожалуй, самый полезный способ: std::optional.
Сегодня я подготовил один пример рефакторинга, где вы можете научиться применять эту новую возможность C++17.
https://www.cppstories.com/2018/04/refactoring-with-c17-stdoptional/
#cpp #programming
👉 @cpp_lib
Развлечения с gRPC и C++
Погружение в асинхронные серверы и клиенты с использованием C++ и gRPC в 2023 году
Почему я пишу эту серию статей? Так получилось, что я хочу использовать gRPC в своем будущем DNS-сервере.
В прошлом я уже использовал gRPC - с большим трудом. В этот раз я посмотрел несколько примеров и сделал что-то вроде реализации - но понял, что это дерьмо. К тому же было слишком много вещей, которых я не знал и не понимал, чтобы исправить это. Поэтому я решил потратить некоторое время на игру с gRPC, чтобы лучше понять его.
https://lastviking.eu/fun_with_gRPC_and_C++/
#cpp #programming
👉 @cpp_lib