MYCSS

2022-12-24

Як заощадити заряд смартфону при прослуховуванні YouTube

На сьогодні дуже важливе є питання  заощадливого використання заряду наших гаджетів.

Так, деякі матеріали в каналах YouTube можна слухати, а відео ряд не такий вже важливий, тому бажано було б мати можливість слухати з вимкненим економ нашого гаджету.

Але для прослуховування в додатку YouTube в фоні обмежена для власників не Premium підписки.

Тому виявив можливість використання YouTube в браузері Firefox для Android в режимі картинка в картинці.

Для цього необхідно в браузері Firefox для Android відкрити сайт https://youtube.com, перевести перегляд в режим для комп'ютера.


Вибирати необхідно відео в YouTube, вибрати найбільш заощадливий режиму перегляду, з Авто на 144p.

2022-12-02

Install JAVA, HADOOP, ELASTICSEARCH, CRAWLER - NUTCH on DEPLOY MODE. Problem: Store INDEX to ELASTICSEARCH (PART I)

The task is to create a web crawler of http sites using Apache-Nutch on multiple servers and store the index on the elasticsearch server. HADOOP with DFS file system is used to manage JAVA tasks.
A distributed version .job file was used to run Apache-Nutch via HADOOP.
Currently testing on one Ubuntu 22.04 LTS 'el-mix' server with IP 10.110.6.77.

Based on this :  https://phoenixnap.com/kb/install-hadoop-ubuntu

JAVA

root@el-mix:/home/developer# java -version; javac -version
bash: /usr/bin/java: No such file or directory
Command 'javac' not found, but can be installed with:
apt install default-jdk              # version 2:1.11-72build2, or
apt install openjdk-11-jdk-headless  # version 11.0.17+8-1ubuntu2~22.04
apt install openjdk-17-jdk-headless  # version 17.0.3+7-0ubuntu0.22.04.1
apt install ecj                      # version 3.16.0-1
apt install openjdk-18-jdk-headless  # version 18~36ea-1
apt install openjdk-8-jdk-headless   # version 8u312-b07-0ubuntu1
root@el-mix:/home/developer# apt install openjdk-11-jdk-headless
root@el-mix:/home/developer# java -version; javac -version
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)
javac 11.0.17

Install JAVA HADOOP, ELASTICSEARCH, CRAWLER - NUTCH on DEPLOY MODE , problem with last stage of store INDEX to ELASTICSEARCH on UBUNTU 22.04 (PART II)

DEPLOY RUN

developer@el-mix:~$ ./cr-deploy.sh


Map output records=37
Map output bytes=9749
Map output materialized bytes=4790
Input split bytes=1836
Combine input records=0
Spilled Records=37
Failed Shuffles=0
Merged Map outputs=0
GC time elapsed (ms)=1189
CPU time spent (ms)=9720
Physical memory (bytes) snapshot=3526860800
Virtual memory (bytes) snapshot=32680042496
Total committed heap usage (bytes)=3002073088
Peak Map Physical memory (bytes)=328626176
Peak Map Virtual memory (bytes)=2730352640
File Input Format Counters
Bytes Read=8211
2022-12-01 02:48:46,099 ERROR indexer.IndexingJob: Indexing job did not succeed, job id: job_1669862098511_0011, job status: FAILED, reason: Task failed task_1669862098511_0011_r_000001
Job failed as tasks failed. failedMaps:0 failedReduces:1 killedMaps:0 killedReduces: 0

2022-12-01 02:48:46,119 ERROR indexer.IndexingJob: Indexer: java.lang.RuntimeException: Indexing job did not succeed, job id: job_1669862098511_0011, job status: FAILED, reason: Task failed task_1669862098511_0011_r_000001
Job failed as tasks failed. failedMaps:0 failedReduces:1 killedMaps:0 killedReduces: 0

at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:150)
at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:291)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:81)
at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:300)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)

Error running:
/home/developer/nutch/runtime/deploy/bin/nutch index -Dmapreduce.job.reduces=2 -Dmapreduce.reduce.speculative=false -Dmapreduce.map.speculative=false -Dmapreduce.map.output.compress=true crawl/crawldb -linkdb crawl/linkdb crawl/segments/20221201024052 -deleteGone
Failed with exit value 255.

2022-11-28

Скрипт для показу значень температури та вологості Bluetooth BLE термометра Xiaomi

Є Bluetooth BLE термометр Xiaomi Mijia (LYWSD03MMC) з альтернативною прошивкою PVVX.

Xiaomi Mijia (LYWSD03MMC)

Написаний простий скрипт (Python) що сканує мережу Bluetooth BLE на наявність broadcasting advertising packets.

Якщо назва пристрою починається з 'ATC' то виводяться декодовані данні телеметрії в консоль.

2022-02-14

Нотатка для себе. Proxmox easy HA script.

В деяких ситуаціях HA (High Availability) системи Proxmox для віртуальних машин не допомагає.

Такою ситуацією є випадок коли резервна копія віртуальної машини налаштована як stop mode, а не snapshot mode.

І бувають ситуації на кшталт цієї:

INFO: timeout waiting on systemd
command 'qm start 101 --skiplock' failed: exit code 255
ERROR: Backup of VM 101 failed - timeout waiting on systemd
INFO: Failed at 2022-02-11 01:15:48
INFO: Backup job finished with errors

Тому простий скрипт котрий запускає за розкладом crond вирішує цю задачу:

#!/bin/sh

vmlist="101 102"
for i in $vmlist; do
 status=$(/usr/sbin/qm status $i)
 echo $status
  if [ ! "${status}" = "status: running" ];then
   echo "BAD"
   /usr/sbin/qm start $i
  else
   echo "OK"
  fi
done
corontab -e
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

*/30 * * * *      /home/check-vm.sh 2>1 >/dev/null

Результат роботи скрипту

 


2022-02-03

Нотатка. Оновлення запису DNS для DHCP CLIENT FreeBSD з використанням nsupdate

Є сервер FreeBSD, з використанням dhclient для мережевого інтерфейсу.

Задача, оновити  запис в власному сервері DNS з отриманим IP від DHCP сервером.

Встановлюю додатковий компонент pkg install samba-nsupdate.

nsupdate


dhclient

Створюю скрипт dhclient-exit-hooks для dhclient.

/etc/dhclient-exit-hooks
#!/bin/sh

/usr/bin/logger -t dhclient-exit-hooks REASON ${reason} IP: ${new_ip_address}
case "${reason}" in BOUND|RENEW|REBIND|REBOOT)
        echo ${new_ip_address} ${reason}
        /usr/local/etc/ddns/ddns.sh ${new_ip_address} ${reason}
;;
esac

 Створюю теку /usr/local/etc/ddns, там завантажую файл ключа ddns.key для оновлення DNS з RFC 2136 і також цей скрипт: 

 nsupdate

/usr/local/etc/ddns/ddns.sh

#!/usr/bin/env /bin/sh

IP=$1
KEY=/usr/local/etc/ddns/ddns.key
NSUPDATE=/usr/local/bin/samba-nsupdate
DNSSERVER=your_dns_server
DNSHOST=host.example.net

if [ ! -z ${IP} ];then
 echo updating:  ${IP} [ $2 ]  - ${USER}
 /usr/bin/logger -t dyndns updating:  ${IP} [ $2 ]  - ${USER}
 if [ -f ${KEY} ];then
  ${NSUPDATE} -4  -k ${KEY}  <<EOF
server ${DNSSERVER}  53
update delete ${DNSHOST}
update add ${DNSHOST} 300 A ${IP}
send
EOF
  else
   logger -t dyndns no key file ${KEY}
  fi
else
 echo IP missed
 logger -t dyndns IP missed
fi

BIND 

ddns-confgen -a hmac-sha512 -z host.example.net

# To activate this key, place the following in named.conf, and
# in a separate keyfile on the system or systems from which nsupdate
# will be run:
key "ddns-key.host.example.net" {
        algorithm hmac-sha512;
        secret "SdimvwKG5SDqeS7hD+C6ap89sRN4I2EuYrJKHFXtJ83CuUF6kbELxrv5OgVeVctzyqbafcQTGJgQh/svkv+/Yg==";
};

# Then, in the "zone" definition statement for "host.example.net",
# place an "update-policy" statement like this one, adjusted as
# needed for your preferred permissions:
update-policy {
          grant ddns-key.host.example.net zonesub ANY;
};

# After the keyfile has been placed, the following command will
# execute nsupdate using this key:
nsupdate -k 

2022-01-15

Нотатка: Динамічний таймер на базі "розумної" розетки SONOFF S26 з Tasmota та MQTT

Є завдання, вмикати освітлення у приміщенні тамбура перед квартирою, за певними персоналізованими умовами.

SONOFF S26 - Tasmota

Умови

  • ручне керування: вимикання, вмикання на короткий час, на довгий час
  • віддалене керування через MQTT брокер, вимикання, вмикання на короткий час, на середній час,на довгий час.
  • вимикання завжди за аварійним або контрольованим таймером

2022-01-10

Модифікація кнопки для дзвінка на кнопку з датчиком руху та індикацією стану розумного будинку на базі SONOFF/ESP/Tasmota

Задача на холодильник прикріпити магнітом кнопку - датчик.
Датчик руху дозволить ввімкнути освітлення і наступній кімнаті перед виходом з кухні.
А механічна кнопка, дозволить керувати розумним реле у кухні в ручному режимі на випадок не робочого стану логіки контролера розумного будинку.

В якості датчику руху використано мініатюрний модуль SR602.


 До кнопки додано магніт.

2022-01-05

Ремонт редуктора насадки блендера Mirta, Rotex

Від не розрахування густини рідини, шестерня редуктора стала прокручуватися на валу.
Швидкої заміни не було знайдено, а замовити первинний друк на 3D принтері не рентабельно. Тому знайдено рішення зробити надфілем насічки у внутрішньому отворі шестерні, а на вал намотати харчову фольгу, підвищеної товщини.
Після насадження на вал шестерні, редуктор знову працює.

IoT. Моніторинг температури централізованого опалення на ThingSpeak з сенсорів Tasmota і OpenWeather в OpenWRT

Графік змін температур

Поточні температури

Поточна температура централізованого опалення

 

Поточна температура на вулиці

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

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

ipv6 ready