Рубрика «c++»

learnopengl. Урок 2.1 — Цвета - 1Перевод очередного урока с сайта learnopengl.com. Недавно обнаружил на русском Уроки по OpenGL с сайта OGLDev, но некоторые из них требуют 4 версию opengl, а примеры кода слишком зависимы от предыдущих уроков и объектно-ориентированы. Поэтому, вниманию всех интересующихся opengl'ем новичков со стареньким железом предлагаю коротенькую статью о цвете, с которой начинается вторая часть обучающего курса от Joey de Vries:
Читать полностью »

Это необычное интервью — его дает человек, который всегда находится за кулисами, однако его ответы в почте и StackOverflow спасли годы времени тысячам людей. Спойлер: будет не только про поддержку, но и про личные проекты, и про работу из дома, и про нетипичные запросы в поддержку.

Встречайте — Сергей Баранов, инженер технической поддержки компании JetBrains. Интервьюер — anastasiak2512.
Читать полностью »

Continuous Integration

Про непрерывную интеграцию и её целебные свойства слышали, наверное, все — не буду повторять написанное в многочисленных вводных статьях и обзорах и рассказывать, что же такое непрерывная интеграция, и как именно она упрощает жизнь разработчикам, релиз-инженерам и менеджерам. Предполагается, что читатель и сам прекрасно понимает, что CI — вне зависимости от применяемых в проекте языков программирования — это стопроцентно правильный подход, но… Но вот до практического его внедрения руки в силу разных причин пока не дошли.

Данная статья — инструкция по прикручиванию базовой непрерывной интеграции (build-test-deploy) к гитхабовским C/C++ проектам с CMake сборкой — по непонятным причинам, на Хабре такого до сих пор не проскальзывало. Впрочем, если моё гугл-фу подвело меня, и таки проскальзывало — не беда. Лишний туториал, описывающий всё под несколько другим углом и предостерегающий от неповторимого набора набитых автором шишек, совершенно точно не повредит.

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

Конструктора и инженеры привыкли работать в КОМПАС, вручную строя чертежи, 3D-модели и сборки. Однако система КОМПАС предоставляет богатый набор функций, позволяющих автоматизировать их работу. При желании весь процесс построения сложного чертежа, 3D-модели или сборки можно свести к нажатию на одну кнопку. Правда для этого придется поработать нам, программистам.
В рамках одной статьи невозможно описать все возможности КОМПАС по автоматизации. Для этого не хватит даже книги. К счастью для нас в комплект поставки КОМПАС входит документация, заголовочные файлы для различных языков программирования и ряд примеров.

Работа с API КОМПАС-3D → Урок 1 → Основы - 1

Рассказывает Сергей Александрович Норсеев — инженер-программист, АО «ВНИИ «Сигнал», Ковров. Автор книги «Разработка приложений под КОМПАС в Delphi»
Читать полностью »

Создание моделей данных для QComboBox - 1

Всем привет! Хочу поделиться с вами двумя способами, как можно и нужно создавать модели данных для виджетов типа QComboBox в Qt. В конце статьи будет показано решение, для заполнения комбобокса из БД, одной строкой кода.
Читать полностью »

Зло в функциях сравнения
Возможно, читатели помнят мою статью под названием «Эффект последней строки». В ней идёт речь о замеченной мной закономерности: ошибка, чаще всего, допускается в последней строке однотипных блоков текста. Теперь я хочу рассказать о новом интересном наблюдении. Оказывается, программисты тяготеют к тому, чтобы допустить ошибку в функциях сравнения двух объектов. Такое утверждение выглядит неправдоподобным, однако, я покажу огромное количество примеров ошибок, которые шокируют читателя. Читайте новое исследование, будет интересно и страшно.
Читать полностью »

Не так давно, на этой неделе, я наткнулся на пост трехлетней давности. Вот он. Если вы будете его внимательно читать, то наткнетесь на то, что возмутит вас до глубины души. Если, конечно, вы понимаете что такое теория вероятностей. Речь об этом отрывке:

«55.55% — вероятность того, что ящики зажгутся одним и тем же цветом, когда мы выбираем две двери наугад, в соответствии с теорией скрытых параметров».

Все мое знакомство с теорвером буквально заорало об ошибке. Но есть нюанс… Я тоже могу ошибаться. Так давайте проверим!
Читать полностью »

Когда мы начали рассказывать про свой OpenSource акторный фреймворк для C++ на Хабре, мы пообещали описывать некоторые особенности деталей реализации SObjectizer-а. Одна из новых фич, которая была реализована в недавно вышедшей версии 5.5.19, отлично подходит для такого рассказа. Кроме того, она интересна еще и тем, что нам пришлось взглянуть на сценарии использования SObjectizer с совершенно другой стороны. Можно даже сказать, что один из наших шаблонов оказался разорванным.

Речь идет о возможности SObjectizer-а выполнять все свои действия на одной единственной рабочей нити. Начиная с версии 5.5.19 использовать Actor- и Publish/Subscribe модели можно даже в однопоточном приложении. Понятное дело, что акторы должны будут работать в режиме кооперативной многозадачности, но в каких-то случаях именно это и требуется.

А где может потребоваться использовать акторов в однопоточном приложении?

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

Стандартная библиотека языка C++ очень неплоха. Долгие годы стандартные алгоритмы верой и правдой служат простому плюсовику!

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

Существует несколько вариантов решения данной проблемы. Один из них — ленивые вычисления и диапазоны — уже на подходе к стандартной библиотеке.

Однако, и старые добрые алгоритмы пока рано списывать со счетов.

В этой статье я хочу рассмотреть один из приёмов, который хоть и не является полноценным решением проблемы компонуемости алгоритмов, но вполне способен и упростить работу со старыми стандартными алгоритмами, и обязательно пригодится для работы с грядущими версиями стандарта языка C++.

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

В данной небольшой заметке-примере я опишу как найти устройства в сети по протоколу SSDP (Simple Service Discovery Protocol) используя библиотеку Poco на C++.
Читать полностью »