PostgreSQLСоздание простейшей процедуры и триггера

Для начала создаем процедуру, которую будет вызывать триггер:

В процедуре намеренно используется quote_nullable вместо quote_literal, т.к. поля level или name могут иметь значение “null”. При таком значении подставляемые в запрос данные не обрамляются кавычками.

Теперь создадим триггер, который будет вызывать эту процедуру при добавлении записи в таблицу shard1.user, а также при редактировании полей name или level этой же таблицы:

Linux, PostgreSQLУстановка PostgreSQL 9.3 на Ubuntu

Установим пакет PostgreSQL:

Создаем папку для postgresql:

Меняем пароль:

Добавиляем строчку в конфиг vim /etc/postgresql/9.3/main/pg_hba.conf:

В главном конфиге /etc/postgresql/9.3/main/postgresql.conf меняем настройки:

Инициализируем:

Перезагружаем сервис Postgres:

PostgreSQLУдаление зависших PREPARED транзакций

Для того, чтобы удалить prepared транзакции, у которых никогда не будте коммита или роллбэка, надо сделать следующее:

В базе postgres получить список идентификаторов транзакций:

Далее для каждой базы откатить их:

PHPНастройка SPF и DKIM для отправки почты со своего сервера через Yandex

Настроить отправку почты через сервера Яндекса достаточно легко, а вот сделать так, чтобы письма как можно реже попадали в спам – не так просто, как показалось на первый взгляд. Вот список действий, которые помогли мне:

1) Для начала делегируем свой домен на Яндекс. Можно и просто почтой для домена воспользоваться.

2) Получаем токен для активации API Яндекс.Почты для доменов.

3) Далее получаем приватный ключ для DKIM через API следующим образом: https://pddimp.yandex.ru/dkim/status.xml?domain=ДОМЕН&token=ТОКЕН&secretkey=yes

Сам ключ находится в секции secretkey. Мне пришлось копировать его с исходного кода HTML-страницы, потому что в браузере он выводился в неправильном формате – в одну строку.

4) Если домен на Яндекс не делегирован, то нужно настроить TXT-запись для подомена mail._domainkey.domain.com. именно на том сервере, с которого производится отправка писем. Если домен делегирован на Яндекс, то все должно быть прописано автоматом.

5) Настраиваем TXT запись:

Если письма от имени вашего домена будут отправлять не только серверы Яндекса, а например, серверы, на которых размещён ваш сайт (какие-нибудь уведомления о регистрации или о заказах), эти серверы тоже нужно перечислить в SPF-записи. Вместо “v=spf1 redirect=_spf.yandex.ru” необходимо указать следующее значение: “v=spf1 ip4:IP-1 ip4:IP-2 ip4:IP-3 include:_spf.yandex.ru ~all”, где IP-1, IP-2, IP-3 — адреса тех серверов, с которых дополнительно отправляются письма.

6) Теперь почту с сервера легко можно отправлять через PHPMailer. В проекте на Yii я делаю это с помощью расширения YiiMailer:

Все действия с DKIM (вторая часть п.1 и остальные пункты) нужны только тогда, когда используется почта для домена. Если вы проделегировали домен, то цифровая подпись ставится автоматически – о чем и написано в мануале Яндекса.

LinuxЛогин root’а по SSH без пароля

В /root/.ssh/ добавляем файл authorized_keys с нашим публичным ключом. На папку ставим права 700, на файл 600. Перезапускаем sshd:

Выполняем:

LinuxNGINX и favicon.ico

Если надоели постоянные сообщения в access/error логах о favicon.ico, то их можно просто отключить, добавив следующее правило в nginx.conf:

Mac OSЗапуск VirtualBox без дополнительного окна

Когда запускается любой образ из VirtualBox, открывается отдельное окно, где видна загрузка системы. В большинстве случаев в этом окне нет необходимости. Есть 2 способа избежать его появления:
1) перед тем, как нажать Запустить необходимо зажать Shift;
2) запустить из консоли:

Mac OSZsh на Mac OS X

ZSH (Z shell) – популярная командная оболочка UNIX. Существует проект oh-my-zsh – это фреймворк, который помогает сконфигурировать zsh под свои нужды. Существует огромное количество плагинов для oh-my-zsh, спокойно можно написать свои – коммьюнити очень живое, так что проблем возникнуть не должно.

Установка и настройка oh-my-zsh довольно тривиальны:
1) Устанавливаем oh-my-zsh как написано на сайте

2) На Mac OS я пользуюсь iTerm2 вместо родного терминала, поэтому конфигурировать буду его. Качаем тему Solarized Dark отсюда. Импортируем тему из скаченного архива solarized/iterm2-colors-solarized/Solarized Dark.itermcolors как показано на скриншоте:
импорт темы в iterm2

3) Далее включим тему и подключим необходимые плагины:

  • в ~/.zshrc меняем значение ZSH_THEME на agnoster
  • ниже прописываем DEFAULT_USER=”your_mac_os_user”, если еще не прописано
  • устанавливаем патченный шрифт из списка – у меня стоит Menlo 14pt
  • для ~/.oh-my-zsh/themes/agnoster.zsh-theme берем содержание – вам может и не понадобиться, мне пришлось заменять файл темы вручную, потому что были проблемы с непечатными символами в терминале

В результате должно получиться примерно следующее:
2

Cheatsheet по zsh здесь.