28 вересня 2016 р.

FreeNAS NUT моніторінг служби

Щось за деяких умов, у моєму сервері, перестає працювати зв'язок між службою NUT, і UPS.
У логах є:
COMMBAD - ups

27 вересня 2016 р.

Компіляція браузера Chromium для Ubuntu (x265, HEVC)

Є перевірена новина, що у експериментальній версії браузера Chromium 55.0.2850 для Windows з'явилася можливість програвати медіа файли формату (HEVC або він же h265).
Але стала необхідність скомпілювати браузера Chromium для операційної системи linux у моєму випадку це Ubuntu 16.04 з можливістю відтворювати формату (HEVC або він же h265).

20 вересня 2016 р.

Використання мереж VLAN у FreeBSD при міграції до Hyper-V

Портував FreeBSD сервер до віртуального середовища під керуванням Microsoft Hyper-V. І за звичай хотів використовувати налаштування які я робив у FreeBSD для віртуальних мереж, де є одна мережева карта "fxp0" і з неї "витягуються" усі віртуальні мережі vlan101...vlan1000:
rc.conf:

cloned_interfaces="vlan101 vlan102 vlan103 vlan104 vlan1000"
ifconfig_vlan101="inet 192.168.101.1 netmask 255.255.255.0 vlan 101 vlandev fxp0"
ifconfig_vlan102="inet 192.168.102.1 netmask 255.255.255.0 vlan 102 vlandev fxp0"
ifconfig_vlan103="inet 192.168.103.1 netmask 255.255.255.0 vlan 103 vlandev fxp0"
ifconfig_vlan104="inet 192.168.104.1 netmask 255.255.255.0 vlan 104 vlandev fxp0"
...
ifconfig_fxp0="up"
Але з'ясувалося через 'tcpdump -i fxp0 -eee', як у жахливому сні - що десь чути чую, а сказати нічого не можу .
Після аналізу з'ясував що так і потрібно, щоб віртуальні середовища були ізольовані один від одного.
Вихід з цього простий треба у налаштування віртуального середовища створити стільки мережевих адаптерів скільки віртуальних мереж Вам потрібно. Для тегованих так і не тегованих портів створюються окремі адаптери:
Визначення TAG ID port VLAN для мережевого адаптера у Hyper-V

15 вересня 2016 р.

Використання змінних з проект файлу Qt5 у С++ програмі

Наприклад у інтерфейсі програмі треба показати версію програми, визначаємо змінну VERSION у файлі .pro:
VERSION = 0.1.0
Але є проблема що у програмі це повинна бути string, обробляємо:
VERSTR = '\\"$${VERSION}\\"'
І додаємо оброблену зміну через визначення DEFINES:
DEFINES += VER=\"$${VERSTR}\"
Після цього можна використати у власній програмі .cpp:
#ifdef  VER
QString("version: %1 (Build: %2 %3)").arg(VER).arg(__DATE__).arg(__TIME__);
#endif
P.S. DEFINES визначає змінні макросів С препроцесора для qmake через ключ  -D (add_definition)

2 серпня 2016 р.

Офшор, і данні українських державних установ майже у сусідів з MAIL.RU

Не перший раз, вже бачу як рекламують, і застосовують дивний домен поштової системи @MAIL.UA. На перший погляд дуже патріотично, український домен .UA. Також відомо що отримати його не так швидко і просто, потрібна торгова марка. Регламент особливостей реєстрації приватних доменних імен другого рівня в домені .UA:
"3.3. Приватні доменні імена другого рівня в домені .UA делегуються виключно у
разі, якщо відповідне доменне ім`я повністю, або його компонент другого рівня
(до знака ".", але не включаючи цей знак), за написанням співпадає із Знаком,
права на використання якого на території України належать відповідному
реєстранту.".

Ось приклад використання на сайті Прозоро інформація про певну державну організацію котра використовує пошту у домені MAIL.UA.
Сайт ProZorro

27 липня 2016 р.

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

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

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

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

14 липня 2016 р.

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" 

18 червня 2016 р.

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*>(); 

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

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

ipv6 ready