Библиотека C/C++ разработчика
6.81K subscribers
660 photos
692 videos
8 files
943 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Download Telegram
Получите оффер Software Engineer всего за 3 дня! 🚀

Вендор и производитель IT-инфраструктуры YADRO приглашает Software Engineer на SPRINT OFFER.

Команда KVADRA OS ждёт кандидатов сразу на два направления: Linux-based (от уровня junior) и Android (уровня middle и senior).

В YADRO под брендом KVADRA ребята создают персональные устройства, а также разрабатывают собственную операционную систему kvadraOS, которая поддерживает облачное хранилище и включает множество компонентов собственной разработки — от системного ядра до приложений и сервисов.

🔵 Присоединившись к YADRO, вы станете частью большого инженерного сообщества и получите возможность влиять на продукт, работая в уникальной команде специалистов.

Читайте подробности на сайте, оставляйте заявку до 24 ноября и присоединяйтесь к команде KVADRA OSпо ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎2🫡1
Пишем игру для NES на C

Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).

Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.

Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.


https://nesdoug.com/


#cpp #programming

👉 @cpp_lib
👍132
Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

• как организовать работу с данными и загрузку обучающего датасета,

• как описать структуру нейронной сети,

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

• как организовать конвейер обучения сети,

• как использовать предобученные глубокие сети для решения задач.

https://habr.com/ru/companies/yadro/articles/800533/

#cpp #programming

👉 @cpp_lib
🎉7👍4
Компьютерное зрение на С++: подключаем ML-библиотеки и обрабатываем результаты поиска объектов

Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO и изучаю нестандартные подходы к машинному обучению: создаю ML-проекты на С++.

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

В этой статье продолжим реализацию проекта и обсудим следующие шаги:

• Как подключить к проекту библиотеки машинного обучения PyTorch и NCNN.

• Как получить модели YOLOv5 и YOLOv4 для использования на мобильном устройстве.

• Как реализовать инференс моделей для обнаружения объектов.

• Как обработать результаты работы моделей YOLO, реализовав алгоритмы Non-Maximum-Suppression и Intersection-Over-Union.

В конце сравним производительность PyTorch и NCNN и решим, какой фреймворк подойдет для задачи лучше.

https://habr.com/ru/companies/yadro/articles/856110/

#cpp #programming

👉 @cpp_lib
👍8🎉2
Компьютерное зрение на C++: пишем приложение для поиска объектов под Android

Меня зовут Кирилл Колодяжный, я пишу код на С++ для систем хранения данных в YADRO. Помимо основной работы, интересуюсь машинным обучением и его возможностями, в том числе на «плюсах». Недавно мне стало интересно разобраться, как развернуть модель компьютерного зрения на мобильном устройстве с операционной системой Android.

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

Расскажу, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4. Шаблон моего приложения пригодится тем, кто хочет проверить прототип функциональности для компьютерного зрения на С++, использующий OpenCV на Android, но не хочет глубоко погружаться в программирование под Android.

В первой части цикла мы:

• создадим проект в IDE Android Studio,

• реализуем сессию непрерывного захвата изображений камеры,

• преобразуем изображения в матрицу OpenCV, чтобы сделать дальнейшую работу удобной.

https://habr.com/ru/companies/yadro/articles/850786/

#cpp #programming

👉 @cpp_lib
👍7👏3
Space Invaders from Scratch. Part 1

В этой серии постов я собираюсь создать клон классической аркадной игры Space Invaders на C++, используя всего несколько зависимостей. В этом посте я настрою окно с контекстом OpenGL 3.3, используя GLFW и GLEW как единственные зависимости для этого простого клона.

https://nicktasios.nl/posts/space-invaders-from-scratch-part-1.html

Код к этому посту на Github

#cpp #programming

👉 @cpp_lib
👍5🥰5
Space Invaders from Scratch. Part 2

В этом посте я установлю необходимые шейдеры OpenGL, чтобы нарисовать инопланетный спрайт!

https://nicktasios.nl/posts/space-invaders-from-scratch-part-2.html

Код к этому посту на Github

#cpp #programming

👉 @cpp_lib
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Space Invaders from Scratch. Part 3

В этом посте я сделаю игровой цикл с фиксированным временным шагом, добавлю игрока и инопланетян, а также добавлю анимацию спрайтов.

https://nicktasios.nl/posts/space-invaders-from-scratch-part-3.html

Код к этому посту на Github

#cpp #programming

👉 @cpp_lib
🔥4👍2
Space Invaders from Scratch. Part 4

В этом посте я добавлю обработку ввода игрока с клавиатуры и стрельбу снарядами.

https://nicktasios.nl/posts/space-invaders-from-scratch-part-4.html

Код к этому посту на Github

#cpp #programming

👉 @cpp_lib
👍9
Space Invaders from Scratch. Part 5

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

https://nicktasios.nl/posts/space-invaders-from-scratch-part-5.html

Код к этому посту на Github

#cpp #programming

👉 @cpp_lib
👍5
Программирование на C в Linux на примере создания своей командной оболочки

Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

https://habr.com/ru/companies/timeweb/articles/839890

#cpp #programming

👉 @cpp_lib
👍4🔥3
Constexpr Game of Life

С чего все началось
В C++ уже больше 10 лет существует constexpr, который позволяет программисту ушло возложить часть вычислений на компилятор. В свое время это взорвало мне мозг, ведь компилятор может посчитать какие-то достаточно сложные вещи еще до запуска программы!

В какой-то момент я подумал: если компилятор сможет сам посчитать все за тебя, то зачем тогда тебе вообще рантайм? Что ты там будешь делать — ответ выводить что ли? Глупости какие-то. Это неспортивно.

На этом моменте и зародился мой челлендж:

"Без рук" или "даже не думай запускать exe-файл"


https://habr.com/ru/articles/860150/

#cpp #programming

👉 @cpp_lib
👍6🔥4💊1
Media is too big
VIEW IN TELEGRAM
Практика языка C.
Константин Владимиров.

На этом занятии мы завершим первый семестр знакомства с основами языка C и разберём многомодульные программы и структуры данных.

00:00 Хеш-таблицы.
15:10 Алгоритм Рабина-Карпа.
22:30 Range-based queries и снова о деревьях.
29:42 Многомодульные программы.
36:30 Структуры данных.
42:40 Литература и задачи.
44:45 Демонстрация многомодульных программ.

источник

#cpp #programming

👉 @cpp_lib
🔥6👍1
Алгоритмы на С/С++

Задача о Ханойской башне
Быстрая сортировка (quick sort)
Бинарный поиск в отсортированном массиве
Сортировка методом выбора
Сортировка методом пузырька
Минимизация просмотров в методе сортировки пузырьком
Модифицированный метод пузырька
Сортировка методом вставок
Шейкер - сортировка

источник

#cpp #programming

👉 @cpp_lib
👍7🔥3