В этой статье рассмотрим опыт автора, столкнувшегося с особенностями реализации работы с вещественными числами на аппаратном уровне. Многие современные специалисты в области информационных технологий работают с высокими уровнями абстракции данных. Думается, что статья откроет им глаза на некоторые интересные вещи.
Читать полностью »
Рубрика «c++» - 95
Особенности использования вещественных регистров 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, при написании плагина возникают некоторые нюансы. Статья посвящена работе с ними.
19 лет на одном языке. История о том, как олимпиадник из Беларуси стал C++ Chief Software Architect
2018-04-04 в 10:59, admin, рубрики: c++, CrossOver, hiring tournament, алгоритмические задачи, Алгоритмы, беларусь, Блог компании Crossover, ивент, Карьера в IT-индустрии, олимпиада, олимпиадное программирование, плюсы, Программирование, разработка, Спортивное программирование, турнир, Учебный процесс в IT, фрилансКажется, у компании Crossover становится традицией анонсировать свои карьерные турниры, рассказывая о людях, уже работающих по специализации, на которую пойдёт отбор. Но сегодняшний случай особенный: хотя «примерка» на роль Chief Software Architect 7 апреля проходит в Москве, наш «Chief Software Architect дня» живёт даже не в России, а в соседней для дефолтной хабранации республике. Видимо, поэтому Crossover предложил мне взять у него интервью — может, они надеялись на какую-то особую белорусскую перспективу в разговоре двух белорусов, двух минчан и двух фрилансеров?
Впрочем, это сейчас Сергей rserge Рогач живёт и работает в Минске. Будущий Chief Software Architect компании родился в городке-десятитысячнике Глубокое Витебской губернии, в подбрюшье Браславских озёр — и эта череда топонимов словно сама уносит дальше, куда-то в сторону леса Фангорн, лежащего в отрогах Мглистых гор…
Поднимите руки, кто на Браславские озёра хочет больше, чем в Чикаго?
…только Сергей после девятого класса поступил в лицей при БГУ — одну из самых престижных школ Беларуси при главном университете страны. Учиться там в 2001–2003 годах было никому не скучно: аббревиатура БГУ грохотала как название одной из самых смешных команд КВН в истории, а Сергей два года подряд попадал в четвёрку старшеклассников, представлявших Беларусь на международной олимпиаде по программированию.
Читать полностью »