Рубрика «scripting»

image

Скрипты — один из самых распространенных способов сделать приложение более гибким, с возможностью поправить что-то прямо на ходу. Конечно же, у этого подхода есть и недостатки, нужно всегда помнить про баланс между гибкостью и управляемостью. Но в этой статье мы не будем рассуждать “в общем” по поводу плюсов и минусов использования скриптов, мы рассмотрим практические способы реализации этого подхода, а также представим библиотеку, которая предоставляет удобную инфраструктуру для добавления скриптов в приложения, написанные на Spring Framework.
Читать полностью »

Работа с событиями в Flussonic для мониторинга

Ползователи часто обращаются с вопросом: как сделать так, что бы Flussonic прислал письмо при падении потока.

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

Самый простой вариант будет наивным, но рабочим. В конфиг стримера добавляем:

notify no_video {
  sink /etc/flussonic/no_video.lua;
}

в файле /etc/flussonic/no_video.lua пишем:

for k,event in pairs(events) do -- события приходят в обработчик пачками, обработаем целиком группу
   if event.event == "source_lost" or event.event == "stream_stopped" then -- отфильтруем только те события, которые нужны
     mail.send({from = "flussonic@streamer1.mycdn", to = "marketing@team.mycdn", subject = "Source lost", body = "source lost on "..event.media}) -- и пошлем письмо на каждое событие
   end
end

Читать полностью »

Вдруг оказывается, что в проекте нужны скрипты и возникает вопрос что лучше эволюция или революция?
Но даже попытка внедрить груви может провалиться в легаси проекте с консервативным коллективом. И руководство может найти еще десяток причин не пропустить груви в проект. Хоть groovy гораздо проще и ближе программисту знающему java, чем та же scala.

Java вместо Groovy - 1

Но даже в этом случае можно использовать динамически компилируемые скрипты в проекте. Научимся компилировать java код динамически в памяти и запускать его в jvm, использовать в нем динамически загружаемыме библиотеки из maven. Хотелось бы написать как можно меньше кода для этого и чтобы процесс использования был максимально прост. Да и еще бы не хотелось надеяться на доступность tools.jar нашей пограмме.
Читать полностью »

Если вы используете Active Directory у вас используется Exchange, OwnCloud, SharePoint или другая система с возможностью отображения аватара или фото, то после прочтения данный статьи у вас появится возможность загрузить фото пользователя в AD для отображения в Outlook, Lync, на порталах SharePoint и других системах.
Читать полностью »

Ранее я уже писал о том как решал проблему представления скриптов в удобочитаемом виде в одном активационном проекте, в сфере традиционной телефонии. Напомню, что речь шла о передаче управляющих команд на АТС Alcatel S12 и M200 через Serial или TCP-соединение. Несмотря на всю «велосипедность» описанного подхода, он полностью себя оправдал. Уже первый просмотр сгенерированного скрипта, позволил обнаружить и исправить серьезные ошибки в логике активации, поиск которых непосредственно в таблицах AST-представления занял бы гораздо больше времени.

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

Некоторое время назад, мне довелось поучаствовать в крупном международном проекте в составе команды активации. Суть проекта сводилась к автоматизации выполнения ряда команд на оборудовании Cisco. Разработка активационных скриптов велась на JavaScript. Главная мысль, которую я вынес из этого проекта, заключалась в том, что разработка и отладка активационных скриптов на JavaScript крайне трудоемкое занятие. Интенсивная разработка велась в течение 1 года, а только наша группа активации включала в себя около 10 разработчиков (тестеров требовалось не меньше).

В июне этого года, уже местное руководство, осчастливило меня новым активационным проектом, в котором маршрутизаторы Cisco сменились на АТС Alcatel S12 и M200. Вторым отличием этого проекта было то, что всю активационную часть предстояло разработать мне одному, с нуля, в течение полугода.
Читать полностью »

Драматургия – мощнейший инструмент, который позволяет сценаристам держать зрителя в напряжении на протяжении всей истории, заставлять его испытывать самые разные эмоции, а в кульминационные моменты – широко распахивать глаза от изумления и с головой уходить в действие. К этому же стремятся и сценаристы онлайн-игр, поэтому нам совершенно необходимо применять общие законы драматургии к ММО. Однако делать это «в лоб» не стоит: ведь в ММО есть своя проблематика, которая заставляет нас подходить к этим законам выборочно, отсеивая неподходящие, выбирая лучшие и трансформируя их.

Читать полностью »

Задача

— генерация 8ми-значного числа и автоматическая установка в качестве WPA2-пароля на Wi-Fi роутере один раз в неделю
— отправка нового пароля на email
— создание html-страницы с паролем

Имеется

— Linux с установленным web-сервером (web-сервер будет отдавать вот эту страницу /opt/company/wifi-guest/index.html) и доступом к Wi-Fi точке через прокси (адрес прокси proxy.company.lan:3128)
— Wi-Fi роутер TP-LINK WR1043ND (адрес точки доступа ggw.company.lan)
— smtp-сервер (адрес сервера 10.10.10.10, исходящий адрес — notificaions@company.com, адрес получателя admins@company.com)
Читать полностью »

Для корректной работы многих rails-приложении требуются конкретные версии состовляющих компонент, таких как версия ruby, версия самого rails, а так же rake, rubygems и т.д. И скорее всего в вашем дистрибутиве Linux (в моём случае это Ubuntu 10.04 LTS Server) версии этих компонент будут отличаться. Можно пойти простым путём — поставить ruby нужной версии из исходных кодов, а всё остальное с помощьью rubygems. Но мы же хотим получить надёжный и воспроизводимый результат, а систему, при этом не превратить в свалку.
Читать полностью »

Помните пост о временном переключении WIFI в режим точки доступа? Конечно же нет, давно было. Вот он: habrahabr.ru/blogs/linux/122876/.

Сегодня речь пойдёт не о точке доступа, а о режиме работы компьютера, в котором он выступает в качестве маршрутизатора. Это может пригодится в том случае, когда есть всего одна точка выхода в интернет, а компьютеров нужно подключить несколько. Или, например, интернет раздаётся по WIFI, есть один ноутбук с WIFI, а второе устройство имеет только Ethernet-интерфейс.

Имеем

— Ноутбук с Ubuntu 11.10 и беспроводным сетевым адаптером
— Беспроводной интернет
— Комьютер сЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js