Рубрика «qt» - 2
Сборка и публикация Qt Android приложений через Gitlab CI
2022-01-01 в 12:21, admin, рубрики: android, devops, fastlane, gitlab, google market, qt, Разработка под android
Над сервисом для построения CI/CD даже не задумывался, есть GitLab, что еще нужно? Первым шагом нужно создать файл .gitlab-ci.yaml в корне проекта. Далее я подробно разберу его содержимое, а для тех кто хочет посмотреть сразу все, в конце статьи есть ссылки на репозиторий. Тем кто хоть немного знаком с синтаксисом .gitlab-ci.yml должно быть все понятно.
История одной фичи в Qt Multimedia
2021-12-26 в 14:39, admin, рубрики: c++, open source, QAbstractVideoSurface, QML, qt, QtMultimedia, QVideoSink, Программирование
Несмотря на рекомендации мейнтейнеров, этот модуль каждый раз возвращается в Qt Essentials Modules.
Некоторые требовали закопать и не откапывать, чтобы в мире было меньше страданий.
Другие всегда с надеждой смотрели на новые релизы в ожидании долгожданных фиксов, говоря, что надо просто знать тонкости настройки, тогда не больно.
Модуль, который хейтили много поколейний разработчиков.
Речь пойдет про Qt Multimedia.
Qt Multimedia
Параллелизм и эффективность: Python vs FSM
2020-06-14 в 8:42, admin, рубрики: c++, FSM, python, qt, автоматное программирование, параллельное программирование, С++Признаюсь, но я не знаю Python. Просто потому, что не использую. Тем не менее, взявшись за его освоение, а также в попытках расшифровать загадочную аббревиатуру GIL, вышел на статью с описанием «необъяснимых магических явлений» параллельного варианта CPU-зависимой функции на Python. Возникло желание перепроверить данный тест и сравнить с эквивалентной реализацией в форме модели конечного автомата (Finite-state machine или сокращенно FSM) в среде Визуального Компонентного Программирования (автоматного) — ВКП(а).
Очевидно любая программа в определенной мере CPU-зависима. С другой стороны, если это только не ассемблер, то тестированием на том или ином языке высокого уровня мы в большей степени исследуем программную прослойку, скрываемую им. Поэтому, рассматривая Python, правильнее было бы говорить о CPU-зависимости его интерпретатора. Можно даже утверждать, что программа на Python будет иметь скорость, зависимую от версии интерпретатора, и обладать характерной для него «мистикой».
В то же время есть ситуации, когда зависимости от CPU может почти не быть (в этом мы убедимся). Речь идет о языках, вычислительная модель которых отлична от типовой архитектуры процессоров. Вычислительная модель Python, ей соответствует, а автоматная модель вычислений, о которой далее пойдет речь, имеет другую архитектуру и это будет определять специфику ее тестирования. Какая будет скорость и будет ли иметь место мистика выяснится в процессе тестирования «автоматного кода».
Читать полностью »
Программа для поиска единомышленников ВКонтакте [Open source]
2020-04-03 в 13:49, admin, рубрики: open source, qt, Вконтакте, Вконтакте API, социальные сети, Социальные сети и сообществаVK предоставляет очень неплохие инструменты для таргетирования рекламы, которые позволяют найти людей нужного пола, возраста, социального и семейного положения, подписанных на определенные группы и т. д. Это только верхушка айсберга, если покопаться в больших данных, доступных соцсетям, можно узнать про человека чуть ли не больше, чем он сам о себе знает.
При этом механизма поиска новых друзей фактически нет, что довольно иронично в контексте социальной сети. С другой стороны, оно и понятно, если что-то не приносит дохода, значит развиваться, скорее всего, не будет. Для знакомств VK не так давно запустил приложение, но, насколько я понимаю, это фактически клон Tinder, и он совсем никаких данных из профилей не подтягивает, даже банального отношения к курению или алкоголю — от соцсети там только авторизация.
Нам стало интересно, насколько реально исправить эту ситуацию с помощью VK API, и вот, что из этого вышло:
Модель параллельных вычислений
2020-02-02 в 11:30, admin, рубрики: c++, Matlab, qt, ВКПа, параллельное программирование, С++Введение. Конкурентный корутинизм.
Предыдущие статьи на тему автоматного программирования были всего лишь «цветочками». «Ягодкой» автоматного программирования, т.е. ради чего нужно им заниматься, является модель параллельных вычислений на базе модели конечных автоматов. Итак, поехали…
Стандарт С++ включил в свой состав долгожданную поддержку многопоточности [1]. Но не будем ни восхищаться этим, ни критиковать сей факт, т.к. работа с потоками отягощена таким множеством условий, оговорок и особенностей, что без реальных примеров, выявляющих проблемы многопоточности, обсуждение многопоточного программирования будет не только поспешным, но и достаточно предвзятым. Поэтому далее в основном не о потоках, а об автоматах, имея в виду, конечно, и первые.
Читать полностью »
Простой zero-copy рендеринг аппаратно ускоренного видео в QML
2020-01-29 в 10:51, admin, рубрики: c++, egl, gstreamer, opengles, QML, qtВведение
Целью данной статьи является продемонстрировать способ как можно подружить сторонние видео буфера и QML. Основная идея — использовать стандартный QML компонент VideoOutput. Он позволяет подсовывать сторонние источники, неплохо документирован и имеет бекэнд поддерживающий GL_OES_EGL_image_external.
Мысль, что это вдруг может быть полезно, возникла после того, как я попытался запустить примеры работы с камерой в Qt, и на embedded платформе они работали со скоростью 3-5 кадра в секунду. Стало ясно, что из коробки ни о каком zero-copy речи не идет, хотя платформа все это отлично поддерживает. Справедливости ради, на десктопе VideoOutput и Camera работают, как и положено, быстро и без лишних копирований. Но в моей задаче, увы, нельзя было обойтись существующими классами для захвата видео, и хотелось завести видео из стороннего источника, каким может быть произвольный GStreamer пайплайн для декодирования видео, к примеру, из файла или RTSP стрим, или сторонний API который интегрировать в базовые классы Qt несколько сомнительно. Можно еще, конечно, в очередной раз переизобрести велосипед и написать свой компонент с рисованием через OpenGL, но это сразу показалось заведомо тупиковым и сложным путем.
Все вело к тому, что нужно разобраться как же оно устроено на самом деле, и написать небольшое приложение подтверждающее теорию.
Собираем приложение Qt в WebAssembly в Windows
2020-01-27 в 11:51, admin, рубрики: c++, qt, qt5, wasm, webassembly, windows, разработка под windowsКак известно, приложения написанные на Qt, который является кросс платформенными запускаются от desktop, мобильных, интернет вещей, до микроконтроллеров.
Один из вариантов это сборка приложения Qt в WebAssembly — которое позволит Вам запускать его в браузере у пользователя. Таким образом обновление приложения для пользователя будет заключаться в загрузке на сервер нового файла wasm.
Чтобы легче было осуществлять деплой приложения, в рамках данной статьи давайте соберём приложение Qt в WebAssmbly под Windows в командной строке.Читать полностью »