MYCSS

2016-07-27

Модифікація датчика руху при використанні освітлення на світлодіодах

Потихеньку переводжу домашнє освітлення на використання світлодіодів.
Так дуже приємно не вмикати освітлення самому, а використовувати датчики руху на основі - пасивних інфрачервоних сенсорів PIR (passive infrared sensor).

Так, наприклад, у коридорі стоїть датчик руху з лампочкою LED потужністю 5W, а біля кухні датчик руху з потужнім світлодіодом LED потужністю 10W.

Коли, раніше, використовували лампи розжарення потужністю 75-100W, то ніколи ніхто не замислювався про те, а скільки споживає електричної енергії схема систем керування і який її відсоток від загального споживання. Але з часом переходу на більш економні лампи на світлодіодах, відсоток споживання електричної енергії плати керування, став зовсім іншим.
Тому мета з'ясувати скільки що споживає, і чи можливо щось вдіяти з цим.

2016-07-14

Blocking ip by list of numbered dns names

Щось дістали записи у протокольних фалах від не бажаної пошти, вирішив заблокувати по IP.
Таким скриптом перебираю адреси, шукаю усі їх IP, колекціюю до файлу, сортую у пошуках унікальних, і передаю адресу скрипту з блокування адрес фаєрволом на певний час.

#!/bin/sh

echo "START"
for i in $(jot - 1 99); do
 hip="m$i.esputnik.com";
 ip=$(host -t a $hip | awk '{print $4}');
 for addr in $ip
  do
  echo "$addr" >> block_ip_loop.txt
 done
done

for addr in $(sort -u  block_ip_loop.txt).
do
 echo "blocking $addr"
 ./ipfw-blockip-by-hand.sh 9999999 $addr
done
rm  block_ip_loop.txt
echo "END" 

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.

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

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

ipv6 ready