среда, 17 августа 2016 г.

nDPI, DKMS и здоровый сон сисадмина

DKMS (Dynamic Kernel Module Support) — шикарное решение, если требуемый модуль для ядра нельзя поставить и обновлять штатными средствами, но зато есть его исходники. Не требуется следить за обновлениями ядра и оперативно пересобирать нужный модуль или вовсе блокировать обновления ядра, чтобы ничего не отвалилось после очередного обновления.

Сначала устанавливаем dkms и другие необходимые пакеты:

$ sudo apt-get install dkms build-essential autoconf automake autogen libpcap-dev libtool xtables-addons-dkms pkg-config xtables-addons-source
Скачиваем исходники nDPI:
$ wget https://github.com/vel21ripn/nDPI/archive/netfilter.zip
Распаковываем скачанный архив в /usr/src:
$ sudo unzip netfilter.zip -d /usr/src
Переименовываем распакованную папку в ndpi-x.y.z, где x.y.z — версия модуля:
$ sudo mv /usr/src/nDPI-netfilter /usr/src/ndpi-1.7.0
Создаем файл dkms.conf в этой папке:
$ sudo tee /usr/src/ndpi-1.7.0/dkms.conf << EOF
# Версия модуля 
PACKAGE_VERSION="1.7.0"
# Название модуля в /usr/src
PACKAGE_NAME="ndpi"
# Папка для компиляции
BDIR="\${dkms_tree}/\${PACKAGE_NAME}/\${PACKAGE_VERSION}/build"
# Аргументы для make 
ARGS="-C \${kernel_source_dir} SUBDIRS=\${BDIR} M=\${BDIR}/ndpi-netfilter/src"
# После компиляции созданный модуль перемещается туда, где DKMS может его найти
MAKE[0]="make \${ARGS} modules ; find \${BDIR} -name '*.ko' -exec mv -v {} \${BDIR} \;"
CLEAN="make \${ARGS} clean"
# Название модуля ядра
BUILT_MODULE_NAME[0]="xt_ndpi"
# Папка, где обычно устанавливается модуль в ядре
DEST_MODULE_LOCATION[0]="/extra/"
# Не пересобирать initrd ядра
REMAKE_INITRD="no"
# Установка модуля после компиляции
AUTOINSTALL="yes"
EOF
Теперь компилируем и устанавливаем библиотеку nDPI
$ cd /usr/src/ndpi-1.7.0
$ sudo ./autogen.sh
$ sudo sh -c './configure && make'
$ cd /usr/src/ndpi-1.7.0/ndpi-netfilter
$ sudo make install
После чего в DKMS добавляем запись о нашем модуле:
$ sudo dkms add -m ndpi -v 1.7.0
Собираем модуль из исходников:
$ sudo dkms build -m ndpi -v 1.7.0
Собранный модуль устанавливаем папке /dkms/:
$ sudo dkms install -m ndpi -v 1.7.0

пятница, 22 июля 2016 г.

Приложение для формирования алкогольных деклараций

Формирование алкогольных деклараций по формам №11 и №12 из файла в формате CSV для Федеральной службы по регулированию алкогольного рынка РФ.

Использован фреймворк Qt5. Сразу признаюсь, что в исходном коде творятся страх и ужас без поясняющих комментариев. Теоретически кроссплатформенный и когда-то даже собирался на платформе Windows XP. Декларации формируются в формате Декларант-Алко 4.31 и успешно загружаются в сервис services.fsrar.ru (в том числе и пустые (нулевые) декларации).

Умеет:

  • Импорт данных из CSV-файла.
  • Импорт остатков на начало периода из CSV-файла.
  • Редактирование данных в таблице.
  • Для удобства редактирования в таблице с данными реализован простой калькулятор.
  • Сохранение и загрузка данных.
  • Формирование деклараций по формам №11 и №12.

Распространяется под лицензией GPL3.

Исходные коды размещены по адресу: https://github.com/tacitus-def/alko-decl-helper

среда, 8 июля 2015 г.

Как удалить дубликаты в истории bash?

Добавляем строку в ~/.bashrc, чтобы пропускать повторяющиеся команды

export HISTCONTROL=erasedups

Удаляем дубликаты в истории

$ history -a; awk '!x[$0]++' ~/.bash_history > ~/.tmp && mv ~/.tmp ~/.bash_history;

вторник, 10 декабря 2013 г.

Установка параметров загрузки ядра Linux с помощью Grub

  1. В grub до версии 0.97 включительно
    В файле «/boot/grub/menu.lst» найти строку, начинающуюся с «# kopt=» и дописать в её конец через пробел новый параметр:
    # kopt=root=/dev/sda1 ro newparameter=newvalue

    В grub2 до версии 1.99 включительно
    Добавить (изменить) переменную «GRUB_CMDLINE_LINUX_DEFAULT» в файле «/etc/default/grub» и вписать через пробел новый параметр, как в примере:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet newparameter=newvalue"
  2. Далее обновить grub командой:
    $ sudo update-grub

четверг, 28 ноября 2013 г.

Простой секундомер с функцией ведения журнала времени.

Возможности:
• Миллисекундная точность.
• Отображение общего времени и времени после последнего события.
• Ведение журнала времени (событий).
• Экспорт в файл CSV.
• Сброс таймера с помощью аппаратной кнопки увеличения громкости.
• Быстрое создание события с помощью аппаратной кнопки уменьшения громкости.
• Редактирование сохраненных записей.
• Возможность держать экран включенным.
• Работа в фоновом режиме.

https://play.google.com/store/apps/details?id=pro.fossa.apps.timer


вторник, 12 ноября 2013 г.

Переадресация некоторых портов в VoIP-шлюзе Audiocodes MP-202

Чтобы в VoIP-шлюзе Audiocodes MP-202 переадресовать порты 80, 8080 или 443 на сервер внутри локальной сети, кроме соответствующих настроек в разделе «Переадресация портов», в разделе «Системные настройки» требуется изменить совпадающие порты для удаленного управления.

воскресенье, 24 марта 2013 г.

NAT для VirtualBox с возможностью прямого доступа к виртуальным машинам с хоста

Когда создавал новую виртуальную машину в Virtualbox (Ubuntu 12.04 LTS) решил спрятать его за NAT в виртуальной сети, но таким образом чтобы иметь возможность достучаться до него напрямую через SSH.
Для этой цели поднял виртуальный сетевой интерфейс, настроил NAT, настроил раздачу айпи и обработку DNS-запросов создаваемой виртуальной сети:

  1. Устанавливаем пакет uml-utilities с утилитой для создания интерфейса tap0
    $ sudo apt-get install uml-utilities
    В файл «/etc/network/interfaces» добавляем описание нового интерфейса
    auto tap0
    iface tap0 inet static
            address 10.0.55.1
            netmask 255.255.255.0
     pre-up /usr/sbin/tunctl -t tap0
     post-down /usr/sbin/tunctl -d tap0
    Поднимаем новый интерфейс
    $ sudo ifup tap0
  2. Теперь настраиваем NAT. Для этой цели используем идущее с системой средство настройки брандмауэра ufw. Редактируем файл «/etc/ufw/before.rules» и добавляем в самом начале строки
    *nat
    :POSTROUTING ACCEPT [0:0]
    -F POSTROUTING
    -A POSTROUTING -s 10.0.55.0/24 -j MASQUERADE
    COMMIT
    Редактируем файл «/etc/default/ufw» и меняем следующие параметры
    DEFAULT_INPUT_POLICY="ACCEPT"
    DEFAULT_OUTPUT_POLICY="ACCEPT"
    DEFAULT_FORWARD_POLICY="ACCEPT"
    Запускаем ufw
    $ sudo ufw enable
  3. Чтобы каждый раз вручную не прописывать айпишники днс-сервера вновь созданным виртуальным машинам устанавливаем dnsmasq
    $ sudo apt-get install dnsmasq
    В файл конфигурации «/etc/dnsmasq.conf» добавляем следующие строки
    # Слушаем порты только на указанном интерфейсе
    bind-interfaces
    # Слушаем на созданном нами интерфейсе
    interface=tap0
    # Не слушаем на локальном интерфейсе. Там как правило слушает запущенный Netwok Manager процесс dnsmasq
    except-interface=lo
    # Диапазон раздаваемых по DHCP адресов виртуальным машинам.
    dhcp-range=10.0.55.10,10.0.55.200,72h
    # Домен создаваемой сети
    domain=virtual
    Запускаем dnsmasq с новыми настройками
    $ sudo service dnsmasq stop
    $ sudo service dnsmasq start

воскресенье, 11 марта 2012 г.

Перепрошивка TP-Link TL-WR740N v3/v4

На выходных попытался перепрошить свой wifi-роутер потому как надоело пялиться на китайские иероглифы веб-интерфейса. Вот так припаял к схеме провода TX, RX, GND. Воткнул кабель в COM-порт, minicom настроил как написано тут и получил вот такую порнографию:

./!#-������.�..�3��$�I.$�f�.4geii.+.-id4f4fM���...�3��$�I.$.f�.4..��.�r��������~
�_.&H#K.I.I.$M.�%�3���S)R�Ir$��3�fM.=y���e�;!=�..5�.�..��K$J.22rd�..�3��$�I.$�f+
а должно было отобразиться нечто похожее на это:
U-Boot 1.1.4 (Mar  8 2010 - 10:29:42)

AP91 (ar7240) U-boot
DRAM:
sri
#### TAP VALUE 1 = 9, 2 = a
32 MB
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB 
Using default environment

Что я сделал неправильно?

понедельник, 5 декабря 2011 г.

Синтаксис команды route в Android

  • route add default dev DEVICE
  • route add default gw IP dev DEVICE
  • route add -net IP netmask NETMASK gw IP
Нашел здесь: zecke.blogspot.com

среда, 23 ноября 2011 г.

Закрепление вкладок в Mozilla Firefox

Узнал, что пункт «Закрепить вкладку» в контекстном меню вкладок – чрезвычайно удобная фича. Мало того, что закрепленные вкладки не затрагивает действие «Закрыть другие вкладки». Так они автоматически восстанавливаются при следующем запуске браузера. :)

пятница, 18 ноября 2011 г.

Новый интернет-магазин

На днях открыл собственный интернет-магазин под названием «Фосса». Есть такой зверек на Мадагаскаре. :) Разработка базового функционала движка заняла чуть меньше одного месяца.
На продажу выставил лицензионные ключи для популярных антивирусов, программ для верстки и дизайна, прочего корпоративного ПО. Ассортимент интернет-магазина будет постоянно пополняться, а его движок будет постепенно усложняться и обрастать новыми возможностями.

В общем, Welcome! :)

воскресенье, 22 мая 2011 г.

МТС построит собственные магистральные волоконно-оптические линии связи между Сибирью и Дальним Востоком

ОАО «Мобильные ТелеСистемы» сообщает, что приступило к активной фазе реализации двух проектов по строительству между Восточной Сибирью и Дальним Востоком собственных магистральных волоконно-оптических линий связи (ВОЛС).

четверг, 24 февраля 2011 г.

OpenVZ: Упрощение автомонтирования разделов

Чтобы не писать для каждой гостевой машины по два скрипта, для монтирования и демонтирования разделов или директорий, создал один универсальный для всех. Сохраняем представленный ниже скрипт в директории «/etc/vz/scripts» под именем «mount» и назначаем ему права на выполнение. Далее, в директории «/etc/vz/conf» создаем симлинки скрипта под именем «VEID.mount» и «VEID.umount», где VEID – идентификатор гостевого хоста. В этой директории создаем еще один файл под именем «VEID.fstab», где прописываем монтируемые разделы в формате «fstab». Обратите внимание, что точки монтирования должны указываться с корневого раздела «/» гостевого хоста.

Собственно сам скрипт:

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

source /etc/vz/vz.conf
source ${VE_CONFFILE}

FSTAB="$(dirname $0)/${VEID}.fstab"
ACTION="$(basename $0 | sed -r 's/^[^\.]+\.//')"

if [ -e "$FSTAB" ]
then
        if [ $ACTION = "mount" ]
        then
                cat "$FSTAB" | sed -r "/^(#|$)/d" | \
                        awk -v VE_ROOT="${VE_ROOT}" '{ print "-t " $3 " -o " $4 " " $1 " " VE_ROOT $2; }' | \
                        xargs -n 1 -d'\n' -I{} sh -c 'echo mount {}; /bin/mount {};'
        elif [ $ACTION = "umount" ]
        then
                cat "$FSTAB" | sed -r "/^(#|$)/d" | \
                        awk -v VE_ROOT="${VE_ROOT}" '{ print VE_ROOT $2; }' | \
                        xargs -n 1 -d'\n' -I{} sh -c  'echo umount {}; /bin/umount {};'
        fi
fi

exit 0

четверг, 13 января 2011 г.

Google прекращает поддержку H.264 в Google Chrome

Совсем недавно, одиннадцатого января, Майк Язаири (Mike Jazayeri) в блоге Хромиума опубликовал следующее обращение:
Ключевым фактором быстрой эволюции и повсеместного распространения технологий является модель разработки, основанная на открытости и управлении сообществом. Проект WebM, запущенный в прошлом году, был предназначен для превнесения в веб открытого видеокодека, соответствующего мировому уровню. С момента начала проекта, мы из первых рук смогли убедиться в преимуществах открытой модели разработки:

  • Быстрое улучшение производительности видеокодера и декодера, спасибо за это десяткам разработчиков из сообщества,
  • Повсеместная поддержка браузерами, различными инструментами и поставщиками железа,
  • Независимые (но в то же время совместимые) реализации, которые не только предоставляют дополнительные возможности пользователям, издателям и разработчикам, но и способствуют здоровой конкуренции и инновациям.
В будущем году мы ожидаем еще большее быстрых инноваций в медиаплатформе для веба, и сконцентрируем наши инвестиции для тех технологий, которые разработаны и лицензированы на основе принципов свободного веба. Прямо сейчас мы улучшаем поддержку тэга video в HTML5 для Chrome, более плотно интегрируя ее с кодеками, которые уже поддерживаются открытым проектом Chromium. А именно, теперь мы поддерживаем видеокодеки WebM(VP8) и Theora, и задумываемся о добавлении других высококачественных открытых кодеков в будущем. Так как H.264 играет важную роль в видео, а наша цель - дать дорогу открытым инновациям, поддержка этого кодека будет прекращена, а наши ресурсы будут перенаправлены на полостью открытые технологии.
Эти изменения произойдут в следующую пару месяцев, но мы сообщаем о них прямо сейчас, чтобы дать возможность издателям контента и разработчикам сделать необходимые изменения в их сайтах с помощью использования HTML-тэга video.

Источник: www.linux.org.ru

пятница, 24 декабря 2010 г.

Формат ODF утвержден в качестве национального стандарта Российской Федерации

Федеральное агентство по техническому регулированию и метрологии РФ утвердило ГОСТ Р ИСО/МЭК 26300-2010, в котором в качестве стандартного формата для офисных приложений определен формат Open Document (ODF). Документ идентичен принятому четыре года назад международному стандарту ISO/IEC 26300:2006.
В принятом ГОСТ описана соответствующая спецификации Open Document 1.0 XML-схема для офисных приложений и ее семантика, которая охватывает офисные документы, включая текстовые документы, электронные таблицы, диаграммы и графические документы, такие как рисунки и презентации, но не ограничивается этими типами документов. Документ вступит в действие 1 июня 2011 года.

Источник: www.opennet.ru

вторник, 2 ноября 2010 г.

Сбор подписей в поддержку петиции «Нет налогу на болванки!»

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

По прогнозам специалистов, «налог на болванки» приведет к удорожанию техники не на 1%, а на 5-25%. Мы будем платить каждый раз, когда поликлиники и школы будут покупать компьютеры (в этом случае мы будем платить дважды). Мы будем платить каждый раз, когда решим записать на флешку свои фотографии.
РСП защищает права не только собственных членов, а также и правообладателей, которые по принципиальным соображениям не заключают с ней договоры.
Таким образом данные правообладатели не могут отказаться от сбора вознаграждений в их пользу и тем самым уменьшить размер компенсационного сбора или изменить порядок распределения средств.
Допустив наглый «налог на болванки», российское законодательство не дает возможность авторам использовать свободные лицензии. Данные виды лицензий не требуют компенсационных сборов, а авторы все чаще сами публикуют свои произведения для личного воспроизведения. Также при использовании свободных лицензий уважаются и соблюдаются права не только правообладателей, но и граждан.
Мы просим депутатов Государственной Думы:
1. Принять решение о направлении в Конституционный Суд РФ обращения о проверке статьи 1245 ГК РФ, Постановления Правительства № 829 от 14 октября 2010 года «О вознаграждении за свободное воспроизведение фонограмм и аудиовизуальных произведений в личных целях» на соответствие Конституции Российской Федерации
2. Принять решение о направлении запроса в Верховный Суд РФ о разъяснении статьи 1245 ГК РФ по части возможности и законности воспроизведения и копирования любых фонограмм и аудиовизуальных произведений в личных целях при использовании технических средств из перечня, утвержденного постановлением правительства № 829 от 14 октября 2010 года.
3. Принять решение о направлении в Конституционный Суд РФ обращения о проверке предполагаемого распределения денежных средств между правообладателями и фондом, созданным при РСП, на соответствие Конституции Российской Федерации.
4. Инициировать внесение изменений в ГК РФ, разрешающих использование свободных лицензий.



понедельник, 25 октября 2010 г.

В России введен однопроцентный налог на копирование медиа-контента в личных целях

Власть совсем о#$@ла. Зато мы идём по стопам продвинутого Запада, в частности – по стопам Франции.

С форума forum.ixbt.com:
http://www.newsru.com/cinema/05jun2009/dvdkino.html Сегодня отчисления с чистых DVD платят, например, во Франции, где эти средства идут на развитие кинематографии, рассказывает президент "СТС Медиа" Александр Роднянский. Но в случае с Союзом кинематографистов России "возникает вопрос, почему именно эта организация, а не государственная будет осуществлять подобный сбор", отмечает Роднянский. Он, однако, допускает, что государство может делегировать Союзу необходимые полномочия.
А вот юристы указывают, что инициатива Никиты Михалкова прямо противоречит требованиям части 4 Гражданского кодекса. Кодекс разрешает брать деньги с производителей DVD-дисков и прочих материальных носителей, но только в пользу авторов, исполнителей, производителей фонограмм и аудиовизуальных произведений в качестве компенсации за то, что пользователи могут бесплатно копировать произведения в личных целях.
<--->
http://www.infox.ru/afisha/cinema/2009/06/05/Mihalko…pryedlozhil.phtml
Как результат, многие импортеры в стране пошли на мошенничество с документацией. Рядовые покупатели предпочитали покупать носители в соседних европейских государствах. Введение же налога лоббировали ассоциации правообладателей, для которых это стало своего рода компенсацией ущерба от видеопиратства.
В результате переговоров правообладатели согласились на уступку производителям и продавцам, но при условии перераспределения сборов на другие цифровые носители, например на карты памяти. В итоге с 2007 года во Франции введен новый налог на флеш-карты и внешние жесткие диски.

понедельник, 13 сентября 2010 г.

Чемезов – Медведеву: национальная программная платформа создается на базе «Альт Линукс»

На встрече президента России Дмитрия Медведева и главы «Ростехнологий» Сергея Чемезова обсуждалось внедрение свободного программного обеспечения. «Я ещё когда в правительстве работал, начал заниматься вопросами свободного программного обеспечения, - напомнил Медведев. - Тогда мы некоторые программы подготовили и передали в школы, университеты. В общем, это дело пошло, тем более что, если прикинуть, то наши образовательные структуры тратят большие деньги, это, наверное, сотни миллионов долларов в годовом исчислении на приобретение программных продуктов у основных грандов производства. Это не всегда правильно, тем более, что СПО так называемое по своему качеству не хуже, а зачастую, то, что называется интерфейсом, то есть оболочкой, даже удобнее для общения, для того чтобы работать».
Чемезов сообщил, что в «Ростехнологиях» был создан ИТ-холдинг «Сириус». «В него вошло новое предприятие, которое является создателем как раз свободного программного обеспечения – «Альт Линукс». И на базе вот этого предприятия мы сейчас создаем нашу национальную программную платформу», - заявил он.
- На базе общей платформы Linux? – уточнил Медведев. - Да, общей платформы, - подтвердил Чемезов. - Потому что нам не нужно создавать чего-то отдельного, это всё-таки линуксовская платформа, но с нашей спецификой, - заключил президент.
В качестве примера, по словам Чемезова, национальная программная платформа внедряется в трёх областях – Самарской, Новгородской и Тульской. «Тоже на базе «Альт Линукс», - добавил Дмитрий Медведев. - Это важно по разным причинам, потому что это всё-таки вопросы безопасности. Потому что зачастую обладатели прав на соответствующие продукты крупных программных компаний, они не передают коды. При возникновении каких-то проблем либо мы не можем настроить системы. А если говорить о более сложных системах, включая оборонные системы, это просто небезопасно».
«Национальная программная платформа – это широкое понятие, его нельзя представлять как исключительно дистрибутив для десктопов и серверных подразделений, - объясняет Алексей Новодворский, заместитель генерального директора «Альт Линукс». – Это и решения для клиентских устройств, начиная со смартфонов, и системы для датацентров и суперкомпьютеров».

Источник: CNews

понедельник, 5 июля 2010 г.

Пасхальные яйца

user@ubuntu:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
UPD:
user@ubuntu:~$ aptitude moo
В этой программе нет пасхальных яиц.
user@ubuntu:~$ aptitude -v moo
В этой программе на самом деле нет пасхальных яиц.
user@ubuntu:~$ aptitude -vv moo
Разве не было сказано, что в этой программе нет пасхальных яиц?
user@ubuntu:~$ aptitude -vvv moo
Прекратите!
user@ubuntu:~$ aptitude -vvvv moo
Хорошо, хорошо, если я дам вам пасхальное яйцо, вы уйдёте?
user@ubuntu:~$ aptitude -vvvvv moo
Всё, вы победили.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
user@ubuntu:~$ aptitude -vvvvvv moo
Что это? Это слон, которого проглотила змея, конечно.

суббота, 3 июля 2010 г.

Первый стабильный релиз системы распознавания текстов Cuneiform 1.0

Вышла первая стабильная версия системы распознавания текста Cuneiform для платформы Linux. В новой версии проведена большая работа по исправлению ошибок и чистке исходных текстов, что дало разработчикам основание полагать о стабилизации кодовой базы проекта. Код Cuneiform для Linux распространяется под упрощенной лицензией BSD и основан на коде, открытом компанией Cognitive Technologies в 2007 году.

OCR CuneiForm может распознавать любые полиграфические, машинописные гарнитуры всех начертаний и шрифты, получаемые с принтеров за исключением декоративных и рукописных. В систему встроены специальные алгоритмы для распознавания текста с матричного принтера, плохих ксерокопий факсов и машинописи. Поддерживается более чем 20 языков. Отдельно стоит отметить отличную поддержку распознавания текста на русском и украинском языках. Результат распознавания может быть сохранен в форматах HTML, hOCR, RTF или PDF с сохранением особенностей начертания оригинала (выделение жирным, курсивом и т.д.).

Источник: www.opennet.ru