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

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++.
Читать полностью »

Данная статья описывает решение для выполнения рутинных процедур заполнения и сохранения данных форм виз SQL базы данных. Код сложный. Для его понимания надо хорошо знать фреймворк Qt по части QtGui, QtSql. И хотя бы средне C++.

Автоматизация обмена данными Qt форм с SQL базой данных - 1
Читать полностью »

Доброго времени суток.

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


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