
Пошаговая инструкция по созданию отрисовываемого Qt-виджета с возможностью зума и навигации для начинающих.
Типизированный язык программирования
Пошаговая инструкция по созданию отрисовываемого Qt-виджета с возможностью зума и навигации для начинающих.
Решил вот поделится своей игрой и своими исследованиями в области психологии.
В RPG играх (например S.T.A.L.K.E.R.) есть система отношения созданная специально для взаимодействия c NPC. И тут я подумал: а что если использовать эту систему, чтобы построить полноценный психический симулятор, где можно манипулировать людьми для достижения определённого результата. В качестве простого примера я выбрал любовные треугольники: в них мужчины (или женщины) конкурируют за возлюбленн(ой/ого) и используют различные методы для расположения к себе своего партнёра. Меня они всегда интересовали потому, что это своего рода испытания для людей и почему бы не сделать игру-стратегию по ним (спасибо нейросети за гениальное название!)
На сегодняшний день существуют сотни программ для оценки производительности вычислительных устройств, но абсолютным лидером среди них несомненно является PassMark - "Industry standard benchmarking since 1998", - как его позиционирует сам разработчик, и вдобавок предоставляющего обширную публичную базу оценок производительности разнообразных устройств по всему миру для возможности их сравнения между собой. Все это делает PassMark выбором №1 для всех, кто не только желает оценить производительность своего устройства, но и сравнить его с любым другим устройством в мире.
Но что находится под капотом у легендарной программы для бенчмаркинга? В этой статье мы изучим ее алгоритмы тестирования и воспроизведем их самостоятельно на других языках программирования, чтобы иметь независимую возможность получения оценки производительности.
Знакома ли вам ситуация, когда вы внезапно оказываетесь совершенно не в состоянии объяснить какой-нибудь базовый элемент языка, с которым работаете? Вам задают простой вопрос, а вы только и можете, что сказать «ээээээээ, ну я точно не помню, мне нужно освежить знания, извините».
Не вешайте нос! Мы очень часто воспринимаем такие вещи как должное, и пока менее опытный коллега не спросит нас о них, мы о таком даже не задумываемся. Поэтому иногда нам все-таки стоит возвращаться к основам, чтобы освежить или даже углубить свои знания.
Сегодня мы с вами обсудим указатели и итераторы.
В интернете невероятное количество статей о том "как написать свой генератор на С++20", но почти все они сводятся к новичковым хело вордам и почти ни одной статьи о том как написать хороший генератор. Что ж, это нужно исправлять!
Волновой алгоритм — алгоритм поиска пути, алгоритм поиска кратчайшего пути. Принадлежит к алгоритмам, основанным на методах поиска в ширину.
Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.
Движок визуализации C3D Vision пополнился новым функционалом. Теперь у пользователей есть возможность создания объемных текстур и отображения их в сцене. В этой заметке мы расскажем об объектах API Vision, непосредственно работающих с текстурами, а также продемонстрируем на уровне кода, как с этими объектами может взаимодействовать пользователь.
Задача проверки корневых (под)деревьев на изоморфизм является достаточно известной в рамках олимпиадного мира, однако представленная большинством авторов реализация основывается на неэффективном полиномиальном хэшировании. Проблема данного метода заключается в возможных возникновениях коллизий. В данной статье описан более простой метод, использующий красно-черное дерево (в народе std::map) за ту же асимптотику.
Моя прошлая статья заканчивалась тем, что у меня возникла проблема выбора на чем писать и я говорил, что в следующей части продолжу свое изложение как сравнение Rust и C++. Но проблема на тот момент заключалось в том, что с первым из них я был знаком шапочно, и чтобы нести ахинею нужно было узнать его поглубже. И как оказалось этот процесс не очень простой.
Изначально я планировал еще привести сравнение производительности, но сейчас понимаю, что будет это не совсем корректно. «Почему?» – спросите Вы меня. Давайте разбираться вместе. Да, пока не начали, оговорюсь сразу, что в данной статье я решил не рассказывать о смысле приводимого кода, т.к. это сразу усложнит восприятие.
С++20 добавил новую функциональность для atomic_flag. Посмотрим как ее можно использовать, сравним с conditional_variable.
Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. На этот раз я хочу показать вам десять немодифицирующих операций. Мы сравним их со «старой» стандартной версией и увидим их преимущества и ограничения.
Подробности — к старту нашего курса по разработке на C++.
Интегрируем Objective-C код из Apple SDK в C++ проект, без переписывания всего проекта на Objective-C++, с использованием PIMPL идиомы. Также, сборка всего проекта вместе с использованием Makefile и CMake (для генерации .xcodeproject).
В этой статье объясняется, как настроить ваши проекты SFML с динамической компоновкой, если Вы используете интегрированную среду разработки программного обеспечения Visual Studio (компилятор Visual Studio С++).
Эта статья написана по мотивам моей курсовой работы, основной смысл которой описан здесь. В процессе работы над ней мне понадобилось добавить в учебной ОС, над которой я работал, поддержку thread_local переменных, о чём я и хочу здесь рассказать в надежде что кому-то это окажется полезно.
Здесь рассмотрен совсем простой случай: поддержки динамической загрузки других бинарников не будет, а способ реализации рассмотрен только один.
Код расположен в двух репозиториях.
NewLang — это язык программирования высокого уровня общего назначения. Основной особенностью языка является простой, логичный и не противоречивый синтаксис, который основан на строгой системе грамматических правил. За счет использования макросов, синтаксис языка легко расширяется до более привычного вида на основе ключевых слов.
NewLang находится в процессе активного развития. Это третий публичный релиз в который добавлены новые существенные возможности по сравнению с предыдущей версией.
Каждый начинающий программист мечтает реализовать свой собственный проект. Не написать простенький код, по заданию преподавателя, а воплотить в жизнь свои идеи. Так и я, изучая C++ 3-4 месяца, решился попробовать разработать макет электронного журнала для преподавателей.
Традиционно мир разработки для встраиваемых решений делится на программирование ПЛК, где используются среды стандарта IEC 61131 и разработку на С/С++ для микроконтроллеров и embedded Linux. Стандарт IEC 61499 является наследником стандарта IEC 61131 и предназначенн для разработки распределенных систем управления. Основным строительным элементов IEC 61499 является функциональный блок похожий на конструкцию языка FBD. Опенсорсные инструменты Eclipse 4diac IDE и Eclipse 4diac forte позволяют разработать распределенную систему управления из нескольких Raspberry PI или компьютеров с Linux, Windows или Freertos. Доступна работа с распространенными полевым шинами и возможность расширения библиотек блоков на С++.
Я зарабатываю программированием с 1979 года, и большую часть этого времени мне приходится работать с чужим кодом. Поначалу было: "Добавьте эту маленькую функцию к тому, что у нас уже есть". Теперь — "как мы можем стать лучше" и " стоит ли сохранять данный код?". Прочтение кода всегда было огромной составляющей в моей работе, и по этой причине для меня очень важно, какой код пишу я (и люди, с которыми работаю). Конечно, хочется, чтобы он был быстрым — в конце концов, я программист на C++. Кроме того, он должен быть корректным. Но есть нечто большее, помимо этих двух вещей: я хочу, чтобы код был читабельным, понятным, разумным и даже приятным.
Андрей Новохатько из DINS расскажет, как устроены современные NIC, основные идеи DPDK фреймворка и то, как это можно использовать для оптимизации своих высоконагруженных backend-сервисов, а Александр Боргардт поделится из «ВКонтакте» поделится о типовых проблемах Threadpool и Numa.
Участие бесплатное, но нужно зарегистрироваться. Подробная программа и информация о спикерах — под катом.