четверг, 27 августа 2009 г.

Локальный SMTP и POP3 сервер для development mode

Сейчас я работаю над системой одной из функций которой является рассылка пользователям e-mail'ов (aka мыла), серверную часть мы пишем на java. Когда система работает в production mode, она отсылает мыло на реальные адреса пользователей. В процессе разработки мы все запускаем наш java сервер на воркстейшенах, и конечно, нужен SMTP сервер на который система отсылала бы мыло в development mode, и нужен POP3 cервер чтобы читать это мыло. К счастью, в Ubuntu Jaunty появился новый пакет - dovecot-postfix. Он содержит POP3 и SMTP сервер. При инсталляции спрашивает тип установки - я выбрал local. После установки на воркстейшене появляются SMTP и POP3 серверы готовые к использованию. В настройках java сервера указываю что SMTP сервер находится на localhost. Теперь нужно поправить конфиг файл для SMTP сервера (Postfix) чтобы он редиректил всю почту на мой аккаунт на локальном POP3 сервере. Для этого нужно прописать в файле /etc/postfix/virtual-regexp правило
# Rewrite all addresses to sgr@localhost
/.+@.+/ sgr@localhost

и добавить в /etc/postfix/main.cf строку
virtual_maps = regexp:/etc/postfix/virtual-regexp

Готово. Перезапускаем Postfix чтобы он перечитал конфиг файл.
Теперь вся почта, которая посылается java сервером, редиректится на мой аккаунт. Осталось настроить почтовый клиент ( я использую evolution) чтобы он забирал почту с локального аккаунта на POP3 сервере, логин и пароль тот же что и для входа в Ubuntu.

пятница, 14 августа 2009 г.

Как смотреть прогресс восстановления базы данных MySQL из дампа

Недавно открыл для себя чрезвычайно полезную утилиту pv. Раньше я импортировал дамп базы данных MySQL так:

mysql my_database < dump.sql

Я не указываю для команды mysql хост, логин и пароль, потому что эти настройки хранятся в файле my.cnf. Если дамп достаточно большой, он может импортироваться несколько часов. Чтобы увидеть прогресс импорта нужно сделать так:

pv dump.sql | mysql my_database

суббота, 8 августа 2009 г.

Как работает Ubuntu Support Team

У меня возникла проблема, впервые за два года использования Ubuntu я не смог найти решение в интернете, пришлось писать на форум Ubuntu. Я запостил вопрос и думал что мне ответят на следующий день в лучшем случае. Я был приятно удивлен когда через 10 минут после того, как я запостил мой вопрос, я получил на e-mail нотификацию про ответ. Возвращаюсь на форум, там написано что у меня есть новое личное сообщение. Читаю (вольный перевод с английского)

Дорогой юзер,

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

Дальше ссылка на топик форума как решить проблему.

Что тут можно еще добавить? 10 минут это отличный результат.

YAML is XML for human beings

Недавно я скачал себе Google App Engine SDK для питона, и один из конфиг файлов назывался config.yaml. Я заинтересовался, что за YAML, и оказалось что YAML это такой язык, альтернатива XML. Как и XML, YAML создан для описания данных, но предназначен для чтения людьми, а XML как мы знаем, предназначен для чтения компьютерами. Действительно, YAML визуально воспринимается намного лучше чем XML. В этом читатель может легко убедиться, зайдите на Official YAML Web Site, главная страница написана на YAML.

Я предпочитаю использовать YAML для конфиг файлов вместо XML. Еще одно возможное применение - данные для юнит тестов.