Создание уникального глобального идентификатора (GUID)

function GUID()
{
    if (function_exists('com_create_guid') === true) {

        return trim(com_create_guid(), '{}');
    }

       return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535),
           mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));


};

echo GUID();

Set up Nginx

Now we need to add a new snippet with ssl-params.

Go to snippets directory and create a new one.

cd /etc/nginx/snippets
nano ssl.conf

Add the following lines, save and exit the editor (Ctrl+XYEnter).

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets on;

ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Then you have to create a directory for certificates snippets.

mkdir certs
cd certs

Create a new file that will hold certificate’s params.

nano example.com

Add paths to the wildcard certificate.

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

Про путешествие.

Мало кто помнит, или понимает, что чемоданы с колесиками появились не так давно, лет 10 назад вообще не было чемодана с колесиками. Это легко понять, по еще существующим тележкам в аэропортах, которыми никто не пользуется. И было прямо стремно брать много вещей в поездку, так как это надо будет все нести на себе. Как хорошо, что теперь не так. Ты берешь самый большой чемодан по объему, кидаешь туда пару футболок, кроссовки, и тебя вообще ничего не беспокоит, ты просто вытаскиваешь ручки, и катишь его. Можно даже не знать, сколько он весит.

Феномен Баадера-Майнхоф

Феномен Баадера-Майнхоф представляет собой когнитивное искажение, то есть шаблонное отклонение в мышлении. Нам только кажется, что информации о каком-то феномене стало больше — а если её на самом деле стало больше (просто случайно), мы пытаемся увидеть здесь сверхъестественные закономерности.

Этот процесс в 2005 году описал с научной точки зрения Арнольд Цвики, профессор лингвистики Стэнфордского университета. Он назвал его иллюзией частотности.

Её легко объяснить двумя известными в психологии явлениями: избирательным вниманием и предвзятостью подтверждения (confirmation bias).

Первое означает: как только человек что-то замечает, он становится более внимательным к его проявлениям.  Именно поэтому маловероятность  при феномене Баадера-Майнхоф часто субъективно завышается: мы выхватываем дублирующуюся информацию и не замечаем, какие её объёмы в целом проходят через нас за день.

Второе можно перевести на русский как «склонность к подтверждению собственной точки зрения». Это тенденция находить информацию, которая согласуется с изначальной установкой, и обесценивать другую.

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

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

 

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

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

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

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

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

 

Почему плохо

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

Как избежать

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

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

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

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

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

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

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

Байкшеддинг

«Эффект велосипедного сарая» — 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 имеет смысл присмотреться.