среда, 2 мая 2012 г.

MySQL. Дата последнего понедельника.

DATE_SUB( CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY)

пятница, 27 апреля 2012 г.

Unix. Как убить процессы с регулярным выражением kill + grep.

kill -9 `ps -ef | grep processmask | grep -v grep | awk '{print $2}'`

Mac OSX. SSH и кириллица.

Если при подключении по ssh к удаленному linux-серверу c кириллическим набором
не все гладко: некоторые символы не печатаются или вообще возникает конструкция "?:",
то сразу смотрим текущую locale ...
Если она не ru_RU.UTF-8, то сразу пишем в /etc/profile
export LANG=ru_RU.UTF-8
export LC_CTYPE="ru_RU.UTF-8"
export LC_NUMERIC="ru_RU.UTF-8"
export LC_TIME="ru_RU.UTF-8"
export LC_COLLATE="ru_RU.UTF-8"
export LC_MONETARY="ru_RU.UTF-8"
export LC_MESSAGES="ru_RU.UTF-8"
export LC_PAPER="ru_RU.UTF-8"
export LC_NAME="ru_RU.UTF-8"
export LC_ADDRESS="ru_RU.UTF-8"
export LC_TELEPHONE="ru_RU.UTF-8"
export LC_MEASUREMENT="ru_RU.UTF-8"
export LC_IDENTIFICATION="ru_RU.UTF-8"
export LC_ALL=

вторник, 24 апреля 2012 г.

Apache. MultiViews и mod_rewrite.

Наткнулся на то, что на моем mac не работает правило mod_rewrite вида

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

при запросах вида http://myhost/index/action

Оказалось что включена опция MultiViews в настройках хоста.
Apache искал и находил файл по соотв маске, получалось что запрос идет к файлу index.php.

http://myhost/index.php/action

Соотв сегмент action вообще игнорировался.

Zend Framework. Отправка писем через smtp-сервер.

$smtpConfig = array(
    'host' => 'smtphost',
    'username' => 'username',
    'password' => 'password',
    'port' => 25,
    'auth' => 'login'
);

$message = 'my html message';
$subject = 'test message';
$transport = new Zend_Mail_Transport_Smtp($smtpConfig['host'],
                 $smtpConfig);
Zend_Mail::setDefaultTransport($transport);
$mail = new Zend_Mail('utf-8');
$mail->setBodyHtml($message, 'utf-8');
$mail->setFrom('myemail@myhost.com', 'From me');
$mail->addTo($email, 'recipient name');
$mail->setSubject($subject);
$mail->send();

пятница, 13 апреля 2012 г.

MySQL. Добавить поле в существующую таблицу.

ALTER TABLE contacts ADD email VARCHAR(60);

ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;

ALTER TABLE contacts ADD email VARCHAR(60) FIRST;

ALTER TABLE contacts ADD opt INT(1) NOT NULL DEFAULT 0;