MYCSS

2016-06-18

Qt контрольована робота QRunnable, QThread, QThreadPool, на прикладі QWebSocket

За допомогою статті можна зробити контрольовану роботу QRunnable та QThreadPool у Qt.
Тобто передати результати роботу зовнішньому СЛОТУ.
Через симуляцію connect:
QMetaObject::invokeMethod(receiver, "updateProgressBar",
                                      Qt::QueuedConnection,
                                      Q_ARG(int, pFinished));


How to report progress and abort a long running operation with QRunnable and QThreadPool

P.S. Не забуваємо про попереднє використання qRegisterMetaType.
на кшталт 
qRegisterMetaType<QWebSocket*>(); 

2016-06-10

Ubuntu 16.04 віддалене підключення до робочого столу через x11vnc

Стала задача підключитися до віддаленого сервера під керуванням OS Ubuntu 16.04. Але потрібен був доступ не до віртуальних vnc сесій, а до реального робочого столу X11, з доступом до OpenGL ресурсів реальної відео карти.

 

 

Служба x11vnc

Реалізувати це можна за допомогою пакету x11vnc. Цей пакет копіює буфер екрану і передає до сервера vnc. А клієнт вже підключається до vnc сервера, за допомогою стандартних vnc клієнтів.
Програма повинна запускатися після запуску X11 сервера, і тому як зробити запуск x11vnc автоматичний у системі Ubuntu 16.04 описано у публікації: Ubuntu 16.04 – Configure your system to have x11vnc running at startup я протестував і це дійсно працює.
Основа це скрипт vnc-startup.sh.
Спочатку іде етап встановлення Spep 1, потім, Step 2, створення паролю за допомогою якого ми будемо підключатися до vnc сесії. Step 3 - віртуальне створення Service Unit File - /lib/systemd/system/x11vnc.service.

Розповсюдження готових програм створених за допомогою Qt у Ubuntu

Нова нотатка для себе.
Після компіляції програми у середовищі Qt  5.6 з використанням операційної системи Ubuntu 16.04 x64, стала задача перемістити програму на інший комп'ютер споживача, а не розробника.
Головна проблема що створити статичний файл програми не вийде у безкоштовній версії Qt, або може так я зрозумів. Для цього потрібно мати статично скомпільовану версію Qt. Тема про створення програм описана у документації Qt for Linux/X11 - Deployment.
Для роботи виконавчого файлу програми знадобляться динамічно завантажувальні бібліотеки. І головна задача зібрати усі бібліотеки що потрібні для роботи програми, на допомогу цьому прийде програма ldd (List Dynamic Dependencies). Вона покаже залежність, наприклад:
ldd ./Player 
 libesets_pac.so => /usr/lib/libesets_pac.so (0x00007f663b5ff000)
 libQtAV.so.1 => /home/lex/project-C/build/.../lib_linux_x86_64/libQtAV.so.1 (0x00007f663b221000)
 libQtAVWidgets.so.1 => /home/lex/project-C/build/.../libQtAVWidgets.so.1 (0x00007f663aff9000)
 libQt5Widgets.so.5 => /home/lex/Qt5.6.0/5.6/gcc_64/lib/libQt5Widgets.so.5 (0x00007f663a787000)
 libQt5Gui.so.5 => /home/lex/Qt5.6.0/5.6/gcc_64/lib/libQt5Gui.so.5 (0x00007f6639f8f000)
 libQt5Sql.so.5 => /home/lex/Qt5.6.0/5.6/gcc_64/lib/libQt5Sql.so.5 (0x00007f6639d4b000)
 libQt5Core.so.5 => /home/lex/Qt5.6.0/5.6/gcc_64/lib/libQt5Core.so.5 (0x00007f6639639000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f66392b6000)
...  

2016-05-30

Власні комбінації клавіш для примикання кожної з мов у ОС Ubuntu

Звик я для перемикань розкладок клавіатур не послідовно, а напряму, тобто для кожної мови своя комбінація. У OS Windows це робиться просто, під керуванням OS Ubuntu, це можна зробити теж, але не так явно, і потрібно знати магічні слова.
У моєму середовищі налаштовано дві мови: англійська та українська.
Вибір поточної мови для клавіатури у середовищі OS Ubuntu 16.04
Стандартне перемикання між мовами
Для додавання власних скорочень, переходимо у розділ: "Системні параметри-Обладнання-Клавіатура-Скорочення-Власне скорочення".
Натискаємо "+", і додаємо власні скорочення:
  • назва: KeyLayout 0 - En
    команда: gsettings set org.gnome.desktop.input-sources current 0
  • назва: KeyLayout 1 - Ukr
    команда: gsettings set org.gnome.desktop.input-sources current 1
Додавання додаткових комбінацій клавіш Ubuntu
Потім, після додавання, вибираємо потрібну мову зі списку доданих та на назначаємо потрібну компібнацю клавіш.
У мене це: Ctrl-Shift+1 для англійської, та Ctrl-Shift+2 для української розкладки клавіатури відповідно.

Використанні матеріали:

2016-05-23

Ubuntu x64, skype - проблеми та їх виришення

Переходжу на використання Ubuntu як основну операційну систему.
І у моєму випадку не працювала зв’язка Ubuntu робоча станція версії 14.04, 64 розрядна і skype 4.3.0.37, і WebCam TRUST WB 3320X.
Linux Skype 4.3.0.37
Не працює відео

2016-05-09

Світлодіодний світильник для меблевої шафи світильник від батарейки AA.

Замовив собі до меблевої шафи ось такий світильник світильник що працює від однієї батарейки AA на 1.5V, з датчиком руху (PIR D203S), і датчиком освітлення.
Сподобався і вирішив розібрати та подивитися начинку. 
Ось і надаю вам до уваги теж ці світлини.
Схема використовує бустер для підвищення напруги,  підвищує з 1.5V до 3.3V. 
Сила струму споживання у режимі очікування 0.2 mA, при роботі світлодіодів 70 mA.

Світлодіодний світильник для меблевої шафи світильник від 3х батарейок AAA.

Замовив собі до меблевої шафи ось такий світильник світильник що працює від 3х батарейок AAA, з датчиком руху (PIR D203S), і датчиком освітлення.
Сподобався і вирішив розібрати та подивитися начинку. 
Ось і надаю вам до уваги теж ці світлини.


Використання потужних світлодіодів у домашніх світильниках - 2

Використано:
  • потужний світлодіод  10W, 30-32V, 0.3A, White (6000K) - вага 5g.
  • драйвер світлодіода з 85-265V до 0.3A, 9-32V.
  • радіатор від старого процесора.
  • світильник для стіни
Головна проблема у тому що у ванній кімнаті існує світильник на стіні з малим патроном E14. Раніше використовувалась лампочка розжарювання на 60W, я робив спробу замінити на LED лампи з патроном E14. Знаходив лампи з потужністю максимум до 7W, але при цьому світлової яскравості було не достатньо у ванній кімнаті.
Тому вирішив спробувати створити своє джерело світла з використанням більш потужнішого світлодіода на 10W.
Головна проблема це, площа радіатора, і його діаметр для того щоб він пройшов у отворі захисного скляного ковпака.
Було використано плоский радіатор від процесора, котрий був розпиляний на дві частини, потім ці частини були склеєні термічним клеєм "AG TermoGlue" 0.9W/mK.
Модель радіатора
Модель склеєного радіатора, і обрізаного до форми туби

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready