Подборка SQL запросов

Допустим у вас есть номер телефона рекламного отдела и PR-манагеры пустили какую-то рекламу в сентябре. Задача: найти всех клиентов которые позвонили в сентябре первый раз в жизни, но при этом им, что-то не понравилось и они не звонили после сентября. Инфа нужна, чтоб промыть им мозги… 🙂 Вот, что у меня получилось сходу: … SELECT … Читати далі

Миграция Postgres с 8.4 на 9.0

Решились потренироваться делать репликацию Master-Slave, которая реализована в версии 9.0
Значит так-с…
1. Обновляем Portage

emerge --sync

2. Ставим новую БД

LINGUAS="ru" ACCEPT_KEYWORDS="~amd64" emerge -av  /usr/portage/dev-db/postgresql-server/postgresql-server-9.0.1.ebuild

3. Конфигурим

emerge --config =dev-db/postgresql-server-9.0.1

4. правим конфиг и запускаем на порту 6543, не выключая старый постгресс
5. производим миграцию БД

pg_dumpall -p 5432 | psql -d postgres -p 6543

6. стартуем новую БД на порту 5432 предварительно выключив старую

После чего устанавливаем Postgres на втором хосте, который будет использоваться как Slave

LINGUAS="ru" ACCEPT_KEYWORDS="~amd64" emerge -av  /usr/portage/dev-db/postgresql-server/postgresql-server-9.0.1.ebuild

Вносим изменения в Master, чтобы слэйв мог к нему подключится:

$ $EDITOR postgresql.conf
listen_addresses = '10.0.xx.yy'

$ $EDITOR pg_hba.conf
# The standby server must have superuser access privileges.
host  replication  postgres  10.0.xx.zz/22  trust

Читати далі

Iskratel vs Asterisk

Состыковка Астериска с ИскраТел проходит довольно занятно.
Провайдер телефонной связи может отдавать телефонные звонки по SIP, но сервер сигнализации и голосовые сервера находятся в разных местах.
По умолчанию Астер считает, что источник RTP находится на одном хосте с Сервером сигнализации, чтоб сказать ему о поиске голоса на тех хостах которые приходят в INVITE, а также в SDP, в настройках sip.conf необходимо добавить такие строки

canreinvite=yes
dtmfmode=info

When SIP initiates the call, the INVITE message contains the information on where to send the media streams. Asterisk uses itself as the end-points of media streams when setting up the call. Once the call has been accepted, Asterisk sends another (re)INVITE message to the clients with the information necessary to have the two clients send the media streams directly to each other.

А также опцией permit разрешить посылать голос на хосты отличные от сигнального.
В итоге лог должен содержать что-то типа такого:

Читати далі

Flash Player под 64bit Gentoo

Чтоб обновить флэшплеер под Firefox нужно сначала поставить nspluginwrapper emerge -av www-plugins/nspluginwrapper потом поставить сам флеш: emerge -av www-plugins/adobe-flash после чего запустить врапер указав саму библиотеку: nspluginwrapper –verbose –install /usr/lib32/nsbrowser/plugins/libflashplayer.so и по идее все должно работать

Привязать MAC к IP на шлюзе

Чтобы отсеять незнакомцев которым не дозволен выход в инет либо гуляние по корпоративным подсетям, можно применить фильтр мак-адресов + ip-адресов
В случае если шлюзом выступает сервер на Linux, с iptables на борту, выглядит это так:

Читати далі

15 команд для управления PostgreSQL

1. Как изменить root пароль в PostgreSQL?

$ /usr/local/pgsql/bin/psql postgres postgres
Password: (oldpassword)
ALTER USER postgres WITH PASSWORD ‘tmppassword’;
$ /usr/local/pgsql/bin/psql postgres postgres
Password: (tmppassword)

Читати далі

проброс udp трафика в http

появилось желание давать знакомым смотреть свое домашнее ip-tv

Пара десятков минут в гугле и решение банально простое:
лезем на SourceForge
качаем архив, распаковываем и в папке делаем:

make && make install 

Читати далі

Залипание порта в Asterisk

упал несколько раз Астериск 1.6.1.14.

Перед смертью в логи было написано пару милионов раз:

WARNING[21761] asterisk.c: Accept returned -1: Too many open files

а система утверждает, что Астер не врет

lsof | grep asterisk | wc -l
1129

Читати далі

Горячие клавиши в screen

Key Action Notes Ctrl+a c new window Ctrl+a n next window I bind F12 to this Ctrl+a p previous window I bind F11 to this Ctrl+a “ select window from list I have window list in the status line Ctrl+a Ctrl+a previous window viewed Ctrl+a S split terminal horizontally into regions Ctrl+a c to create … Читати далі

вумні слова

Часто мы говорим “Не люблю”, а в душе у нас текут слёзы. Часто мы говорим “Ненавижу” только для того, чтобы мы сами поверили в это. Часто мы говорим “Прощай” в надежде увидеть человека ещё раз. Мы говорим “Уйди”, чтобы человек не видел наших слёз. Мы говорим “Никогда”, когда знаем что это случится вновь. Мы говорим … Читати далі