Операция “Квадрокоптер”. День второй. Сборка

Date January 8th, 2014 Author Vitaly Agapov

Лучше без точно сформулированной цели двигаться вперед, чем без цели стоять на месте, и уж наверняка гораздо лучше, чем без цели пятиться.

Анджей Сапковский «Башня Ласточки»

Операция "Квадрокоптер"Сборка квадрокоптера состоит из двух условных процессов. Первый процесс подразумевает соединение компонентов нужными интерфейсами и в нужной последовательности. Второй процесс (менее технологичный, но более творческий) заставляет решать, как разместить всё на маленькой площади, закрепить и как проложить провода. Эти процессы идут параллельно, то входя в конфронтацию вплоть до полной блокировки, то помогая друг другу.

Так как второй процесс весьма индивидуален и сильно зависит от конкретной рамы и конкретной реализации, начнём именно с него.

 

Читать далее »

Tags: ,
Категория: R/C | 1 Комментарий »


Операция “Квадрокоптер”. День первый. Выбор компонентов

Date December 31st, 2013 Author Vitaly Agapov

Чёрт знает, чем всё кончится, но хорошо, что хоть начинается.

Анджей Сапковский «Крещение огнём»

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

Само собой, путь в тысячу ри начинается с одного шага. А в нашем случае этим шагом является выбор компонентов для коптера, сопряжённый с чтением мегабайтов текстов (форумов, документаций и прочего) и рассматриванием витрин зарубежных (в основном – китайских) интернет-магазинов.

 

Читать далее »

Tags: ,
Категория: R/C | 4 Комментариев »


Миграция пользователей Atlassian Jira на LDAP

Date December 26th, 2013 Author Vitaly Agapov

Это будет самая замечательная миграция! Я покажу вам свои любимые забегаловки… А знаете, я поменяю цвет, когда подсохнет грибок на моей шкурке!..

м/ф «Ледниковый период»

migrationМиграция пользователей, хранящихся в локальной директории в Jira на LDAP-сервер (AD либо OpenLDAP) не вызовет никаких трудностей, если логины этих пользователей совпадают в Jira и на LDAP-сервере. В этом случае надо просто настроить новую User Directory в Jira и поменять ей приоритет на самый высокий, чтобы аутентификация сперва проходила через неё. Если же есть пользователи, у которых в Jira один логин, а в том же Active Directory – другой, то тут вылезет ряд проблем. В основном эти проблемы будут связаны с тем, что LDAP-аккаунт Джирой будет восприниматься как совершенно отдельный пользователь, а все задачи, комментарии и история останутся привязанными к старому пользователю. Посмотрим, как решить эту проблему.

Читать далее »

Tags: , ,
Категория: Perl | 2 Комментариев »


Автоматический запуск профайлера в New Relic

Date November 19th, 2013 Author Vitaly Agapov

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

Анджей Сапковскийн «Кровь эльфов»

nr-profilerНесколько лет назад я уже писал статью про свой игрушечный Perl'овый скриптик, авторизующийся на странице. Новой практической задачи пришлось ждать довольно долго. Но она появилась. После недавнего обновления клиентов New Relic у них появилась возможность профилировать все потоки приложения (Java, Ruby, да хоть PHP), чтобы была возможность определить, в каких тредах и на каких методах происходит потеря времени. Запуск профайлера производится из веб-интерфейса, куда надо сначала залогиниться. А очень хотелось записывать дампы по расписанию или, допустим, по наступлению некоего события вроде слишком высокого времени ответа или высокой загрузки CPU.

А пол-дела уже и сделано. Осталось припомнить основы работы с модулем LWP::UserAgent и посмотреть firebug'ом, как проходит авторизация, подстановка CSRF-токенов  и отправка форм в интерфейсе New Relic.

 

Читать далее »

Tags:
Категория: Perl | Нет комментариев »


Перезагрузка HAProxy и потеря запросов

Date November 7th, 2013 Author Vitaly Agapov

В другой витрине толстяк в фартуке мясника резал младенцев. Это была наглядная пропаганда общественной благотворительности.

Борис Виан «Пена дней»

lost

Разбирая странные ошибки фронтенда, возникновение которых удивительным образом коррелирует с моментами, когда я произвожу перезагрузку HAProxy (service haproxy reload), я выяснил, эта самая перезагрузка работает совсем не так, как я думал. Вопреки ожиданием при перезагрузке процесс вовсе не перечитывает конфигурационные файлы и продолжает работать дальше. На самом деле порождается новый процесс haproxy с новым pid'ом. Он через unix-сокет забирает у старого процесса все сессионные данные и просит того освободить порт и умереть. Дождавшись освобождения порта, он биндится на него и как ни в чём не бывало продолжает принимать новые соединения и обслуживать старые. Но…

Читать далее »

Tags: , ,
Категория: HAProxy, Linux | Нет комментариев »


“Летать доска”, или Флайборд

Date November 2nd, 2013 Author Vitaly Agapov

Поупражнялся в августе 2013-го года.

Tags:
Категория: Beyond IT | Нет комментариев »


Подсветка синтаксиса в командной строке

Date October 30th, 2013 Author Vitaly Agapov

Мудрость – это, в частности, умение пропускать мимо ушей глупые или неискренние советы.

Анджей Сапковский «Меч Предназначения»

source-higlight

Подсветка синтаксиса в том же Vim'е – дело привычное и полезное. Но ещё было бы полезно получить такую же раскраску и в обычном стандартном выводе в консоли. Её можно было смотреть прямо так или подать на вход less'у, не важно. И таких способов существует несколько.

 

Читать далее »

Tags:
Категория: Linux | Нет комментариев »


ModSecurity для Nginx: проблема с двойным Charset’ом

Date October 21st, 2013 Author Vitaly Agapov

Купленному покупатель платит по собственному усмотрению, а оказывающий услугу цену назначает сам.

Анджей Сапковский «Последнее желание»

nginx-modsec-charset

Не так давно я разбирался с применением ModSecurity для Nginx и даже набросал по этому поводу статью. Но в процессе эксплуатации этого решения я натолкнулся на странное поведение связки. Почему-то при работе Nginx в качестве прокси он в заголовок Content-Type ответа добавляет параметр charset независимо от того, присутствует он там уже или нет. Но беда не в этом, а в том, что к значению параметра кодировки он прибавляет случайным образом один байт, который на многих браузерах приводит к нечитаемости приходящего кириллического текста. Быстрое гугление показало, что проблему эту обнаружил не только я (раз, два), но решение для неё отсутствует в обозримых пространствах интернета.

Читать далее »

Tags: ,
Категория: Nginx, Security | 6 Комментариев »


Nginx, HAProxy, Varnish: мониторинг в New Relic

Date October 15th, 2013 Author Vitaly Agapov

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

Виктор Пелевин «Бэтман Аполло»

nr-hnv

Не так давно я писал статью по увязыванию в единое целое Nginx, Varnish и HAProxy и хотел рассмотреть также вопрос с мониторингом всего этого добра. Но пришла мне в голову идея расписать не общие возможности по мониторингу, а способы мониторить и собирать статистику по этим приложениям в довольно известном SaaS-сервисе под названием New Relic. New Relic умеет работать с помощью своих агентов практически в любых приложениях (Java, Ruby, PHP и ещё многих разных словах). Но главная вкусность таится в большом количестве отдельных плагинов для мониторинга практически чего угодно – от нашей тройки героев до Hadoop и RabbitMQ.

Читать далее »

Tags: , ,
Категория: HAProxy, Nginx, Varnish | Нет комментариев »


Порог Большой Толли на Шуе

Date September 19th, 2013 Author Vitaly Agapov

Съездили в Карелию в августе 2013-го года

Tags:
Категория: Beyond IT | Нет комментариев »