— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Рубрика «c++» - 20
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный кодВведение в программирование: заготовка игры-платформера на SDL в 300 строк C++
2021-09-19 в 15:21, admin, рубрики: c++, Программирование, программирование для начинающих, разработка игрЭтот текст предназначен для тех, кто только осваивает программирование. Я читаю лекции по C++ на первом курсе местного университета, и в качестве практикума предлагаю запрограммировать любую игру (не выношу проектов типа "софт бронирования книг в местной библиотеке"). Соответственно, чтобы помочь начинающим, я сделал некоторое количество заготовок, с которых можно стартовать свой проект. Например, заготовку олдскульного 3д шутера в 486 строк C++ я уже описывал, а вот тут можно посмотреть, что из неё сделали первокурсники.
В этот раз всё будет ещё проще, я хочу сделать заготовку под простейший платформер, вот так выглядит результат:
На данный момент проект содержит менее трёхсот строчек цпп:
ssloy@khronos:~/sdl2-demo/src$ cat *.cpp *.h | wc -l
296
Мой опыт показывает, что просто выложить код заготовки недостаточно. Нужно детально описать, как именно я пришёл к такому коду, ведь самый главный навык программиста — это суметь разбить сложную задачу на некоторое количество более простых подзадач, каждая из которых решается легко.
Итак, поехали!
Недавно я решил написать свою собственную реализацию длинной арифметики для C++. Делал просто для себя, ибо эта тема мне кажется довольно интересной. Поставил перед собой следующие задачи:
-
Реализация должна быть шустрой. Я, к сожалению, пока не обладаю знаниями высшей математики, но пользоваться интернетом умею и постарался интегрировать в программу все, что только смог найти.
-
Реализация должны быть экономна к памяти. Даже по-настоящему большие числа должны влезать в разумные пределы памяти.
Как я портировал DOS игру
2021-09-15 в 6:17, admin, рубрики: Bedlam 2, C, c++, dos, ассемблер, реверс-инжинирингВведение
Любопытные извращения из мира IT, или зачем мы JS в C++-код вкомпилили
2021-09-14 в 20:06, admin, рубрики: Blink, c++, javascript, svg, ttf, V8, браузеры, ненормальное программирование, Программирование, С++Осваиваем новую базу кода: анализируем программу nginx
2021-09-12 в 10:00, admin, рубрики: c++, nginx, ruvds_перевод, Блог компании RUVDS.comВ разработке nginx
участия я никогда не принимал, так как мой навык работы в Си находится где-то на уровне 1/10. Однако меня не страшит идея скачать исходный код, разобрать его, скомпилировать и запустить. Цель этой статьи помочь и вам преодолеть собственный страх проделать то же самое. Читать полностью »
Создаем новое ключевое слово в C++
2021-09-04 в 16:37, admin, рубрики: c++, clang, LLVM, КомпиляторыC++ - один из языков, который можно назвать "легендарным". Его история насчитывает несколько десятилетий, принципы программирования на нем революционным образом менялись не раз, а черновик стандарта уже разросся до 1800+ страниц мелкого шрифта.
Создание контроллера вторичных часов “Воронеж”
2021-08-30 в 9:00, admin, рубрики: arduino, c++, diy или сделай сам, ruvds_статьи, Блог компании RUVDS.com, ненормальное программирование, программирование микроконтроллеров, сигналы, Часы, часы воронежМногие из вас на предприятиях и иных объектах бывшего СССР встречали зелёные сегментные часы. Были самостоятельные устройства, типа “Электроника-7”, но так же существовали и вторичные, как в предыдущем посте, только более сложного строения — часы семейства “Воронеж”. Они также включались в единую часовую сеть предприятия и показывали то время, которое передавалось от главных первичных часов по проводам.
Решил разобраться, как же это работало, и самостоятельно собрать первичные часы. Из-за отсутствия документации, информации по данной теме, а также живых первичных часов — это превратилось в настоящий квест, реверс-инжиниринг, навязчивую идею, боль страдание и бессонные ночи с кодом и осциллографом в обнимку.
Тем не менее, я смог их победить, и могу теперь рассказать, как же они работают и поделиться кодом своего проекта.Читать полностью »
Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1-PC) для IDA Pro
2021-08-20 в 5:27, admin, рубрики: C, c++, disassembler, ida pro, дизассемблер, Программирование, разработка игр, реверс-инжиниринг, хоррорыВсем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.
В качестве кода, который требуется дизасемблировать, будет выступать код виртуальной машины из очень крутого хоррора, который выходил сначала на SNES, потом на PS1, PC и Wonderswan - "Clock Tower - The First Fear". В игре имеется 9 концовок (sic!), атмосфера гнетущая, а в качестве главного злодея выступает "Scissorman" (человек с руками-ножницами). Заинтересовал? Тогда добро пожаловать...Читать полностью »