Технологии контейнеризации активно используются для сборки и тестирования программного обеспечения. С появлением PVS-Studio для Linux, пользователям стала доступна возможность добавить статический анализ к другим методам тестирования своего проекта на этой платформе, в том числе в Docker. В статье будут описаны особенности работы с анализатором PVS-Studio в Docker, которые повысят качество анализа и удобство использования. А также будут приведены ошибки, найденные в проекте Azure Service Fabric.
Читать полностью »
Рубрика «c++» - 94
Особенности настройки и запуска PVS-Studio в Docker на примере кода Azure Service Fabric
2018-04-13 в 7:46, admin, рубрики: C, c++, Microsoft Azure, open source, pvs-studio, Service Fabric, static code analysis, Блог компании PVS-Studio, Компиляторы, статический анализ кодаОсобенности использования вещественных регистров x86 архитектуры
2018-04-12 в 12:08, admin, рубрики: c++, аппаратный уровень, архитектура, архитектура по, Блог компании SimbirSoft, вещественные числаВ этой статье рассмотрим опыт автора, столкнувшегося с особенностями реализации работы с вещественными числами на аппаратном уровне. Многие современные специалисты в области информационных технологий работают с высокими уровнями абстракции данных. Думается, что статья откроет им глаза на некоторые интересные вещи.
Читать полностью »
JNI: Подружим Java и C++
2018-04-11 в 13:39, admin, рубрики: c++, java, java native interface, jni, tutorialВведение
Бывают моменты, когда в Java некоторые действия выполняются за пределами обычных Java-классов. Например, необходимо исполнить код, написанный на C/C++ или другом каком-нибудь языке.
В данной статье рассмотрим данный вопрос с практической точки зрения, а именно напишем простой пример взаимодействия кода Java с кодом C++, используя JNI. Статья не содержит чего-то сверхестественного, это скорее памятка для тех, кто с этим не работал.
Читать полностью »
Веб установщик на чистом WINAPI с поддержкой Hi DPI и векторным лого
2018-04-09 в 8:08, admin, рубрики: c++, hidpi, usability, WinAPI, windows, интерфейсы, разработка под windows, С++, системное программированиеВ наше время это, наверно, одно из основных применений для приложений написанных на чистом WINAPI. Писать что-то серьёзнее нескольких простых окон на чистом WINAPI уже не так весело, а вот маленький установщик – самое то.
Так как на дворе 2018 год, писать просто приложение как-то не очень. Давайте уж соответствовать веяниям времени – установщик будет с поддержкой Hi DPI режимов. Даже в ноутбуках уже 4К экраны не редкость, чего уж говорить про десктопы. Ну и так как установщик — это то, что должно быстро загрузиться будем экономить на том, что действительно не сложно сделать и самому. Ну и попробуем схитрить чтобы использовать векторную графику без дополнительных библиотек – нам же нужен красивый логотип!
Один день из жизни закаленного админа или рассказ о том как приручить СХД
2018-04-08 в 20:37, admin, рубрики: all-flash, c++, disk performance, linux, nvme express flash pcie, storage, Блог компании СторКвант Лабс, системное программирование, СХД, хранение данныхСегодня мы расскажем о героических буднях админов и системах хранения данных. В рамках этой статьи мы расскажем две реальные истории внедрения СХД и попробуем поделиться своим опытом внедрения и эксплуатации СХД решений. Имена участников конечно же вымышлены.
История 1. Как закалить админа
Начались суровые будни администратора Пети, и вот вечером приехала очередная партия оборудования вместе с СХД, но уже слышны стоны пользователей о том, когда новые ресурсы СХД будут им выданы. И вот системный администратор, невзирая на погоду и завершившийся рабочий день, уже бежит в свой ЦОД (или серверную, у кого как). Ведь там находится его главная цель — СХД, про которую он уже много читал на сайте производителя, практически изучил по буклетам, как она работает. Ведь именно он защищал покупку этой системы у своего ИТ-директора и приводил тысячу «за» и немного «против», и вот наступил тот самый момент, счастье совсем близко.
Читать полностью »
Learn OpenGL. Урок 5.1 — Продвинутое освещение. Модель Блинна-Фонга
2018-04-08 в 16:27, admin, рубрики: c++, OpenGL, opengl 3, перевод, Программирование, разработка игр
Продвинутое освещение
В уроке посвященном основам освещения мы кратко разобрали модель освещения Фонга, позволяющую придать существенную долю реализма нашим сценам. Модель Фонга выглядит вполне неплохо, но имеет несколько недостатков, на которых мы сосредоточимся в данном уроке.
Learn OpenGL. Урок 4.11 — Сглаживание
2018-04-07 в 8:54, admin, рубрики: antialiasing, c++, learnopengl.com, MSAA, multisampling, OpenGL, opengl 3, перевод, Программирование, разработка игр, сглаживание
Сглаживание
В своих изысканиях, посвященных трехмерному рендеру вы наверняка сталкивались с появлением пикселизованных зазубрин по краям отрисовываемых моделей. Эти отметины неизбежно появляются из-за принципа преобразования вершинных данных в экранные фрагменты растеризатором где-то в глубине пайплайна OpenGL. К примеру, даже на такой простой фигуре как куб уже заметны эти артефакты:
Беглый взгляд, возможно, и не заметит ничего, но стоит посмотреть внимательней и на гранях куба проявятся означенные зазубрины. Попробуем увеличить изображение:
Нет, это никуда не годится. Разве такое качество изображения хочется видеть в релизной версии своего приложения?
Читать полностью »
Learn OpenGL. Урок 4.10 — Инстансинг
2018-04-06 в 10:32, admin, рубрики: c++, data amplification, instancing, learnopengl.com, OpenGL, opengl 3, перевод, Программирование, разработка игр
Инстансинг
Представьте, что вы задумали сцену, содержащую огромное количество моделей объектов, причем преимущественно эти модели содержат одинаковые вершинные данные, разнятся только матрицы трансформации, примененные к ним. Например, сцена с травяным полем, где каждая былинка представлена маленькой моделью, составленной буквально из пары треугольников. Конечно же, для достижения нужного эффекта придется отрендерить эту модель не один раз, а тысячу, десять тысяч раз за кадр. Поскольку в каждом листике содержится буквально пара треугольников, то его рендер будет практически мгновенным. Но вот тысячи повторных вызовов функций рендера совокупно очень заметно ударят по производительности.
Читать полностью »
Отладка многопоточных программ на базе FreeRTOS
2018-04-05 в 10:46, admin, рубрики: c++, eclipse, freertos, memory management, openocd, отладка, программирование микроконтроллеров
Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (вообще не врубаешься) о том, что на самом деле происходит. Классика жанра: «Я выделил целых 3КБ операционной системе и запустил всего 3 задачи со стеком по 128Б, а на четвертую уже почему-то не хватает памяти» или «А сколько вообще стека я должен выделить задаче? Столько достаточно? А столько?». Многие решают данные задачи путем проб и ошибок, поэтому в этой статье я решила объединить большинство моментов, которые, в настоящее время, значительно упрощают мне жизнь и позволяют более осознанно отлаживать многопоточные программы на базе FreeRTOS.
Данная статья рассчитана, в первую очередь, на тех, кто только недавно начал осваивать FreeRTOS, однако вполне вероятно, что и хорошо знакомые с этой операционной системой читатели найдут для себя здесь что-то интересное. Кроме того, несмотря на то, что статья ориентирована на разработчиков встраиваемого ПО, прикладным программистам она тоже будет интересна, т.к. много слов будет сказано о FreeRTOS как таковой, безотносительно микроконтроллерной романтики.
В данной статье я расскажу о следующих моментах:
Пишем простой плагин для VirtualDub
2018-04-05 в 10:42, admin, рубрики: blackwhite, c++, plugin, vdf, video filter, virtualdub, Visual Studio, плагин, разработка под windowsНесмотря на то что обработка видео не спеша переезжает на OpenCL / CUDA VirtualDub остается удобным средством для простых действий с видео. Обрезка кадра, добавление фильтров или наложение выполняется гораздо удобнее чем из консоли ffmpeg. Кроме того за годы существования была разработана масса фильтров позволяющие выполнять многие операции быстро и удобно. Несмотря на простоту SDK, при написании плагина возникают некоторые нюансы. Статья посвящена работе с ними.