C++

  • ХабрахабрФото Мем, ставший легендой: Doom можно запустить на чем угодно

    Мем, ставший легендой: Doom можно запустить на чем угодно

    Фанаты ретро-игр не дают умирать любимым играм, делая модификации или портируя их на современные версии консолей и ПО. И особняком здесь стоит культовая игра Doom 1993 года, которую стали запускать не только на ПК и консолях, а на любых устройствах, у которых есть экран и процессор. И это стало своего рода мемом. Игра, созданная на движке id Tech 1, была…

    Читать далее »
  • ХабрахабрФото Самый простой и подробный гайд по конкурентным коллекциям в C#

    Самый простой и подробный гайд по конкурентным коллекциям в C#

    Когда несколько потоков обращаются к общим ресурсам, должна быть обеспечена потокобезопасность, чтобы избежать повреждения данных и неожиданного поведения. Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом. В рамках статьи я попробую объяснить System. Collections. Concurrent настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута…

    Читать далее »
  • ХабрахабрФото Корутины C++ для чайников: пишем асинхронный веб-клиент

    Корутины C++ для чайников: пишем асинхронный веб-клиент

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

    Читать далее »
  • ХабрахабрФото Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях

    Мобильные экранчики в ваших проектах: большой и понятный о гайд о различных дисплеях

    Пожалуй, немалая часть моих читателей так или иначе интересуется DIY-тематикой. И в различных самодельных девайсах порой есть необходимость вывести какую-либо информацию на дисплей, будь это текст, графики или даже какая-то анимация! Для разных задач существуют самые разные дисплеи и в сегодняшнем материале я хотел бы систематизировать и собрать подробнейший гайд об использовании дисплеев с нерабочих мобильных телефонов: какие бывают протоколы…

    Читать далее »
  • ХабрахабрФото Десктопное приложение с нуля на .Net и C# с помощью ChatGPT

    Десктопное приложение с нуля на .Net и C# с помощью ChatGPT

    Говорят, что нейросети скоро заменят программистов, можно будет просто ставить им задачи и они будут сами писать код. Мне захотелось проверить, насколько это возможно уже сейчас. В своей работе я довольно часто использую ChatGPT (далее в тексте буду называть его "чгпт") и по опыту знаю, что его ответы далеко не всегда адекватные, особенно если задача нетривиальная. Но поскольку я задаю…

    Читать далее »
  • ХабрахабрФото Правило 16 байт: развенчиваем миф о производительности структур в C#

    Правило 16 байт: развенчиваем миф о производительности структур в C#

    По умолчанию, при передаче в метод или при возврате из метода, экземпляры значимых типов копируются, когда как экземпляры ссылочных типов передаются по ссылке. В 2008 году была выпущена книга «Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable . NET Libraries»‎. В этой книге рекомендовалось не использовать структуры размером больше 16 байт, поскольку, очевидно, структуры большего размера копируются медленнее. Несмотря…

    Читать далее »
  • ХабрахабрФото Modbus терминал и не только

    Modbus терминал и не только

    Когда-то я активно работал с промышленным оборудованием. Часто мне приходило какое-то устройство, и оно общалось с внешним миром по волшебному протоколу Modbus. Будучи излишне уверенным в себе, для каждого такого устройства я писал свою небольшую программу для тестирования. Но спустя непродолжительное время я понял, что это очень утомительное занятие. Интерфейс взаимодействия со мной с пользователем забирал кучу времени разработки. Потом…

    Читать далее »
  • ХабрахабрФото Вороной, Манхэттен, рандом

    Вороной, Манхэттен, рандом

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

    Читать далее »
  • ЖелезоФото На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

    На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

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

    Читать далее »
  • ХабрахабрФото Следует ли проверять указатель на NULL перед вызовом функции free?

    Следует ли проверять указатель на NULL перед вызовом функции free?

    Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать. Функция free Функция free объявлена в заголовочном файле <stdlib.h> следующим образом: void free( void *ptr ); Функция освобождает буфер памяти, выделенный ранее с помощью функций malloc,…

    Читать далее »


Кнопка «Наверх»