Ебанатский дегенератизм - нередкое явление при работе с любыми СУБД, так уж складывается, что их разработкой занимаются довольно странные люди. Режим NO_ZERO_DATE пополняет список ебанизма. По умолчанию он включен с 5.7, и ровно с этого же момента он и начинает портить нам жизнь.

Проблема в том, что несмотря на его наличие, дата '0000-00-00 00:00:00' всё равно КАК-ТО БЛЯДЬ В БАЗУ ПОПАДАЕТ ёб вашу мать, а ошибка

MySQL Incorrect datetime value: '0000-00-00 00:00:00'

появляется только тогда, когда у вас горят сроки и надо в продакшене срочно что-то поправить. Ну естественно.

Поэтому мы делаем следующее:

  1. Мысленно посылаем инноваторов, внедривших NO_ZERO_DATE сначала в пизду, затем нахуй, а после - в ёбаный сатанинский ад.
  2. Заходим под root пользователем в базу.
  3. Выполняем запрос
SHOW VARIABLES LIKE 'sql_mode';

читире. Получаем в ответ что-то вроде "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_..."
5. Ищем полчаса блядскую галочку "Full texts", спрятанную разработчиками phpMyAdmin в мелкошрифтную ссылку + Options.
6. Получаем в ответ что-то вроде

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

сем. Вычёркивам нахуй этот сучий гонорежим NO_ZERO_DATE.
8. Выполняем что-то вроде

SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

девить. Пишем пост в интернете про это блядство.
10. Охуеваем от того, что wordpress превращает вручную набранные цифры в списки и сбрасывает блядскую нумерацию, ведь до этого момента такого никогда еще не происходило. Ни разу.
11. Понимаем, что вести войну с вордпрессом нет уже ни сил, ни времени, ни желания.
12. Идём отвечать на 45 пропущенных звонков и 194 новых письма, накопившихся, пока мы исправляли этот внезапно свалившийся на голову дятлоебизм.

GG

GG() # Case-insensitive, Wildcards disabled
{
  local SEARCH_STRING
  if [[ "$*" == "" ]]; then
    read -p "Type a search string: " SEARCH_STRING # Because bash is shit!
    history -s GG "'"${SEARCH_STRING//\'/\'\"\'\"\'}"'" # Shit!
  else
    SEARCH_STRING="$*"
  fi
  grep -RFIn --color=always "$SEARCH_STRING" . | cut -c1-1000
}

sudo nano /etc/ssh/ssh_config

Comment out the following lines

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

OR

sudo nano /etc/ssh/sshd_config

UseDNS no
UsePAM no # (Pluggable Authentication Modules)
PasswordAuthentication no # Heckers slow down the shits and create huge logs with continous bruteforce.

 
sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd
 

Либо всех грызи, либо лежи в грязи.

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install streamlink
streamlink https://www.youtube.com/watch?v=VvVvVvVvVvV
streamlink --hls-live-edge 9999999 --stream-segment-attempts 1000 --stream-segment-timeout 30 --hls-segment-attempts 1000 --hls-segment-timeout 30 --hls-playlist-reload-attempts 1000 --hls-timeout 1000 -o video1.mp4 https://www.youtube.com/watch?v=VvVvVvVvVvV 720p

Присутствуют глюки:
https://github.com/streamlink/streamlink/issues/1146

Рекомендуют также сохранять в .ts, т.к. он "родной формат и точно не заглючит". Но это не проверенная информация.

streamlink --hls-live-edge 9999999 --stream-segment-attempts 1000 --stream-segment-timeout 30 --hls-segment-attempts 1000 --hls-segment-timeout 30 --hls-playlist-reload-attempts 1000 --hls-timeout 1000 -o video1.ts https://www.youtube.com/watch?v=VvVvVvVvVvV 720p

Ютуби-дл скачивает не с начала, а с середины, поэтому использовать его можно только если стрим ещё не начался либо если уже закончился.

youtube-dl --list-formats https://www.youtube.com/watch?v=VvVvVvVvVvV
youtube-dl -f 95 https://www.youtube.com/watch?v=VvVvVvVvVvV
 
sudo add-apt-repository ppa:retroshare/stable
sudo apt update
sudo apt install -y retroshare
 
You need to use `-t` option in `ssh` to assign a pseudo-terminal to `ssh` session:

    ssh -q -t root@server 'bash test.sh'
I have a script on my server named `test.sh`:

    #!/bin/bash
    read -p "Select an option [1-4]: " option
    echo "You have selected $option"

When I run it through ssh manually, I see this:

    me@me:~$ ssh root@server
    root@server's password:
    [...]
    root@server:~# bash test.sh
    Select an option [1-4]: 48
    You have selected 48

When I run it as ssh remote command, I see this:

    me@me:~$ ssh root@server 'bash test.sh'
    root@server's password: 
    48
    You have selected 48

I am unsatisfied with this output because it's missing `Select an option [1-4]: ` prompt string and the original script which from has I derived `test.sh` contains a lot of interactive dialogue strings like this and I need them all.

I know that `read` prints it's prompt to `stderr` so I tried to start the script with following commands in case if stderr is omitted, but the output stays still the same:

    ssh root@server 'bash test.sh >&2'
    ssh root@server 'bash test.sh' >&2
    ssh root@server 'bash test.sh 2>&1'
    ssh root@server 'bash test.sh' 2>&1

Why this is happening and how to make ssh remote command work as expected?

https://stackoverflow.com/questions/45838637/ssh-remote-command-not-working-as-expected-problems-with-read
linux - ssh remote command not working as expected (problems with read) - Stack Overflow

 

Также испытывал проблемы из-за локали, не позволявшие запустить i2pd, однако их удалось преодолеть:

root@raspberrypi:~# i2pd
12:28:11@33/info - Log: min messages level set to info
12:28:11@33/info - i2pd v2.14.0 starting
12:28:12@33/info - Daemon: bandwidth set to 'low'
12:28:12@33/info - Daemon: using system limit in 65536 max open files
12:28:12@33/info - Daemon: starting NetDB
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
Aborted

root@raspberrypi:~# locale-gen en_US en_US.UTF-8
Generating locales (this might take a while)...
  en_GB.UTF-8... done
Generation complete.

root@raspberrypi:~# locale-gen ru_RU ru_RU.UTF-8
Generating locales (this might take a while)...
  en_GB.UTF-8... done
Generation complete.

root@raspberrypi:~# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
  LANGUAGE = (unset),
  LC_ALL = (unset),
  LC_PAPER = "ru_RU.UTF-8",
  LC_ADDRESS = "ru_RU.UTF-8",
  LC_MONETARY = "ru_RU.UTF-8",
  LC_NUMERIC = "ru_RU.UTF-8",
  LC_TELEPHONE = "ru_RU.UTF-8",
  LC_IDENTIFICATION = "ru_RU.UTF-8",
  LC_MEASUREMENT = "ru_RU.UTF-8",
  LC_TIME = "ru_RU.UTF-8",
  LC_NAME = "ru_RU.UTF-8",
  LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  ru_RU.UTF-8... done
Generation complete.

root@raspberrypi:~# i2pd
12:38:13@456/info - Log: min messages level set to info
12:38:13@456/info - i2pd v2.14.0 starting
12:38:13@456/error - router.info is malformed. Creating new
12:38:14@456/info - Daemon: bandwidth set to 'low'
12:38:14@456/info - Daemon: using system limit in 65536 max open files
12:38:14@456/info - Daemon: starting NetDB
12:38:14@456/warn - Family: Can't load family certificates from /root/.i2pd/certificates/family
12:38:14@456/error - Family: 347f69139bc02660c00fb9694c7561a382d6a637708638f3480306482d233ba0 is too long
12:38:14@456/warn - RouterInfo: family signature verification failed
12:38:14@456/info - NetDb: 174 routers loaded (129 floodfils)
12:38:14@456/info - Daemon: starting Transports
...

Несмотря на преодолимость, было бы весьма хорошо, если бы успешный запуск программы не зависел от этого фактора.
https://github.com/PurpleI2P/i2pd/issues/498

 
curl -sLH 'Accept-Encoding: gzip' -o- http://example.com|wc -c
curl -sLH 'Accept-Encoding: deflate' -o- http://example.com|wc -c

files - How can I get the size of stdin? - Unix & Linux Stack Exchange