Search
Write a publication
Pull to refresh
36
0
Абабий Александр @Alexcr

User

Send message

Оповещение от Nagios по телефону через Asterisk

Reading time5 min
Views7.2K
Прочитал вчера статью Google translate+Asterisk IVR и подумал — «Клёво! Можно пользоваться для быстрого создания звуковых файлов при заведении новых хостов и сервисов в Nagios!».

Затем задался вопросом, а описано ли где-то как настроить оповещения по телефону для Nagios? Погуглив немного я нашел пару статей, прочитал их и понял, что решения описанные там обладают рядом недостатков:
  • Nagios и Asterisk должны быть установлены на одном сервере.
  • Требуется локальная установка движка по синтезу речи.
  • Телефон админа «зашит» в скрипт и он получает ВСЕ уведомления.
Вот я и решил поделиться своим решением, которое использую уже не первый год.
Читать дальше →

Google translate+Asterisk IVR

Reading time7 min
Views34K
Долго думал в какой блог запостить и решил, что здесь ему наиболее подходящее место. Хотя бы потому, что основная идея топика «sh — может все».

В этом топике задали интересную тему — реализовать IVR для * с использованием синтезатора из Google Translate.

Я в общем то даже не планировал этим заниматься, но мне стало интересно.
Читать дальше →

Удобное приложение для реализации субдоменов в Django — django-hosts

Reading time1 min
Views7.6K
django-hosts — полезное приложение от замечательного Jannis Leidel, который входит в состав Django core-developers и курирует большое количество Django-проектов.
Документацию можно найти на readthedocs.
Пример установки:
  • Устанавливаем: pip install django-hosts
  • Добавляем 'django_hosts' в INSTALLED_APPS
  • Добавляем 'django_hosts.middleware.HostsMiddleware' в MIDDLEWARE_CLASSES
  • В директории проекта создаем файлик назовем его например hosts.py
  • Примерное содержание hosts.py:
    from django_hosts import patterns, host
    host_patterns = patterns('path.to',
        host(r'api', 'api.urls', name='api'),
        host(r'news', 'news.urls', name='news'),
        host(r'forum', 'forum.urls', name='forum'),
    )

    В соотвтетствии с файлом hosts.py у нас появятся 3 хоста: api.site.com, news.site.com, forum.site.com.
  • В settings.py добавляем: ROOT_HOSTCONF = 'projectname.hosts'

Не забываем про настройку wildcard субдомена (Хотя не обязательно wildcard — достаточно прописать необходимые. Ну а как все это сделать думаю все знают).
Читать дальше →

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views983K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →

Новичкам про управление шириной канала в Linux

Reading time7 min
Views77K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →

Mikrotik Router OS, скрипт для динамического деления скорости (Версия 2)

Reading time13 min
Views21K

Mikrotik Router OS, скрипт для динамического деления скорости (Версия 2)



Это вторая версия, первая лежит тут: тут.

На днях встала следующая проблема: делить скорость поровну между всеми пользователями, причем так, чтобы скорость не выделялась на клиентов, которые на данный момент не пользуются интернетом, а отдавалась всем остальным, еще чтобы при большом количестве клиентов и узком канале получить некоторую «буферность» канала.

Исходя из прошлого опыта, был написан совершенно новый скрипт исключающий недостатки прошлого и доработанный для текущих потребностей.

В новой версии стало все значительно проще в плане расположения пользователей, теперь не имеет значения, как подключился пользователь, главное, что у него есть ip адрес и этого нам достаточно.
Читать дальше →

Panasonic KX-TGP500 DECT

Reading time3 min
Views71K
Компания Panasonic вышла на рынок с новым бюджетным SIP-DECT телефоном KX-TGP500, производитель ориентировался на малый и средний бизнес и цена этому доказательство от 3100 до 3700 р. Телефон получил супер звук благодаря технологий High Definition Sound Performance и яркий черно белый дисплей с белой подсветкой. В режиме разговора телефон будет работать до 12 часов а в режиме ожидания до 120 часов. Телефон работает с Asterisk, Trixbox, Switchvox, 3CX и другими ИП АТС.



Читать дальше →

Видеозаписи с нашего Qt-тренинга для начинающих

Reading time3 min
Views38K
Всем привет!

Сегодня мы бы хотели поговорить про нашу образовательную программу для начинающих программистов. Кто-то из вас наверняка знает, что мы регулярно проводим бесплатные образовательные тренинги для всех желающих писать программы на Qt — и кто-то из вас на них даже успел побывать. Для тех же, кто про эти тренинги не слышал, но с радостью бы на них сходил, мы предлагаем под катом посмотреть полную видеозапись одного подобного мероприятия.

Видеозаписи, представленные ниже, были сделаны на трехдневном тренинге по Qt, который мы проводили с 16 по 18 мая этого года в Москве. Он был рассчитан на начинающих Qt-программистов, у которых всё же был опыт программирования на C++. Тренинг проводил Кирилл Кринкин, руководитель лаборатории FRUCT Open Source & Linux Lab, целью которой является продвижение знаний в массы.

День первый


Знакомство с Qt

В первом видеоролике рассказывается про историю Qt, различные отличия этого фреймворка от других. Кирилл Кринкин рассказывает про основные компоненты Qt SDK, отдельно останавливаясь на основных модулях Qt. В окончании видео речь заходит о сравнении Qt в GTK.



Остальные записи под хабракатом

Эффективное использование Vim

Reading time11 min
Views74K

Введение


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

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
Читать дальше →

Полочная акустика своими руками

Reading time12 min
Views527K
Однажды я задумал собрать себе качественную акустику для озвучивания небольшой комнаты, а также для использования в качестве мониторов ближнего поля при работе со звуком на компе (хобби). Главное требование — адекватное звучание по отношению к источнику. Не чтобы «низы колбасило» или «тарелочки звенели», а именно адекватное естественное звучание. Итак, собираем качественные «полочники».
Читать дальше →

H.264 декодер на JavaScript

Reading time1 min
Views7.9K
Прежде чем отправить публикацию, крепко задумался, какой блог выбрать: JavaScript или Ненормальное программирование. Так или иначе круг задач, которые можно решить на детище Нетскейпа расширяется с каждым днем.

Так например разработчики из команды Mozilla смеха ради сделали H.264 декодер на JavaScript. Любопытно, что скрипт при этом не был написан вручную.

Читать дальше →

Кеширующий прокси-сервер на nginx. Хитрая конфигурация

Reading time7 min
Views40K
На Хабре уже есть несколько описаний Nginx, но, думаю, моя конфигурация тоже будет интересна.
Ситуация выглядит следующим образом: есть размещённый на нескольких серверах IIS сайт (интернет-магазин), перед ним расположен балансировщик. Между ними решено установить nginx для уменьшения нагрузки на IIS.

Основная масса динамического контента отображается Ajax-ом, так что кеширование страниц каталога товаров вполне безопасно. Однако на них могут быть отзывы о товаре, за которые можно проголосовать — совсем как на Хабре, что тоже надо учесть.

Плюс к этому хочется поддерживать валидность популярных страниц в кеше автоматически.
Читать дальше →

Автоматизация работы интернет-радио на Linux

Reading time18 min
Views33K
Привет, `whoami`.

В этом посте я расскажу тебе об одном из методов автоматизации интернет-вещания – не самом надежном, но самом бюджетном. Сразу предупреждаю, что эта система заточена на использование ее под Linux, хотя с помощью знакомого многим «столярного инструмента», можно и под Windows реализовать. Эта статья расчитана на начинающих IT-шников, поэтому многие моменты я постарался «разжевать». Как у меня это получилось, решать тебе, мой дорогой читатель, но если мне удалось заинтересовать тебя, прошу под кат.
Читать дальше →

Кластер, который всегда с собой

Reading time5 min
Views41K
lxcЗахотелось странного.
Во-первых, взгромоздить кучу виртуальных машин прямо на свой ноутбук.
А во-вторых, раскурить одну виртуализацию внутри другой.

Речь пойдет про использование контейнеров LXC, причем внутри другой виртуальной машины.

WTF! На кой это нужно?

Дозаправка в дороге — мобильная USB зарядка

Reading time2 min
Views70K
Почти все современные гаджеты могут заряжаться от USB порта компьютера или зарядки с таким портом.
Мода на компактные устройства привела к тому, что аккумуляторы в них не слишком емкие. Например мой HTC HD2 едва выдерживает рабочий день при активном использовании, а в режиме GPS навигатора и того меньше. В итоге приходится бегать от зарядки до зарядки или носить с собой запасные аккумуляторы к каждому устройству. Но комплект разных аккумуляторов обойдется недешево да и замена аккумулятора на прогулке — это минут 5: выключить, сменить аккумулятор, включить, запустить софтинку, дождаться пока снова найдет спутники. Неприятно.

Я покажу как сделать USB зарядку, которую можно взять с собой.
RMPS
«RMPS»
Она позволяет зарядить через стандартный USB порт все, что ест не больше 3А, а сама питается постоянным напряжением примерно от 7.2В до 22В. (авиамодельные, автомобильные аккумуляторы, все, что есть под рукой).
Себестоимость порядка 280-300 рублей. Времени на изготовление примерно 1 час. Размер — чуть больше батарейки АА.
Читать дальше →

Мотивация на здоровье! Или как сохранить здоровье, постоянно работая за компьютером

Reading time7 min
Views4.5K
История одного проекта.

Делая проекты и работая, сидя за компьютером, по 12-15 часов в сутки (часто и дольше), я начал замечать как мои глаза начали слезиться и краснеть, шейные позвонки просто ныли (небольшой стресс и они просто не давали спокойно жить), кисти рук, поясница и ноги немели. Вечером, поужинав, засыпал, но ночью просыпался и опять работать. Вырос живот, обвисли мышцы, стал раздражителен.
Хотя все мы знаем о пользе гимнастики. Читали, сохраняли много упражнений себе в «Избранное» (у самого куча подобного в избранном и на дисках). Может пару раз, потом забывали или лень, или не хватает времени, глядя в зеркало и обещая себе «В понедельник начинаю новую жизнь!». Это не очередная статья, которая рассказывает о том, чем нам грозит сидячий образ жизни и какую пользу приносит гимнастика – вы наверняка знаете об этом предостаточно.

Позвольте рассказать свою историю, от понимания проблемы, до реализации решения в виде сервиса…

Читать дальше →

Firewalls — немного теории для начинающих или что надо знать перед покупкой

Reading time5 min
Views38K
Несколько лет назад мне пришлось окунуться в мир firewall-ов и найти нужный вариант. Платный/бесплатный, открытый/закрытый, железо или софт. Опций предостаточно. Сегодня все это позади и у меня уже давно есть любимый firewall, который я ставлю за считанные минуты, но тем, кто только начинает работать в этой области, хотелось бы помочь внеся хоть какую-то ясность. Надеюсь, что поможет.
Читать дальше →

17 простых советов для повышения продуктивности

Reading time3 min
Views33K
Эти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.

Вступление окончено, переходим к советам!
Читать дальше →

О замене стандартного /sbin/init

Reading time4 min
Views13K
init — первый пользовательский процесс в Unix-подобных операционных системах
init — запускается непосредственно ядром системы.
init — является пра-родителем всех пользовательских (userspace) процессов системы.

Стандартный /sbin/init читает конфигурационный файл /etc/inittab, стартует систему и управляет системой используя несколько «уровней исполнения» (runlevels).

С помощью одноименного ключа init можно сказать ядру Linux использовать другой файл, вместо стандартного /sbin/init

Воспользуемся этой возможностью и добавим следующую конфигурацию в /boot/grub/menu.lst
title Linux kernel and custom init
root (hd0,1)
kernel /linux/vmlinuz-2.6.26-1-686 root=/dev/hda2 init=/linux/init
initrd /linux/initrd.img-2.6.26-1-686

Кто пользуется возможностью подменить процесс init? Иногда к этому прибегают разработчики встраиваемых систем — таким способом можно упростить разработку устройства и не тащить за собой всё окружение операционной системы.

В моём случае желание подменить init лежало в другой плоскости — хотелось проверить как поведёт себя процесс init системы Xameleon исполняемый Linux ядром. Желаете попробовать тоже?

Читать дальше →

Как мы разрабатывали интеграцию интернет-магазина с 1С: Предприятие и почему она стала массовой

Reading time9 min
Views111K
Как обеспечить актуальный каталог товаров и их наличие на сайте и обработать заказы покупателей в соответствии с внутренними бизнес-процессами? Многие владельцы интернет-магазинов сталкиваются с данной задачей.

Интегрировать отдельно взятый интернет-магазин с учетной системой предприятия в целом несложно. Реализовать готовую интеграцию в коробочной поставке CMS-системы и сделать ее простой и понятной для массового использования, универсальной для различных задач — непростая и интересная задача. Данный топик — о нашем опыте разработки интеграции интернет-магазина с популярной учетной системой 1С: Предприятие.



Под катом мы расскажем как ставились задачи, выбиралась архитектура и технические решения, что получилось в итоге, как это настраивается и работает.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity