Запоминаем в куках галочку

Плагин

https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js

            // read the current/previous setting
            $("#dont_show_message").each(function() {
                var name = $(this).attr('name');
                if ($.cookie(name) && $.cookie(name) == "true") {
                    $(this).prop('checked', $.cookie(name));
                }
            });
            // event management
            $("#dont_show_message").change(function() {
                var name = $(this).attr("name");
                $.cookie(name, $(this).prop('checked'), {
                    path: '/',
                    expires: 365
                });
            });

Отправка почты через postfix


Шаг 1.
Нужно заиметь учётку на работающем почтовике, чтобы мы могли юзать его как relay. Делается не сложно, просто обращаемся к админу того сервера с соответсвующей просьбой. Ну реализацию этого шага я думаю по деталям разъяснять  не стоит.

Шаг 2.
Открываем /etc/postfix/main.cf и ищем там настройку relayhost. Она отвечает за пересылку почты через релай. Указываем адрес, по которому нам доступен почтовик в локалке.

relayhost = [mail.local]
Тут mail.local - это и есть этот адрес.

Шаг 3.
Авторизация на релай-сервере. Отрываем тот же /etc/postfix/main.cf и дописываем такие строки:

defer_transport = smtp
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
Это мы активировали функию авторизации через SASL. Учтите, если авторизация какая-то хитро-мудрая, то этот способ может не подойти, на этот счёт лучше поговорить с вашим админом.

Далее в файо /etc/postfix/saslpass, который мы указали раннее прописываем логин а пароль от сервера.

mail.local relayuser@mail.local:password
На всякий случай комментирую: первое - это адрес сервера, второе - логин, третье (после двоеточия) - это пароль. После этого создаём хешированную таблицу (которую postfix и будет читать).

# postmap /etc/postfix/saslpass
Остаётся перегрузить настройки postfix.

# /etc/init.d/postfix reload
Вот собственно и всё. Можно работать. Главное корректно задавать адрес отправителя в заголовках, ибо может не прокатить.


честно стырено с http://adment.org.ua/admin/21-postfix-relay

Amazon S3 около четырех часов работал с перебоями

28 февраля 2017 года, примерно в 21:00 по московскому времени перестали отвечать сервисы  amazon s3 US-EAST-1 региона. Продолжалось все это безобразие 4 часа 17 минут, в это время не работали задачи Trello, платформа Coursera, сервис вопросов Quora, пользователи жаловались на проблемы в работе Open Whisper Systems, Quora, IFTTT, рассылок Sailthru, Business Insider, Giphy, Medium, Slack, Coursera, различных фотохостингов и так далее.

Что же случилось? Если вкратце — человеческая ошибка, один из админов выполнил команду группового удаления сервисов, но вместо одной (небольшой) группы серверов, он выключил другую, почти целиком остановив биллинг (и все остальное) на S3 в этом регионе.

https://aws.amazon.com/ru/message/41926/

 

Стоит добавить, что недавно,  31  января 2017 так же из-за человеческой ошибки пострадал GitLab, когда сотрудник их компании, хотел почистить слейв БД, дропнув ее, но перепутал сервера, и дропнул мастер.

https://docs.google.com/document/d/1GCK53YDcBWQveod9kfzW-VCxIABGiryG7_z_6jHdVik/pub

Книги


За бортом по своей воле / Ален Бомбар

Маленький принц / Сент-Экзюпери

Богатый папа, бедный папа / Роберт Кийосаки

Как разговаривать с кем угодно, когда угодно и где угодно / Ларри Кинг / оценка 5 из 10

Думай и Богатей! / Наполеон Хилл / оценка 9 из 10

Капитанская дочка

ЧИЧВАРКИН Е...ГЕНИЙ. ЕСЛИ ИЗ 100 РАЗ ТЕБЯ ПОСЫЛАЮТ 99... | Максим Котин

Не осилил:

Я и Оно / Зигмунд Фрейд / не осилил на половине /  1/2 прочитано

Очерки по психологии сексуальности / Зигмунд Фрейд / не осилил на половине /  1/4 прочитано



2021


"Деньги, успех и вы" | Кехо Джон

Хватит быть славным парнем! Проверенный способ добиться желаемого в любви сексе и жизни | Гловер Роберт

Нунчи. Корейское искусство предугадывать поступки людей и мягко управлять любой ситуацией | Хонг Юни
 
Бизнес в стиле Virgin | Ричард Брэнсон

Подсознание может все! | Кехо Джон

Как завоевывать друзей и оказывать влияние на людей | Дейл Карнеги

Самый богатый человек в Вавилоне | Клейсон Джорж Самюэль

Семь навыков высокоэффективных людей | Стивен Кови


В процессе

Принцип сперматозоида. Учебное пособие | Михаил Литвак

Как хочет женщина: Мастер-класс по науке секса

Эмоциональные триггеры | Дэвид Ричо

Сертификаты

Еще раз про сертификаты для сервера.

Если что то не выходит делаем следующие проверки.

1. ключ подходит с серитфикату.

Проверяем MD5 ключа и сертификата:

# openssl rsa -noout -modulus -in serov.1.key | openssl md5
(stdin)= 777711dbbab90e1b12e922bbdbde6716
# openssl x509 -noout -modulus -in serov.crt | openssl md5
(stdin)= 910a2dd2db8510094383563ed18c056d

Если строчки разные, то ключ не подходит к сертификату.

Ну и можно посмотреть что внутри

  • Check a Certificate Signing Request (CSR)
    openssl req -text -noout -verify -in CSR.csr
  • Check a private key
    openssl rsa -in privateKey.key -check
  • Check a certificate
    openssl x509 -in certificate.crt -text -noout

 

 

Сортировка данных в php

Например, у нас есть какой то набор данных, в stdClass. Он многомерный, и его надо сортировать, например по дате.
Делаем первое

array_walk_recursive($t, function(&$t) {return $t->date=strtotime($t->Created);});

Здесь мы создаем дополнительный элемент, к каждому набору записи, в которую записываем unix timestamp для сравнения.
Далее, сортируем набор данных по полю date

usort($t, function($a, $b){
return ($b->date - $a->date);
});

Не знаю, насколько это быстрее foreach или for, пока у меня не было несколько миллиардов записей, а до 1000 записей, существенной разницы не увидим.

Для более сложной сортировки, лучше использовать array_multisort, но это уже только для массива, хотя stdClass позволяет работать как с массивом.

Архивирование логов

Бывает так, что на машине остается ну например 5gb места, и все свободное место забито логами.

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

// переименовываем папку logs с текущей датой 
tar --remove-files -cvzf logs_03_11_2015.tar.gz logs_03_11_2015

 

После добавление файла в архив, он будет тут же удален.

 

Если совсем все плохо, и надо перетащить файлы на винте, где совсем нет место, можно сделать это по сети.

tar cvf - / | ssh -p2222 ted@8.8.8.8 "cat > archive.tar"

тут мы все что в корне отправляем на сервер 8.8.8.8 по 2222 порту под пользователем  ted