Метка «c++» - 6

Уже довольно давно я опубликовал пост «Как тестировать код финализатора (c#)», в котором делился опытом тестирования кода, реализованного в финализаторе. Не прошло и года, как тест все-таки упал. Подробности под катом.
Читать полностью »

Последний месяц в армии. Постепенно освобождается время для разных интересных проектов. Остается только определиться, чем именно занять мозги. Закончил читать «Эгоистичный ген» Ричарда Докинза и идея была сформулирована – хочу сделать визуализацию, использующую принципы эволюции.

image
Рисунок 1. Популяция бактерий перестраивает среду под свои нужды.

Итак, вперед!
Читать полностью »

Снижение компонентной связности кода С++
Избавляемся от недостатков классического ООП и пишем на С++ в модульном стиле.
Читать полностью »

PVS-Studio and Firefox
Три года назад мы уже проверяли Mozilla Firefox с помощью анализатора PVS-Studio. Тогда это было неудобно и затруднительно. Для Firefox отсутствует проектный файл для Visual Studio. Сборка осуществляется с помощью make-файлов. Поэтому просто взять и проверить проект нельзя. Требовалось интегрировать PVS-Studio в систему сборки, что оказалось трудной задачей. В результате, как мне помнится, была проанализирована только часть проекта. Но всё поменялось, когда появился PVS-Studio Standalone. Теперь можно отследить все запуски компиляторов и легко проверить проект.
Читать полностью »

Здравствуйте.

Столкнулся я с задачей получения фотографий с фотокамеры в моей программе на c#, причем надо было так, чтобы пользователь нажал кнопку в программе, или случилось какое-то программное событие, и мы ррррраз и получили снимок с камеры в программу и дальше его как-нибудь обработали/сохранили/отправили, в общем сделали с ним что-нибудь программным же образом.

Как оказалось, у производителей цифровых зеркальных фотокамер есть специальный SDK, через который можно программным путем к этой самой камере обратиться и поуправлять ею. У меня камера Nikon D5200, хотя для Sony и Canon вроде бы тоже видел подобный SDK.

Цель статьи рассказать о возможности и показать короткий пример. Как известно, если вы знаете что что-то можно сделать, то узнать, как это сделать – пара пустяков.
Читать полностью »

Логирование сообщений с Easylogging++
Система логирования — незаменимый инструмент для протоколирования работы приложений. Для тех, кто не хочет реализовывать его самостоятельно, на C++ уже существует бессчётное количество готовых библиотек (Log4cplus, Apache log4cxx, Boost.Log и тд.), однако Easylogging++ отличается простотой использования и компактностью, не требует сторонних библиотек или инсталляции. Весь её код содержится в одном единственном заголовочном файле, который просто необходимо включить в код приложения.

Данная статья предлагает краткий обзор функционала Easylogging++ и примеры использования этой библиотеки.
Читать полностью »

в 14:01, , рубрики: unity, unity3d, метки: , ,

Наводим порядок в Hierarchy View!
Не так давно разработчики Юнити порадовали нас новой версией 4.5 (а в 4.6, совсем скоро, нас ждет новый GUI, ура!), и среди списка изменений один пункт касается сортировки в окне Hierarchy: «sorting of elements is now based on transform order instead of name».
Что это значит? Вы можете вручную перетаскивать элементы в окне иерархии в нужном вам порядке. И если раньше вы собирали сцену из расчета на автоматическую сортировку по имени, то теперь список объектов на сцене превратился в кашу.

Мы могли бы просто сделать как было… но сделаем лучше :)

На картинке вы видите привычную сортировку по имени, за исключением трёх вспомогательных объектов, которые располагаются внизу. Кроме того ориентироваться на сложных сценах будет проще за счет цветовой дифференциации штанов иконок.

Читать полностью »

Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
______________________________________________________________

Давайте добавим несколько предустановок для плагина и создадим [относительно] симпатичный интерфейс.
Читать полностью »

Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
______________________________________________________________

Пора приступать к написанию нашего первого плагина. Это будет грязный цифровой дисторшн. Если говорить точнее, плагин будет просто обрезать пики амплитуды звукового сигнала.
Читать полностью »

Проблемы и требования к драйверу

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

  1. Отсутствие структуры драйвера. Решение данной проблемы позволить лучше ориентироваться по драйверу, следовательно, отладка становится проще.
  2. Отсутствие общности драйвера. То есть интерфейс драйвера должен быть одинаковый, для, хотя бы, линейки процессоров, и в идеале для аналогичных процессоров разных фирм. Это позволит переносить код, завязанный на драйвер, без изменений или с минимальными изменениями.
  3. Сохранение эффективности по скорости выполнения драйвера.
  4. Оптимальное использование памяти.

В данном посте я покажу, как можно ликвидировать эти проблемы и сделать процесс написания драйвера более приятной задачей на примере двух драйверов UART и DMA реализованных на языке С++. Для этого я сформулировал требования, для драйвера:
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js