Search
Write a publication
Pull to refresh
46
0
Роман @SysCat

User

Send message

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

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

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

Синтез и распознавание речи от Google для Asterisk

Reading time5 min
Views85K
Доброе утро!

Вчера вечером заглянул на Хабр, увидел статью Google translate+Asterisk IVR и у меня волосы зашевелились в подмышках.

Синтез речи, как это просто!
Не нужно собирать Festival и искать для него семплы. Все уже готово, просто и от Google.

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

Программирование ПЛИС. Изучение явления «дребезг контактов» и метод избавления от него

Reading time5 min
Views49K
Мы продолжаем изучение ПЛИС и языка VHDL. В данной статье, ориентированной на новичков, мы изучим явление «дребезг контактов» и рассмотрим способ избавления от него.

Итак, цель работы: Изучить явление «дребезг контактов», создать проект в Xilinx ISE Project Navigator: При нажатии на кнопку значение регистра увеличивается на 1.

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

Сравнение производительности веб-серверов на примере Wordpress

Reading time2 min
Views7.3K

Введение


В этом посте я буду описывать то, как я проводил тестирование производительности веб-серверов.
Его цель в том, чтобы показать какие есть способы оптимизации производительности веб-сервера, особенно в условиях ограниченных по мощности VDS.

Конфигурации


Все тесты производятся на виртуальной машине с конфигурацией 1 ядро i5 2400 и 512 ОЗУ.
В качестве ОС используется Debian 6 x86. Apache 2.2.16, Nginx 1.1.4, eAccelerator 0.9.6.1, PHP 5.3.8, MySQL 5.1.49.
Nginx и Apache используются практически в стандартных конфигурациях, используют одну и ту же папку www, одну и ту же базу данных. Nginx работает через php-fpm. На всё это установлен чистый wordpress. Тестирование производится при помощи Apache Benchmark, который идет в комплекте с Apache.
Тестировал командой «ab -c 5 -n 300», что означает 300 раз по 5 параллельных запросов.
Основным методом увеличения производительности стал eAccelerator.

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

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Мотивация удаленных сотрудников

Reading time4 min
Views12K
В IT индустрии все чаще встречаются проекты с распределенными командами. Это удобно — спецификация, код, баги, мануалы легко перемещаются из одного конца планеты в другой за доли секунд. Это выгодно — аутсорсинг проектных процессов, будь то разработка, тестирование или саппорт, в Индии или Китае обойдется в 3–5 раз дешевле аналогичных сервисов в странах Европы или США.

Никого не удивишь проектом, в котором сейлз, маркетинг и бизнес анализ находятся в Англии, разработка в России, тестирование и саппорт — в Индии. Компания, в которой я работал, специализировалась именно на таких проектах. Наиболее слабыми местами в них, я бы назвал коммуникации внутри проекта и мотивацию его участников. Эта статья описывает эффективный подход к решению этих проблем в проектах с распределенной командой.

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

nginx — настройка фронтенда к ~username — public_html

Reading time2 min
Views4.4K
Конечно понимаю, что это может быть и не нужно никому, коль не нашел должного решения на просторах Интернета. Однако раньше, когда компьютеры были большими, а мы маленькими, были популярны так называемые домашние странички. У гордого индейца даже модуль под это дело есть — userdir.
Недавно (июнь, 2009) решил индейца загнать в бекенд, а фронтендом настроить nginx. Так вот готового решения для организации фронтенда для nginx'а не обнаружил. Недолго думая, почесал подбородок и накатал следующую конфигурацию к nginx'у. Представьте испытанное мною счастье когда это заработало.
Итак, задача заставить в фронтенде отдавать содержимое из хомдира пользователя — /home/user/public_html. Запрос к которому в браузере выглядит как site.name/~user:
Читать дальше →

Google translate+Asterisk IVR

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

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

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

Взлом защиты от копирования HDCP с помощью MitM-атаки

Reading time2 min
Views15K
HDCP (англ. High-bandwidth Digital Content Protection — защита цифрового содержимого с высокой пропускной способностью) — технология защиты медиаконтента, разработанная корпорацией Intel и предназначенная для предотвращения незаконного копирования высококачественного видеосигнала, передаваемого через интерфейсы DVI, DisplayPort, HDMI, GVIF или UDI. Защищённый видеосигнал может быть воспроизведён только на оборудовании, поддерживающем HDCP.
Википедия.


Уже более десяти лет широко используется защита от копирования HDCP, разработанная фирмой Intel. Этой защите доверяют медиа-корпорации, ведущие бизнес в сфере цифрового видео и аудио высокого разрешения, с оборотом в миллиарды долларов. Исследователи из рабочей группы по информационной безопасности аппаратного обеспечения во главе с профессором по имени Tim Güneysu из Рурского университета (Ruhr-Universität Bochum, RUB, Германия) смогли поставить мат защитной системе всей отрасли относительно небольшими усилиями с использованием так называемой атаки "Man-in-the-Middle" (MitM). Они продемонстрировали свои результаты на международной конференции ReConFig 2011.
Читать дальше →

Teamviewer, powershell и циска

Reading time4 min
Views34K
Поставили мне тут задачку прикрыть доступ посредством софтины Teamviewer к нашей сети извне. Предыстория вопроса немного грустная – исторически сложилось, что таким образом программер-подрядчик удалённо подключался к серверу с базами 1С. Да, всё неправильно и сложно, и попытки что-то изменить как технически, так и организационно, натыкались на противодействие бухгалтерии. Но речь не об этом, а о блокировке этого самого Teamviewer’а.

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



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

Использование HTTP proxy и SOCKS в Linux

Reading time4 min
Views180K
В Linux существует много полезных консольных команд, которые при необходимости хотелось бы запустить через proxy. Некоторые приложения имеют встроенную поддержку proxy, а некоторые нет. Далее описано как пользоваться востребованными утилитами через proxy, даже теми, которые этой поддержки не имеют.

curl: передача данных через proxy


curl имеет полноценную поддержку как HTTP proxy так и SOCKS.

Для тестирования возможно использовать proxy сервера из бесплатных списков (socks — sockslist.net, и HTTP proxy — proxyhttp.net). Проверка IP адреса будет производиться с помощью ресурса check-host.net

# Проверить HTTP proxy
curl --proxy 11.22.33.44:5555 check-host.net/ip
# Тоже самое, но если для HTTP proxy требуется авторизация
curl --proxy 11.22.33.44:5555 -U username:password check-host.net/ip
# Проверить socks4
curl --socks4 11.22.33.44:5555 check-host.net/ip
# Проверить socks5
curl --socks5 11.22.33.44:5555 check-host.net/ip
# Тоже самое, только преобразование имен идет также через SOCKS
# (подробнее о преобразовании имен можно прочитать ниже в подразделе "DNS запросы через proxy")
curl --socks5-hostname 11.22.33.44:5555 check-host.net/ip


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

Свой сервис обмена скриншотами (на коленке за 20 минут)

Reading time3 min
Views5.3K
Добрый день %habr%

Работая в JIRA/Redmine/basecamp/Wiki есть, ставший привычным, способ вставки изображения: !http://blah.com/img.png! Но бесплатные сервисы, в той или иной степени, не дают возможности работать эффективно.

Clip2net, например, не дает прямой ссылки на файл, а на выкорчевывание ее из страницы уходит время, если в таске 20 скринов и для каждого нужен URL…

Gyazo на бесплатном аккаунте ограничен по времени использования, URL приходится модифицировать дописывая ".png" в конце, картинки имеют ограниченный срок хранения, а реклама gyazo за которой уже сложно найти сам скрин — это нЕчто.

На мысль использовать Dropbox натолкнул этот комментарий. Идея мне показалось интересной и я засел за свой велосипед. DIY реализация «сервиса» и клиентской части, со своими плюсами и минусами, под катом.

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

Полевые транзисторы. For dummies

Reading time8 min
Views616K

Введение


А теперь давайте поговорим о полевых транзисторах. Что можно предположить уже по одному их названию? Во-первых, поскольку они транзисторы, то с их помощью можно как-то управлять выходным током. Во-вторых, у них предполагается наличие трех контактов. И в-третьих, в основе их работы лежит p-n переход. Что нам на это скажут официальные источники?
Полевыми транзисторами называют активные полупроводниковые приборы, обычно с тремя выводами, в которых выходным током управляют с помощью электрического поля. (electrono.ru)

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

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

Три контакта полевых транзисторов называются исток (источник носителей тока), затвор (управляющий электрод) и сток (электрод, куда стекают носители). Структура кажется простой и очень похожей на устройство биполярного транзистора. Но реализовать ее можно как минимум двумя способами. Поэтому различают полевые транзисторы с управляющим p-n переходом и с изолированным затвором.

Вообще, идея последних появилась еще в 20-х годах XX века, задолго до изобретения биполярных транзисторов. Но уровень технологии позволили реализовать ее лишь в 1960 году. В 50-х же был сначала теоретически описан, а затем получил воплощение полевой транзистор с управляющим p-n переходом. И, как и их биполярные «собратья», полевые транзисторы до сих пор играют в электронике огромную роль.

Перед тем, как перейти к рассказу о физике работы униполярных транзисторов, хочу напомнить ссылки, по которым можно освежить свои знания о p-n переходе: раз и два.
Читать дальше →

Вышел PhpStorm 3.0

Reading time1 min
Views4.1K
Доступна для загрузки новая версия PhpStorm — среды разработки для PHP от компании JetBrains. Закачка идет быстро и нас здесь хорошо знают — так что буду краток.

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

  • Анализ кода и поиск дубликатов помогут вам найти потенциальные ошибки и код низкого качества, рефакторинг — безопасно улучшить его
  • Диаграммы классов UML помогут охватить взглядом структуру проекта и семантическое представлений изменений — локальных или из VCS
  • Просмотр результатов профилирования c помощью Xdebug и Zend Debugger
  • Поддержка PhpUnit 3.6 и всех опций командной строки
  • CoffeeScript
  • Рекурсивная синхронизация папок и гибкая настройка исключений FTP/SFTP
  • Microsoft TFS, граф ревизий для git
  • Новый интерфейс для всех операционных систем

Подробности и картинки

Уже скоро: релиз WebStorm 3.0 — поддержка Node.JS, JSLint и JSTestDriver

Работайте с удовольствием!

P.S. Ошибки — в трекер, вопросы — в форум, работа над 3.0.1 уже идет!

Как я делал отказоустойчивый веб-сервис

Reading time6 min
Views15K

Предисловие


В этой статье я хотел рассказать о своем опыте построения отказоустойчивого Web-сервиса. Я разрабатывал внутреннюю систему управления предприятием на PHP+MySQL (корпоративный портал), и, так как почти вся жизнь предприятия зависит от работоспособности этой системы, вопросы отказоустойчивости приобретают большое значение. Вместе с тем предприятие небольшое, соответственно, позволить себе дорогое железо и технологии оно не может, да и простой системы в несколько часов для него тоже не смертелен. Поэтому я старался решить эту задачу с минимальными денежными вложениями и обходясь своими силами и небольшими знаниями в области администрирования.
Читать дальше →

Разработка модульного движка на PHP

Reading time5 min
Views8.9K
Есть много разных движков на PHP, от достаточно простых, до очень тяжеловесных и громоздих, включающих практически все.

Но на мой взгляд лучший движек — расширяемый. И не такой, что к куче своих возможностей предлагает прикрутить еще и некоторые, а такой, в которого своих возможностей как-бы и нет, а есть только подлкючаемые на выбор.
Читать дальше →

Ограничение скорости на DIR-320N/RU

Reading time2 min
Views21K
Понадобилось устроить шейпер на какой-нибудь дешевой железке. Железкой планировался быть DIR-320 от известного китайского производителя. Но вместо хорошего и простого DIR-320 приехал ужасный и непонятный DIR-320NRU и начались проблемы.
Читать дальше →

Строим гусеничного Bluetooth-робота с камерой. Часть 1

Reading time7 min
Views147K
По многочисленным просьбам я решил описать процесс создания вот такого робота с камерой на гусеничном шасси и управлением по bluetooth с помощью джойстика.

Я всегда мечтал создать робота, которым можно управлять с помощью компьютера и смотреть за его перемещениями от первого лица.
Весь процесс я условно разделил на три части:
1. Сборка робота
2. Программирование боротового микроконтроллера
3. Программирование управления с ПК
Читать дальше →

Долго ли умеючи, или массовый запуск серверов с минимумом трудозатрат

Reading time6 min
Views21K
В нашей первой статье, как и анонсировалось ранее, мы спешим поделиться своим опытом в таком редко обсуждаемом вопросе как быстрое развертывание сотен серверов в рамках высоко нагруженного проекта.

Как развернуть несколько сотен серверов в географически удаленном дата-центре при отсутствии физического доступа к оборудованию? Как компания Badoo решает такую задачу?
Мы расскажем вам об этом на следующем примере.

Ниже пойдет речь о самом первом этапе конфигурирования серверного оборудования; о том, как быстро и в срок мы выполнили конкретную задачу, а не о написании оптимальных скриптов. В случае, если данная тема покажется вам интересной, мы с удовольствием расскажем и об установке ОС на сервера и настройке рабочего окружения, в чём тоже имеются свои тонкости.
Читать дальше →

Школьный DDoS и стоит ли его бояться

Reading time3 min
Views15K
Современный интернет предлагает четыреста относительно честных способов зарабатывания денег. К сожалению, не все алчные до наживы персонажи ими ограничиваются. К счастью, только некоторые из них обладают достаточной квалификацией, чтобы причинить серьезный вред. Тем не менее их действия для неподготовленных людей могут оказаться достаточно разрушительными. Под катом вы найдете душещипательную историю с угрозами, шантажом, вероломным нападением и традиционным киношным хеппиэндом.
Читать дальше →

Information

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