Системное администрирование → Автоматизация обработки видео-файлов с web-камер средствами shell из песочницы
Понадобилось начальству в своё время организовать своими силами видео-наблюдение за некоторыми вещами и уложиться в минимальное финансирование. Задача автоматизировать это легла на плечи системного администратора, то есть – меня.
Дано: N – видео-камер D-Link 2102, физический двух-юнитовый сервер под сервер видео-наблюдения и удаленное файло-хранилище.
Результатом должна быть возможность пускать некоторых пользователей на сервер видеонаблюдения в онлайн режиме и организовать архив видеозаписей.
Под катом несколько скриптов, которые сильно помогли мне понять, как лучше писать код, зачем нужны многие вещи и как они решаются, а так же навести порядок в своей голове и очень надеюсь, что они помогут кому-то еще.
Проект писался достаточно сложно — настолько сильно я shell(bash) скрипты не изучал — не было надобности до этого.
Но, когда задача поставлена и в голове есть алгоритм решения — все скрипты были переделаны так, чтобы читая их через пол года у меня и моего преемника не было вопросов и желания переписать все с нуля.
UPD: пост периодически обновляется.
Дано: N – видео-камер D-Link 2102, физический двух-юнитовый сервер под сервер видео-наблюдения и удаленное файло-хранилище.
Результатом должна быть возможность пускать некоторых пользователей на сервер видеонаблюдения в онлайн режиме и организовать архив видеозаписей.
Под катом несколько скриптов, которые сильно помогли мне понять, как лучше писать код, зачем нужны многие вещи и как они решаются, а так же навести порядок в своей голове и очень надеюсь, что они помогут кому-то еще.
Проект писался достаточно сложно — настолько сильно я shell(bash) скрипты не изучал — не было надобности до этого.
Но, когда задача поставлена и в голове есть алгоритм решения — все скрипты были переделаны так, чтобы читая их через пол года у меня и моего преемника не было вопросов и желания переписать все с нуля.
UPD: пост периодически обновляется.
*nix → xlayout. Управление окнами X из командной строки
Однажды у меня возник вопрос о том, как управлять геометрией окон в X Window из командной строки. На первый взгляд все просто — при запуске программы достаточно указать дополнительный параметр
Впрочем, это все есть в мануале по X.
Ну а как насчет уже запущенных приложений? Как управлять ими?
Для этой цели можно использовать небольшую программу
-geometry и передать размер и положение для создаваемого окна. Пример: xclock -geometry 150x150+0+0, где 150x150 — размер окна по горизонтали и вертикали, а 0+0 — положение окна относительно верхнего левого угла экрана.Впрочем, это все есть в мануале по X.
Ну а как насчет уже запущенных приложений? Как управлять ими?
Для этой цели можно использовать небольшую программу
xlayout. О ней и ее использовании дальше в посте.Электронные книги → Читаем DJVU и PDF на шестидюймовом ридере с комфортом из песочницы
Бытует мнение, что на электронных книгах с e-ink дисплеями, можно комфортно читать только текстовые книжки, где можно выставить большой шрифт, а вот pdf и тем более сканы в djvu читать практически невозможно, глаза сломаешь разбирать мелкие буквы на небольшом дисплее. Спешу вас разуверить, читать такие книги вполне можно комфортно.
*nix → Парсер на shell с обходом XOR-шифрования при авторизации из песочницы
Недавно возникла необходимость в парсере интернет-счета банковской карты для дальнейшего уведомления об операциях посредством смс\e-mail. Сделать это было решено по-быстрому шел-скриптом, который будет парсить страницу со счетом с определенной периодичностью при помощи задания в cron, а в случае изменения баланса счета — высылать сообщение на мобильный телефон или e-mail. Ничего сложного на первый взгляд, однако в ходе написания пришлось решить некоторые сложности, о которых вы сможете прочесть под катом.
Nokia → Пишем простое, но полезное приложение для Nokia N900 за 20 минут
Приветствую, уважаемый хабраюзер!В данной заметке я расскажу об интересных свойствах операционной системы Maemo с точки зрения
системного администратора Unix. Цель заметки — показать удобство написания приложений под данную ОС.
Писать приложение мы будем на Shell. А почему бы и нет? — ведь для Maemo это родная среда!
Информационная безопасность → Как работает WebsiteDefender
Несколько недель назад заметил в плагине для Wordpress wp security scan рекламу другого сервиса websitedefender для защиты сайтов. На сайте кроме стандартной маркетинговой шелухи толком ничего полезного не нашел, но несколько заинтриговали слова о революционно ином способе работы этого сервиса, отличающемся от уже существующих. Гугл ничего полезного не выдал о том, как же все-таки работает этот сервис.
Исторически так сложилось, что большинство считает достаточным защиту только от атак извне — SQL, XSS-инъекций, LFI\RFI, CSRF и т.п, забывая про атаки на файлы веб-приложений. Те же WAF, такие как mod_security, phpids — яркий тому пример.
Мне это кажется не очень справледливым, поэтому я захотел рассмотреть возможности сервиса WebsiteDefender, который по описанию должен уметь защищать файлы веб-приложений от модификаций.
Предлагается скачать некий агент – php-file, в котором целый набор функций для шифрования и… конструкция
Вопрос, что же делает этот php код, возник еще до его скачивания, а после беглого просмотра и нахождения такого интересного арсенала появляется еще больше вопросов. Хотя компания вроде бы довольно известная — Acunetix, ставить кота в мешке себе на сайт вряд ли кому захочется.
Ответ поддержки на запрос предоставить информацию, что делает их код, и результаты своего исследования работы сервиса под катом.
Исторически так сложилось, что большинство считает достаточным защиту только от атак извне — SQL, XSS-инъекций, LFI\RFI, CSRF и т.п, забывая про атаки на файлы веб-приложений. Те же WAF, такие как mod_security, phpids — яркий тому пример.
Мне это кажется не очень справледливым, поэтому я захотел рассмотреть возможности сервиса WebsiteDefender, который по описанию должен уметь защищать файлы веб-приложений от модификаций.
Предлагается скачать некий агент – php-file, в котором целый набор функций для шифрования и… конструкция
$success = @eval('?>'.$request->params);Вопрос, что же делает этот php код, возник еще до его скачивания, а после беглого просмотра и нахождения такого интересного арсенала появляется еще больше вопросов. Хотя компания вроде бы довольно известная — Acunetix, ставить кота в мешке себе на сайт вряд ли кому захочется.
Ответ поддержки на запрос предоставить информацию, что делает их код, и результаты своего исследования работы сервиса под катом.
Groovy & Grails → Пишем deploy-скрипт для Grails
Зачем нужен deploy-скрипт
Grails-приложения очень легко собираются в WAR. Делается это так:
grails war
Помимо того, что WAR собирается, очень хочется этот WAR еще и установить на сервер. В нашем случае это Tomcat. Установка вручную требует некоторой возни:
- Остановить сервер. Убить процесс, если он не остановился сам.
- Удалить старые файлы приложения (на всякий случай)
- Скопировать новый WAR на сервер. Иногда его нужно переименовывать (скажем, в ROOT.war)
Мы также можем использовать shell-скрипт. Но зачем писать на неудобном языке shell, когда есть замечательный кроссплатформенный язык Groovy?
Django Framework → Настройка сервера для django-проектов с нуля
Хочу поделиться опытом настройки сервера для django-проектов. Так вышло, что мне часто приходится настраивать с нуля VPS-сервера для запуска на них django-сайтов. Как-то мне в голову пришла идея записать пошагово процесс настройки. Оказалось, что “по бумажке” выполнять эти рутинные операции гораздо проще и быстрее — все нюансы записаны, трудно что-то упустить. Дальше больше — я превратил инструкцию в самостоятельный shell-скрипт — запустил и сервер готов. Я думаю, некоторым python-разработчикам, особенно начинающим, будет полезно ознакомиться с содержимым скрипта. С некоторыми доработками вы, возможно, захотите использовать его в своей практике.
Системное администрирование → Заметки гика. zsh shell
Дубль первый.
В какой то момент возникла острая необходимость заиметь англо-русский словарь в консоли,
в ходе 2 минутного поиска по пакетам счастья не было обнаружено.
Ну что же, придется делать свой словарь, вспомнив что в chromium стоит плагин для словаря было принято решение распотрошить его содержимое, и прикрутить словарь от google к консоли.
Ну а далее код для zsh.
В комментах ресурсы которые были просмотрены в ходе поиска решения.
Интерфейсы → Мысли об интерфейсах будущих Windows
Вот люди гадают, какой будет Windows 8. Судя по первым скриншотам — то же самое, что и в семерке. А ведь есть гениальное решение — передрать интерфейс с мобильных ОС вроде iOS и Android! Особенно с их планшетных версий, которые работают почти с теми же размерами экрана, что и десктопы.
Это же очень удобная система, возьмем за образец Андроид — основные приложения на мультидесктопе (кстати, то что больше одного рабочего стола в Windows нет ДО СИХ ПОР… ну, вы поняли), остальные по клику на большую кнопку (нафиг меню «Пуск»), вверху панель с запущенными задачами и их индикаторами, ну и виджеты на десктопе, понятно — они уже есть.
Я, конечно, не на 100% уверен, но по-моему интерфейсные решения с мобильных ОС намного сильнее проработанны, чем десктопные, потому что дизайнерам пришлось трудиться в очень узких условиях. Я бы воспользовался таким shell-ом даже ради эксперимента, мне кажется, тут есть куда копать.
Это же очень удобная система, возьмем за образец Андроид — основные приложения на мультидесктопе (кстати, то что больше одного рабочего стола в Windows нет ДО СИХ ПОР… ну, вы поняли), остальные по клику на большую кнопку (нафиг меню «Пуск»), вверху панель с запущенными задачами и их индикаторами, ну и виджеты на десктопе, понятно — они уже есть.
Я, конечно, не на 100% уверен, но по-моему интерфейсные решения с мобильных ОС намного сильнее проработанны, чем десктопные, потому что дизайнерам пришлось трудиться в очень узких условиях. Я бы воспользовался таким shell-ом даже ради эксперимента, мне кажется, тут есть куда копать.