В принципе java является самодостаточным языком. Но иногда требуется задействовать код, который на низком уровне общается со специфичным аппаратным обеспечением или имеется только на языке C/C++ и его портирование в java проблематично. В данной заметке я рассмотрю использование JNI (Java Native Interface): мы вызовем в java классе методы, написанный на C, C++ и даже на […]
Archive for the ‘Linux’ Category
И снова про docker
12 февраля, 2015
rius И снова про docker Вы хотите иметь возможность развернуть свое программное обеспечение в любой системе? В данной заметке я приведу шаги для установки в системе на RedHat 6.4. Для прочих систем указания можно найти тут: Полезная ссылка: Устанавливаем net-namespaces Если у вас ядро RHEL/CentOS 6.4 kernel, то нужно будет проапдейтить его. Системы вроде RHEL 7.0, […]
Опыт использования Fabric для удаленного управления серверами
28 января, 2015
rius Представим себе ситуацию, когда при тестировании или администрировании нужно выполнить однотипные действия на нескольких удаленных серверах. Можно использовать для этого shell команду вида: for hostDN in host1 host2 host3; do ssh "root@$hostDN" ‘ls -l /home’; donefor hostDN in host1 host2 host3; do ssh "root@$hostDN" ‘ls -l /home’; done Но это не самое удачное решение хотя […]
Настройка обработчика SNMP trap в RedHat
4 января, 2015
rius Протокол SNMP широко используется для управления устройствами в IP-сетях на основе архитектур TCP/UDP. Механизм SNMP trap позволяет агенту асинхронно уведомить менеджера об изменении состояния. Разберем действия по настройке для приема SNMP trap. Первым делом надо установить нужный софт: # yum install net-snmp# yum install net-snmp В файл /etc/snmp/snmptrapd.conf надо добавить строки: # Example configuration file […]
Знакомство с Docker в RedHat 7
29 декабря, 2014
rius В данной статье я рассмотрю сетевой аспект использования Docker: как настроить полную прозрачность (full transparency) на одном компьютере — это было невозможно в RedHat 6. Теперь вместо трех серверов мы обойдемся двумя-тремя контейнерами. Подобные настройки были возможны при использовании OpenStack, он поддерживает сетевые пространства имен (network namespaces) и поэтому на единственной машине можно имитировать клиент/прокси/сервер, […]
Как сделать CSV файл совместимым с Excel
6 декабря, 2014
rius Для обмена данными многие приложения используют формат CSV. Этот формат стал своего рода стандартом и к нему выработаны требования. Перечень требований на английском (CSV well formedness): Требования к CSV В данной заметке я расскажу, как исправить нарушение требования к экранированию двойных кавычек, которое может повлечь лишние колонки при импорте данных в Excel. Будет использован небольшой […]
Использование структурной распечатки (pretty-printing) в GDB
1 декабря, 2014
rius Данный механизм в частности позволяет получить содержимое STL классов в удобочитаемой форме. Для примера возьмем такой код: std::string fred(“abc”);std::string fred(“abc”); Если вы попытаетесь распечатаь содержимое переменной fred в GDB, вы увидите кучу недружелюбной и не всегда нужной информации. (gdb) print fred $1 = { static npos = <optimized out="">, _M_dataplus = { <std::allocator<char>> = { […]
Эмулирование задержек и потерь пакетов с помощью dummynet
21 ноября, 2014
rius При тестировании программного обеспечения иногда нужно понять, как оно поведет себя в сетях 3G/4G. Нас интересует влияние полосы пропускания, задержек, потери пакетов. При этом использоваться будет обычная локальная сеть. Рассмотрим использование dummynet для этой задачи.
Использование кода httpd (апача) в своей программе
7 ноября, 2014
rius Представим ситуацию, когда вам надо использовать в своей программе кусок кода из опенсорсного проекта. В отдельных случаях удастся этот кусок локализовать и просто скопировать не заботясь о зависимости от других библиотек того самого опенсорсного проекта. Я рассмотрю более общий случай, когда зависимости (типы данных или функции) приходится тащить с собой. В качестве примера будет функционал […]
Компактный веб сервер для тестирования
4 ноября, 2014
rius Иногда для тестирования нужен легковесный веб сервер, функционал httpd или даже lighthttpd будет избыточен. Для таких целей подойдет самодельный веб сервер: сразу после отправки ответа на запрос происходит выход. Данная версия помогла мне в случае, когда надо было имитировать обрыв ответа. Сервер посылает длину ответа 2000 в заголовке, но ответ заметно короче. Скомпилированный бинарник использовался […]

Posted in
Tags: