Docker Hub и автоматизация

Затрагивая тему использования Docker невозможно не коснуться использования Docker Hub и Dockerfiles. В этой заметке я расскажу как их можно использовать для автоматизации.
Ознакомительная статья тут: Знакомство с Docker в RedHat 7

Docker Hub

Если вы использовали Docker, то скорее всего использовали не зная того и Docker Hub. Он используется для хранения образов. Если вы запускаете контейнер из образа, который ранее не использовали, то образ будет взят из хаба.

Если вы ходите сделать контейнеры доступными для других пользователей, то вы можете создать бесплатную учетную запись на Docker Hub. Функционал позволяет создавать приватные репозитории, в которых доступ к образам можно ограничить.
Read more »

Java 7: особенности обработки даты при использовании Y в последнюю неделю года

Использование заглавной буквы «Y» для отображения даты было представлено в java 7. И, как оказывается, тут есть подводный камень: этот способ отображения может вывести дату в январе не 2014, а 2015 года. К примеру, для даты 2014/29/12 формат «YYYY/MM/dd» выдаст 2015/12/29. Ошибка происходит при выполнении двух условий:

— строка формата содержит Y
— для форматирования передан момент времени (timestamp), соответствующий последней неделе года
Read more »

Настройка обработчика SNMP trap в RedHat

Протокол SNMP широко используется для управления устройствами в IP-сетях на основе архитектур TCP/UDP. Механизм SNMP trap позволяет агенту асинхронно уведомить менеджера об изменении состояния. Разберем действия по настройке для приема SNMP trap.

Первым делом надо установить нужный софт:

# yum install net-snmp

В файл /etc/snmp/snmptrapd.conf надо добавить строки:

# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
# authCommunity log,execute,net public
# traphandle SNMPv2-MIB::coldStart /usr/bin/bin/my_great_script cold
authCommunity log public
logOption f /var/log/snmptraps.log

Read more »

Знакомство с Docker в RedHat 7

В данной статье я рассмотрю сетевой аспект использования Docker: как настроить полную прозрачность (full transparency) на одном компьютере — это было невозможно в RedHat 6. Теперь вместо трех серверов мы обойдемся двумя-тремя контейнерами.

Подобные настройки были возможны при использовании OpenStack, он поддерживает сетевые пространства имен (network namespaces) и поэтому на единственной машине можно имитировать клиент/прокси/сервер, каждый в своем пространстве имен.

При старте Докера создается виртуальный сетевой интерфейс docker0. Он выбирает случайным образом адрес и подсеть из частного (private) диапазона (из незанятых). Docker0 – это виртуальный мост (virtual Ethernet bridge), он автоматически перенаправляет пакеты пакеты между другими сетевыми интерфейсами, которые приписаны к нему. Это позволяет контейнерам общаться друг с другом и с машиной, на которой они запущены.
Read more »

Использование SOCKS для прозрачного проксирования (transparent proxy)

В данной заметке я рассмотрю настройку маршрута со своего рабочего компьютера на сервер. Вообще для этого требуется какой-то промежуточный машрутизатор. У меня он будет находиться по IP 100.100.100.109 (мой рабочий компьютер по совместительству), а сервер — по адресу 100.100.100.110 (все адреса являются вымышленными, любое совпадение с реальными — случайное 🙂 )

1. Настройте socks proxy на порте 9999 с помощью ssh. Можно сделать это с помощью PuTTY.

ssh -D 9999 100.100.100.109

Read more »

Сделай сам: брелок для ключей из старого процессора Pentium 4

У меня обнаружилось некоторое количество стареньких процессоров Pentium4. Я уже имею изрядный опыт по работе с эпоксидной смолой и поэтому решил дать процессорам вторую жизнь.

Вообще, есть специальная эпоксидная смола, которую используют для длительного хранения насекомых в коллекции насекомые в эпоксидке. Она скорее всего содержит компонент, защищающий от УФ лучей. Благодаря этому сохраняется прозрачность и не меняется цвет. Но я не стал в данном случае заморачиваться и купил самую простую смолу в строительном магазине.

DSC_0020_unterschrift
Read more »

Увеличение сетевого трафика в связи с появлением игровых видеохостингов

Специализированные видеохостинги уже сейчас оказывают влияние на профиль сетевого трафика у иностранных провайдеров.

В первую очередь надо упомянуть сайт twitch.tv (принадлежит Amazon). На этот сайт можно выложить видео с собой любимым, играющим в какую-нибудь игру. Видео может быть записано заранее или сниматься на лету, в живую. Еще на этом канале проводятся игровые соревнования, ранее они транслировались только по специфическим каналам, посвященным электронному спорту (e-sports).

Из статьи в Guardian можно узнать, что Twitch находится на четвертом месте в рейтинге источников сетевого траффика в США. Первая тройка — это NetFlix, Google и Apple. В октябре Twitch установил рекорд: прямую трансляцию League of Legends World Championships в отдельно взятый день посмотрели более 32 миллионов зрителей, а одновременно — 8.5 миллионов (ссылка). В отчете, выпущенном Twitch, говорится о том, что 99% пользователей смотрят прямые игровые трансляции, 38% смотрят анонс (содержание видеоролика), 61% пользователей чатятся с другими и 25% транслируют процесс игры сами. У Twitch сейчас свыше 45 миллионов подписчиков.
Read more »

Тенденция использования сайтами протокола SPDY

Судя по последним данным произошел увеличение числа сайтов, использующих SPDY.

Пока нельзя сказать что это: скачок или график пойдет дальше вверх с таким же наклоном.

источник: w3techs.com
Read more »

Как сделать CSV файл совместимым с Excel

Для обмена данными многие приложения используют формат CSV. Этот формат стал своего рода стандартом и к нему выработаны требования. Перечень требований на английском (CSV well formedness): Требования к CSV

В данной заметке я расскажу, как исправить нарушение требования к экранированию двойных кавычек, которое может повлечь лишние колонки при импорте данных в Excel. Будет использован небольшой скрипт на perl.
Предусловием является то, что разделитель в CSV вы можете настроить в отличие от экранирования кавычек. Пусть это будет символ \x01, который обычно в текстовых файлах не встречается. Еще одно допущение: считается что кавычки не экранированы во всем документе.

Корректно сгенерированная строка:

Jack;McGinnis;220 hobo Av.;Phila; PA;09119

Для наглядности символ \x01 (наш сконфигурированный разделитель) заменен на точку с запятой.
Read more »

Использование структурной распечатки (pretty-printing) в GDB

Данный механизм в частности позволяет получить содержимое STL классов в удобочитаемой форме.

 Для примера возьмем такой код:

std::string fred(“abc”);

 Если вы попытаетесь распечатаь содержимое переменной fred в GDB, вы увидите кучу недружелюбной и не всегда нужной информации.

(gdb) print fred
$1 = {
 static npos = <optimized out="">, 
 _M_dataplus = {
 <std::allocator<char>&gt; = {
 &lt;__gnu_cxx::new_allocator</char><char>&gt; = {<no data="" fields="">}, </no><no data="" fields="">}, 
 members of std::basic_string<char, std::char_traits<char="">, std::allocator<char> &gt;::_Alloc_hider: 
 _M_p = 0×601048 “abc”
 }
}
</char></char,></no></char></std::allocator<char></char></optimized>

Но есть способ это поправить.
Read more »