Аналитический паралич

Переизбыток анализа до такой степени, что прогресс и действия останавливаются.

Аналитический паралич — чрезмерное анализирование (или обдумывание) ситуации, так что решение или действие никогда не предпринимаются, фактически парализуя исход. Решение может рассматриваться как слишком сложное, с большим количеством деталей, так что выбор никогда не производится вместо того, чтобы попробовать что-то и произвести изменения в случае возникновения серьезной проблемы.

В разработке ПО аналитический паралич обычно проявляется при водопадной модели с очень длительными этапами планирования проекта, сбора требований, проектирирования и моделирования данных. Эти этапы могут создавать незначительные или вообще не приносящие дополнительного эффекта шаги и подвергать риску многие изменения.

Аналитический паралич часто происходит из-за недостатка опыта со стороны аналитиков бизнес-систем, менеджеров проектов или разработчиков ПО, а также жесткой и формальной организационной культуры.

 

Почему плохо

Переизбыток анализа может замедлить или остановить прогресс. В тяжёлых случаях, результаты анализа становятся не нужны к тому моменту, когда они готовы, или даже проект вообще не покидает фазу анализа. Часто кажется, что чем больше у вас информации, тем больше это поможет принятию тяжёлого решения.

Как избежать

Наблюдайте за итерациями и улучшениями. Каждая итерация даёт обратную связь и информацию, которую можно использовать для более осмысленного анализа. Без этой информации анализ будет лишь спекулятивным.

Примеры и признаки

Месяцы и годы, проведённые в анализе требований проекта, интерфейса или структуры БД.

В чём сложность

Бывает сложно понять, когда пора переходить от планирования, анализа требований и дизайна к реализации и тестированию.

Слишком длинно, не читал

Вместо чрезмерного анализа и спекуляций используйте пошаговое развитие.

Байкшеддинг

«Эффект велосипедного сарая» — bike-shed

Спорить о цвете велосипедного сарая намного проще, чем об атомной энергии.

 

«Эффект велосипедного сарая» или «закон тривиальности Паркинсона» был сформулирован Сирилом Норткотом Паркинсоном в 1957 году. Он привел в пример совещание на атомной электростанции, на котором большую часть времени участники потратили на обсуждение мелких и простых для понимания вопросов, таких как цвет велосипедного сарая, а не конструкции самой электростанции. Как объяснил инженер Карл Фогель, «время, потраченное на обсуждение пункта, обратно пропорционально его сложности и важности».

Проще говоря, гораздо проще дискутировать о чем-то тривиальном, нежели о чем-то сложном. У нас у всех есть свое мнение по каким-то бытовым темам, но когда речь заходит о нюансах и многогранности, все не так просто.

Закон нашёл применение в разработке программного обеспечения и других областях. В англоязычной литературе появился термин bike-shed effect (дословно «эффект велосипедного сарая»), ставший метафорой закона тривиальности.

 

Как избежать

Напоминайте другим членам команды об этой склонности, и о том, что в этих случаях главное – быстрее принять решение (бросить монетку, проголосовать, и т.п.). Если речь идёт о вещах вроде пользовательского интерфейса, обратитесь к A/B тестированию, вместо того, чтобы обсуждать это в команде.

Примеры и признаки

Часы или дни проводятся в обсуждениях цвета фона или расположения кнопки в интерфейсе, или использования табуляции вместо пробелов в коде.

В чём сложность

Байкшеддинг легче заметить и предотвратить, чем преждевременную оптимизацию. Замечайте время, требуемое для принятия решений и сопоставляйте его со сложностью задачи.

Слишком длинно, не читал

Не тратьте много времени на простейшие решения.

VNSTAT

 

vnstat — очень простой способ считать трафик на сервере. Утилиту удобно использовать в случаях, когда провайдер, по каким-то причинам, статистику по трафику не предоставляет, а лимиты при этом, устанавливает (Aruba, например).

Ставим vnstat из репозитория EPEL:

# yum install epel-release
# yum install vnstat

При необходимости, редактируем конфигурационный файл /etc/vnstat.conf, например, параметром SaveInterval задаём интервал, с которым данные будут записываться в базу, по умолчанию там установлено значение 5 минут. Параметром MonthRotate указываем день в месяце, когда статистика будет обнуляться, параметром UnitMode задаём единицы измерения трафика (0 — KiB/MiB/GiB/TiB, 1 — KB/MB/GB/TB). Здесь же можно указать пользователя, от которого будет работать сервис, пути для логов, формат даты и времени, директорию для баз и многое другое.

Запускаем подсчёт с vnstat.

Отредактированный конфиг сохраняем, сервис перезапускаем:

# systemctl restart vnstat

Создаём базу данных для нужного нам интерфейса:

# vnstat -u -i eth0

И продолжаем пользоваться сервером\интернетом в обычном режиме. Спустя указанный в интервале SaveInterval промежуток времени, проверяем что статистика ведётся:

# vnstat

Запуск команды с ключом —help покажет дополнительные возможности вывода статистики, например, ключи -h, -d, -w, -m позволяют вывести часовую, дневную, еженедельную и ежемесячную статистику. Для получения статистики в реальном времени, запускаем программу с -l.

Администратор так же имеет возможность вывести статистику по трафику в виде изображения, делается это с помощью vnstati:

# vnstati -vs -o ~/vnstat01.png

Как видим, утилита простая, в использовании очень удобная, свою задачу решает отлично, так что если вопрос подсчёта трафика и ведения его статистики на сервере стоит — к vnstat имеет смысл присмотреться.

window.location.href not working

После некоторых плясок с бубном и поиску в интернете, было найдено универсально работающее во всех браузерах решение.

window.location.href = "page.html"
заменить на

setTimeout(function(){document.location.href = "page.html";},500);

Отправка почты из docker контейнера



 RUN apt-get update && \
  apt-get install -y msmtp && \
  apt-get clean && \
  echo "account yandex" >> ~/.msmtprc && \
  echo "logfile ~/.msmtp.log" >> ~/.msmtprc && \
  echo "host smtp.yandex.ru" >> ~/.msmtprc && \
  echo "port 587" >> ~/.msmtprc && \
  echo "from no-reply@serov.eu" >> ~/.msmtprc && \
  echo "keepbcc on" >> ~/.msmtprc && \
  echo "auth on" >> ~/.msmtprc && \
  echo "user no-reply@serov.eu" >> ~/.msmtprc && \
  echo "password Uzum2G9pkZt" >> ~/.msmtprc && \
  echo "tls on" >> ~/.msmtprc && \
  echo "tls_starttls on" >> ~/.msmtprc && \
  echo "tls_certcheck off" >> ~/.msmtprc && \
  chmod 0600 ~/.msmtprc && \
  cp -p ~/.msmtprc /etc/.msmtp_php && \ 
  chown www-data:www-data /etc/.msmtp_php && \ 
  touch /var/log/msmtp.log && \ 
  chown www-data:www-data /var/log/msmtp.log
 

в php.ini

sendmail_path = "/usr/bin/msmtp -C /etc/.msmtp_php --logfile /var/log/msmtp.log -a yandex -t"

Другие конфиги



account yandex
 logfile /var/log/msmtp.log
 host smtp.yandex.ru
 port 587
 from mail@yandex.ru
 keepbcc on
 auth on
 user mail@yandex.ru
 password пароль
 tls on
 tls_starttls on





account yahoo
 tls on
 tls_starttls off
 tls_certcheck off
 auth on
 host smtp.mail.yahoo.com
 user user1
 from user1@yahoo.com
 password yourYahooPa5sw0rd





account gmail
 tls on
 tls_certcheck off
 auth on
 host smtp.gmail.com
 port 587
 user user1@gmail.com
 from user1@gmail.com
 password yourgmailPassw0rd



Тестирование:


echo -e "test message" | /usr/bin/msmtp --debug -t -i name@site.ru