Создание регулярных выражений из диапазонов телефонных номеров

Апрель 15th, 2013

В процессе ковыряния FreeSWITCH'а разумеется возникла задача разруливать направления звонков по дипазонам номеров. Полагаю, оно возникает у большинства настраивающих IP PBX как только доходит до работы с несколькими направлениями. На пример, звонки на разных сотовых операторов через разные GSM-шлюзы. Квест один и тот же - имея план нумерации в виде диапазонов номеров, получить его в виде регулярных выражений для скармливания ATC. Причем не важно, для FreeSWITCH или Asterisk - регулярки нужны (примерно) одинаковые.

Гуглинг первым делом привел на Хабр, где автор поста обозначил проблему, с которой я не сталкивался. Ну просто не было таких диапазонов в интересующих меня направлениях. Проблема, собственно, в том, что диапазон может быть сильно не круглым как по длине, так и по первому/последнему номеру, и одной регуляркой никак не накрываться. У сотовиков это скорее исключения, а вот у фиксированной связи - сплошь и рядом.

Читать далее »

Про цифровое телевидение и приставки для его приема.

Февраль 24th, 2013

Ура! Ура! В Нижнем Новгороде запустили цифровое вещание в DVB-T2. Щастье! Щастье! Теперь у нас есть новый гемморой!

Не, ну т.е. можно конечно забить на цифру и продолжать смотреть аналоговое, которое (пока) никуда не делось. Но раз уж есть возможность смотреть без помех, то хочется ей пользоваться. Вернее, мне самому как-то пох, но есть граждане, которым телевизор нужен. Мама моя, на пример, и бабушка.

Читать далее »

KVM и USB 2.0

Январь 18th, 2013

Понадобилось мне тут подцепить iPad к виртуалке с виндой. Понадобилось, а никак не сростается, только ругается в логи, что не может соотнести скорости USB устройств.

kvm: Warning: speed mismatch trying to attach usb device iPad to bus usb.0

Оказывается kvm (т.е. и qemu) дано умеют симулировать USB 2.0, но просто так это делать не хотят. В случае использования libvirt, нужно или в доспетчере добавить USB2.0 хаб к устройствам, или как в моем случае, поправить конфиг виртуалки, добавив в секцию devices:

<controller type='usb' index='0' model='ich9-ehci1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
</controller>


Windows 2008 и PostgreSQL

Декабрь 15th, 2012

Развекался апгрейдом сервака под БД для 1с - переехали на новое железо, а заодно и 2003-ф винду сменили на 2008 (не выбрасывать же лицуху). Как понятно из сабжа, трудиться на сервере должна вовсе на MS SQL, а очень даже Postgres. Накатили винду, ставим базу - хрясь и нету. В смысле громко ругается на невозможность создать некую временную папку. Попробовали добавлять и отбирать права у юзера, ставить с консоли и прочее написанное в факе. Уже придя домой догадался заглянуть в папку установки - там после неудачных попыток осталась одинокая папка "tmp". Снес ее, запустил установку - оно встало.

Как-то так.

А Сбербанк-то, по прежнему Сбербанк

Декабрь 11th, 2012

Не подоводит курва. Мне уж было показалось, что пошли таки на встречу клиенту, а нет, держат марку.

Давеча на работе очередному гражданину понадобилось оплатить билеты (да пофиг что) сберовской картой и гражданин был проксей послан. Потому что сберовский шлюз оплаты (ну, где нужно ввести код пришедший по SMS) решил, что для https одного порта 443 недостаточно и захотел пойти через порт 9443. Ладно, пустил. Не, сегодня дергают с той же проблемой. Эта су## организация (которая Сбербанк) по какой-то причине решили, что они еще умнее и https нужно каждый раз делать на другой порт, а чтобы показать привершенность традициям, номер порта будет все же заканчиваться на 443. А прокси не дурак, прокси не дает делать CONNECT куда попало. Так и пришлось делать отдельное правило для acs.sbrf.ru.

Но все же никак не могу понять чего ради это делается. Неужели для усиления защиты? Типа man-in-the-middle снифающий трафик не будет весь его прослушивать, а посмотрит что по 443 порту ничего нету и пойдет себе дальше с миром, ага.

phpQuery и утечки памяти

Ноябрь 19th, 2012

Сегодня я не смог залогиниться на свою VPS. На попытки зацепиться по ssh она только хмуро сообщала мне, что соединение сброшено удаленной стороной. Ну и в логах потом нашлось не менее хмурое

sshd[1590]: error: fork: Cannot allocate memory

Собственно, принина нашлась быстро - крутящийся в фоне PHPшный скрипт, занимающийся тем, что перебирает страницы сайта и выдергивает из них нужную инфу. Для такого дела нем применена библиотека phpQuery. Замечательная, надо сказать, штука - порт jQuery на PHP, очень удобно добираться до нужных блоков в дебрях документа. Но есть и подводные камни, вроде как раз того, на который я и нарвался.

В каждом цикле мы разгребаем новый документ, шерстим его, складываем вытащенную инфу и так далее по кругу. Предидущий документ при этом никуда не девается и продолжает занимать память. Разумеется через некоторое время скрипт выжирает все что можно выжрать (или падает, если в PHP включено органичение потребляемой памяти).

Собственно, Решение-то простое - нужно просто освобождать память после обработки документа (Кэп!)

while(true) {
$html = PhpQuery::newDocument($content);
// работаем-работаем-работаем
phpQuery::unloadDocuments();
gc_collect_cycles();
}

gc_collect_cycles, это запуск PHPшного сборщика мусора. Так, на всякий случай. В долгоиграющих скриптах его в любом случае полезно пускать время от времени.

Вывод денег с PayPal на карту Payoneer

Октябрь 11th, 2012

Как известно, на данный момент для граждан великой и могйчей 1/6 части суши есть ровно один вариант вывода денег с PayPal - на счет в банке США. У меня как раз завалялось в палке некоторое количество денег и возникло навязчивое желание конвертировать цифирьки на экране в хрустящие бумажки. Или не бумажки, или не хрустящие, но так или иначе иметь возможность спустить их не только покупая что-то через нэт. В этом желании я не одинок и способы вывода известны. Из наиболее распространенных - использование MoneyBookers или Payoneer. Первые я как-то даже не стал изчать. Возможно они и офигенны, но предложение Payoneer меня вполне устроило.

Читать далее »

InDesign создан на основе Scribus.

Июнь 22nd, 2012

Имхо, отличный вброс. Это сегодня озвучила моя начальница, которая заодно подрабатывает весткой. Решил поинтересоваться чойта и нашел источник счастья - http://yuri-pavl.com/forindesign/

Adobe InDesign был создан на основе условно бесплатной программы Scribus (Скрибус) - это приложение для визуальной вёрстки документов, созданное для пользователей Linux/Unix/Mac OS X и Windows.
Программа распространяется на условиях GNU General Public License.

На мой взгляд из этого опуса следует, что InDesign есть софтина под GPL, работающая в Linux/Unix/Mac/Windows и созданная на основе условно-бесплатного Scribus. На всякий случай напоминаю: в реальности InDesign коммерческое проприетарное приложение для Win/Mac, а Scribus - сободная (а не условно-бесплатная) программа под лицензией GPL, о чем недвусмысленно сказано в соответсвующем разделе документации. И да, работает в Linux/Unix/Mac/Windows.

А на счет происхождения видов... Я не знаю кто там с кем, но InDesign 1.0 выпущен в 1999 году (что, кстати, указано и в этой же методичке), Scribus 1.0 - в 2003, хотя судя по тому же разделу с лицензионным соглашением, разрабатывается с 2001.  В любом случае, если у Адобов не завалялась машина времени, то родство этих двух софтин весьма сомнительно.

Дальше не читал. Возможно в остальном это толковая методичка, но произведения начинающиеся с бреда я готов читать только ради поржать.

UPD: Сменилась версия InDesign, сменилась и методичка. В нынешней версии история появления индизайна никак Scribus не затрагивает.

 

Прием и отправка SMS из командной строки Android'а

Июнь 6th, 2012

Один гражданин (не будем тыкать пальцем, но это был Ged), внес в мои ряды смуту озвучив вслух мыслю, что неплохо бы научиться читать (тогда уж и отправлять) SMS на своей мобилке для своих же корыстных целей. Разумеется более-менее автономно, с какой-то реацией на получение. Ну и без ковыряния в джаве.

Понятно сразу вспомнилось, что под андроидной гуйней есть вполне себе sh, а то и busybox с ash и прочим блэкджеком. Соответсвенно можно ваять скрипты, но остается, собственно, начальный квест - прочитать-отправить. Путем ковыряния гугла и мобилы было найдено следующее:

service call isms 5 s16 "+7950xxxxxxx" i32 0 i32 0 s16 "blah-blah-blah" # для отправки

echo "select * from sms;" | sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db | tail -n 2 # для чтения

Соответственно, для чтения помимо прочего требуется установленный на аппарате sqlite. Мне, как человеку юзающему Цианоген пофиг, а большинству придется видимо рутовать аппарат и ставить отдельно. tail добавлен по вроде бы понятным причинам - без него будут вываливаться все имеющиеся в мобиле SMS.

А, да. Верно для второго дроида. На других не проверял.

Бэкап на облако. В частности, про webdav.

Май 31st, 2012

Отоварился я, стало быть, VPS'ом. Вместе с обладанием удаленной чужой виртуалкой возникло неприятное ощущени от осознания того, что ручками своими загребущими я в случае чего до винта уже не дотянусь и данные не повыковыриваю. Кэп подсказал, что нужно бэкапиться.

Складывать копии можно много куда. Но домой не вариант по техническим соображениям (провайдерский NAT,  далеко не ынтерпрайзное железо), на работу по идейным (лишняя привязка к текущему работодателю). Будем ныкать в облака

Большинство (если не все) облачных хранилищ предоставляют доступ через web-интерфейс, но для автоматики это не интересно, потому как парсинг и привязка к конкретному интерфейсу. Есть свои API - опять же vendor lock. Но у многих есть доступ по webdav и это есть хорошо, ибо не так уж безобразно, за то однообразно. Есть webdav и у Яндекс.Диска который я и решил использовать.

Читать далее »