Pull to refresh
3
0
Роман Лукьяненко @lukianenko

специалист по системам IP телефонии

Send message

Автомобильная электротурбина

Reading time3 min
Views61K
Наиболее действенным способом увеличения мощности двигателя автомобиля является турбина. Однако она имеет ряд существенных недостатков таких как: наличие турбоямы, оптимальная работа в небольшом диапазоне оборотов двигателя, невысокий ресурс, сложность установки в неподготовленный для этого двигатель.

Многие из этих проблем способна решить электротурбина. С электротурбиной необходимое давление наддува можно создать в любой момент и можно сбавлять обороты не боясь, что давление понизится. В электротурбине нет горячей части разогреваемой до тысячи градусов. Это положительно сказывается на её ресурсе, цене и простоте установки.

Данная статья будет посвящена нашей разработке в этом направлении.


Total votes 35: ↑30 and ↓5+25
Comments240

Мега-Учебник Flask, Часть 1: «Привет, Мир!»

Reading time6 min
Views572K
Это первая статья в серии, где я буду документировать мой опыт написания веб-приложения на Python, используя микрофреймворк Flask.

Здесь список всех статей в серии:
Часть 1: Привет, Мир!
Часть 2: Шаблоны
Часть 3: Формы
Часть 4: База данных
Часть 5: Вход пользователей
Часть 6: Страница профиля и аватары
Часть 7: Unit-тестирование
Часть 8: Подписчики, контакты и друзья
Часть 9: Пагинация
Часть 10: Полнотекстовый поиск
Часть 11: Поддержка e-mail
Часть 12: Реконструкция
Часть 13: Дата и время
Часть 14: I18n and L10n
Часть 15: Ajax
Часть 16: Отладка, тестирование и профилирование
Часть 17: Развертывание на Linux (даже на Raspberry Pi!)
Часть 18: Развертывание на Heroku Cloud

Моя предыстория


Я разработчик ПО с двузначным числом лет опыта разработки комплексных приложений на нескольких языках. Впервые я познакомился с Python для создания привязок к C++ библиотеке на работе. Вдобавок к Python, я писал веб-приложения на PHP, Ruby, Smalltalk и, верите вы или нет, еще на С++. Из всего этого, я нахожу комбинацию Python/Flask самой гибкой.
Я хочу начать это долгое и удивительное путешествие
Total votes 63: ↑60 and ↓3+57
Comments31

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Еще 12 «рецептов приготовления» MySQL в Битрикс24

Reading time9 min
Views78K


В нашей прошлой статье — «11 «рецептов приготовления» MySQL в Битрикс24» — мы, в основном, рассматривали архитектурные решения: стоит ли использовать облачные сервисы (типа Amazon RDS), какой форк MySQL выбрать и т.п.

Судя по отзывам, тема грамотной эксплуатации MySQL в больших «хайлоад» проектах — очень большая и важная. Поэтому мы решили рассказать еще о некоторых нюансах настройки и администрирования БД, с которыми сталкивались при разработке «Битрикс24» и которые используем ежедневно.

Еще раз напомню, что эта статья (как и предыдущая) не является универсальным «рецептом» идеальной настройки MySQL на все случаи жизни. :) Такого не бывает. :) Но искренне верю, что она будет полезной для вас для решения отдельных конкретных задач.

А в конце статьи — сюрприз для самых терпеливых читателей. :)
Читать дальше →
Total votes 84: ↑65 and ↓19+46
Comments14

«Хранимые процедуры» в Redis

Reading time5 min
Views28K
image

Многие знают про возможность хранить процедуры в sql базах данных, про это написано немало пухлых руководств и статей. Однако мало кто знает, что схожие возможности имеются и в Redis, начиная с версии 2.6.0. Но так как Redis не является реляционной БД, то и принципы описания хранимых процедур достаточно сильно отличаются. Хранимые процедуры в Redis — практически полноценные Lua скрипты (на момент написания статьи в качестве интерпретатора используется Lua 5.1).
Подробности тут
Total votes 20: ↑18 and ↓2+16
Comments44

NSNJSON. 道 (Заключительная статья)

Reading time4 min
Views6.8K
道 — путь. В этой заключительной статье о формате NSNJSON я хочу рассказать о моем пути, который привел меня к изобретению этого формата.

В комментариях к моим прошлым статьям («Усложнённый упрощённый JSON» и «JSON для любителей скобочек») неоднократно прозвучали вопросы о смысле, сложности, удобности и применимости этого формата. Итак, спешу поздравить всех неравнодушных — Вы дождались!


Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments15

VoIP зоопарк — Provisioning

Reading time20 min
Views54K

Вступление


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

Исходные данные


В качестве IP-АТС выбран и развернут Asterisk. Парк телефонов состоит из аппаратов Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 и Dlink DPH-150S(E)/F3, Yealink T19 и T21. Такой разброс обусловлен тем, что в рамках эксперимента было принято решение попробовать всего понемногу, чтобы составить своё мнение о соотношении цена/качество/удобство.

Задача


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

Решение этой задачи простое — реализовать автоматическую настройку телефонов, т.н. Provisioning. Собственно, о моей реализации этой замечательной функции и пойдет речь.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments20

Облачные объяснения: создаем операторский сервис виртуальной АТС за три дня

Reading time7 min
Views11K
Буквально еще несколько лет назад поисковики в ответ на поисковый запрос «Облака» выдавали множество ссылок на детские мультфильмы и статьи в Википедии об атмосферных явлениях. В последние два-три года тенденция изменилась и в топ выдачи стали попадать публикации c описанием облачных вычислений и платформ, а сам термин «Облака» у IT-специалистов теперь вызывает неоднозначные ассоциации: уже далеко не все представляют себе «взвешенные в атмосфере продукты конденсации водяного пара», скорее в сознании «правильного айтишника» возникают образы виртуальных площадок и платформ, различных IaaS, PaaS, SaaS. Виртуализация всего и вся — один из главных трендов десятилетия, множество клиентских сервисов давно переселились в облака, крупные телеком-бизнесы внедряют все новые и новые VAS в дополнение к основным услугам, а зачастую, то, что когда-то было Value Added Service превращается в базовый продукт. Услуги связи в этом смысле не являются исключением и сервис «Облачная АТС» становится просто обязательным пунктом в списке предложений телефонного оператора. О том, как (в том числе и с нашей помощью) быстро и сравнительно непринужденно запустить собственный сервис облачной АТС мы расскажем ниже.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments20

Python: советы, уловки, хаки (часть 1)

Reading time8 min
Views263K
Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.

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

Содержание

1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Читать дальше →
Total votes 98: ↑94 and ↓4+90
Comments67

Будущий дизайн OpenSIPS

Reading time9 min
Views15K
Предисловие

OpenSIPS — это сигнальный SIP-коммутатор. Если вы хотите обрабатывать реально много SIP-звонков, то, скорее всего, мимо OpenSIPS не пройдете.
Система реально «mature», проверенная в бою и, со временем, обросшая множеством полезных (и не очень) модулей.

Вместе с этим, очевидно, что архитектура, заложеннная еще в 2001 году не отвечает современным требованиям.
Поэтому разработчики OpenSIPS заявили, что версия 2.0 будет вестись «с чистого листа».

Ниже приведен перевод документа OpenSIPS 2.0 Design. Интересно, что думает хабрасообщество по этому поводу.

Комментарии по существу я постараюсь передать разработчикам.

Зачем нужна новая архитектура

Текущая архитектура OpenSIPS (до версии 2.0) основана на концепциях, которым более 7 лет. В то время требования были простыми (простой stateless SIP-прокси, только UDP) и решения принимались в соответствии с этими требованиями. Но со всеми дополнениями, как в SIP так и функционале (таком как TCP/TLS, манипуляции в скрипте, поддержка диалогов, интеграция с внешними системами и т.д.), существующая архитектура больше не может удовлетворять требованиям и реальным сценариям использования.

Внимание! Внутри большой и структурированный текст с картинками.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments22

Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 1. «Ключ»

Reading time7 min
Views81K
imageКевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

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

Начало и план перевода тут: «Шкворень: школьники переводят книгу про хакеров».
Пролог
Глава 1. «Ключ»
Глава 3. «The Hungry Programmers»
Глава 5. «Cyberwar!»
Глава 34. DarkMarket
(публикуем по мере готовности переводов)

Логика выбора книги для работы со школьниками у меня следующая:
  • книг про хакеров на русском языке мало (полторы)
  • книг про кардинг на русском нет вообще (UPD нашлась одна)
  • Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
  • приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
  • работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
  • текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
  • книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

Кто хочет помочь с переводом других глав пишите в личку magisterludi.

Глава 1. Ключ

(текст переведен в рамках коллективного проекта школьников в лагере GoToCamp, спасибо Алене, Кате, Соне, Грише, Саше и хабраюзеру ShiawasenaHoshi)

Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments4

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 1

Reading time9 min
Views30K
Часть 2
Часть 3
Часть 4

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

Статья рассчитана на специалистов, имеющих опыт работы с построением IVR в Asterisk и имеющих представление о системах голосового самообслуживания.

СГС (системы голосового самообслуживания) значительно расширяют возможности по созданию голосовых приложений и позволяют пользователю получать информацию и заказывать услуги самостоятельно, без участия оператора. Это может быть маршрутизация вызовов, запрос и выдача информации по расписанию авиарейсов, состояние банковского счета, заказ такси, запись на прием к врачу и пр.
Распознавание позволяет отказаться от линейных меню, создаваемых с помощью DTMF, разговаривать с системой человеческим языком и легко создавать меню с множественным выбором.
Синтез значительно упрощает работу с динамически меняющейся информацией и большими объемами текстовых данных.


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments22

Как я Asterisk'ом шлагбаумы открывал

Reading time9 min
Views46K
image

Добрый день, жители хабра.

Хочу поделиться интересным, на мой взгляд, вариантом использования Asterisk.

Предисловие: у клиента имеются две парковки, въезд на которые регулируется шлагбаумами с gsm-модулями. То есть владелец парковочного места набирает номер сим-карты, установленной в модуле и въезжает на территорию. Но, как известно, если номер знает один — его знают все, поэтому платная парковка хаотично превращается в бесплатную. Особенность gsm-модуля заключается в том, что звонок проходит без поднятия трубки, соответственно оператор связи не может предоставить детализацию звонков по номеру.

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

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments24

Очередной умный дом, в трех частях. Часть третья, пользовательско-интерфейсная

Reading time4 min
Views46K
Итак, подошло время рассказать и показать как это все управляется. Как я уже говорил во второй части, после нескольких итераций — все остановилось на HTML + JS. Писать отдельное приложение под Android я не планировал, но жизнь, как обычно, внесла некоторые коррективы.

Ссылки на первые две части:

image
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments13

Быстрые помощники для вашего Asterisk'а

Reading time5 min
Views17K
Эта статья подводит промежуточный итог в разработке моих приложений для asterisk'а. Все началось в новогодние праздники, когда мне захотелось сделать быстрый голосовой набор на asterisk'е. Затем был реализован поиск направления по номеру звонящего (полезная штука для входящих на номера 8-800). Затем была пара заказных проектов. А недавно еще и LCR для asterisk. Все эти приложения разработаны с использованием библиотеки ding-dong, которая позволяет работать с AGI (Asterisk Gateway Interface) в node.js приложении.

Далее я хотел бы показать, что используя node.js и ding-dong, можно быстро разрабатывать полезные приложения для астериска.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments22

Анатомия виртуальной телефонии. Знакомство с интерфейсом

Reading time3 min
Views2.5K
Виртуальная АТС RingCloud продолжает публиковать статьи о своих разработках, и деятельности.

Ранее мы рассказывали о том, кто мы такие, к чему стремимся, какие шишки уже набили и как справились с промахами.

Хабр, привет из облака RingCloud
Через тернии к звездам. Как мы набивали шишки

Так как мы в компании RingCloud занимаемся разработкой виртуальной АТС, нам не жалко пожертвовать нашим детищем, чтобы Вы смогли разглядеть, что там, внутри.


image
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Какие языки программирования и почему используются в сфере финансов

Reading time5 min
Views46K


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

В нашем сегодняшнем материале мы поговорим как раз о том, как понять, какую из существующих технологий следует использовать в конкретной ситуации на фондовом рынке.
Читать дальше →
Total votes 26: ↑17 and ↓9+8
Comments8

Практика применения модулей Laurent-2, Laurent-112, KBX-3D

Reading time3 min
Views28K
Здравствуй, Хабр! Новые разработки с современными интерфейсами и ранее недоступными возможностями – это как минимум интересно. И сегодня в фокусе нашего внимания модули семейства Laurent и их скрытые возможности.


Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments4

Logjam — новая уязвимость в TLS

Reading time2 min
Views14K
Новая уязвимость под названием Logjam обнаружена в различных реализациях протокола TLS. Уязвимость аналогична другой под названием FREAK, о которой было написано ранее. Logjam также относится к типу «downgrade» и позволяет клиенту понизить стойкость шифрования до 512 бит DH при условии поддержки сервером шифра DHE_EXPORT, который задается в процессе «рукопожатия» (handshake) между клиентом и сервером. Т. о. атакующему значительно проще организовать атаку типа Man-in-the-Middle (MitM). Уязвимость затрагивает как серверное ПО, использующее OpenSSL (Logjam, FREAK and Upcoming Changes in OpenSSL), так и веб-браузеры.



Уязвимости подвержены веб-браузеры Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari. На текущий момент уязвимость исправлена только в IE, для которого было выпущено обновление MS15-055. В свою очередь, остальные браузеры ожидают обновления, как и пакет свободно распространяемого ПО OpenSSL. Уязвимость актуальна и для OS X, iOS, Android.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments9

Мой опыт внедрения Apache Cassandra

Reading time3 min
Views56K
Как и большинство NoSQL-решений, C* подвержена одной крайне неприятной эпидемии: она является отличным инструментом для узкого класса задач, но позиционируется евангелистами как очередная серебряная пуля по хранению данных. В этой статье я расскажу о своём опыте внедрения C* в (сравнительно) нагруженный проект веб-аналитики. Она будет полезна всем, кто стоит перед выбором масштабируемого хранилища данных, и развенчает мифы и заблуждения об этом инструменте.


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments19
1

Information

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