Как стать автором
Обновить

Компания AT Consulting временно не ведёт блог на Хабре

Сначала показывать

CEPH на прокачку

Время на прочтение4 мин
Количество просмотров19K

Примерно так выглядит первая инсталляция CEPH на реальном железе.

Вы установили цеф, но он тормозит и падает непонятно почему? Тогда вы пришли по адресу! Я прокачаю ваш CEPH.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии21

Zabbix-мониторинг данных в БД Oracle без unixODBC

Время на прочтение5 мин
Количество просмотров16K
Была поставлена задача: реализовать мониторинг БД Oracle средствами Zabbix, а именно — отслеживать параметры табличных пространств на определенном инстансе. Раз задача поставлена, значит делаем. Как известно, Zabbix предоставляет возможность через предопределенный тип данных осуществлять запросы к базам данным и получать результат запроса. На официальном сайте разработчиков Zabbix есть очень хорошая документация по настройке ODBC-мониторинга.

image

У нас сервер Zabbix 3.0.4 под управлением Centos 7. Ранее ODBC мониторинг не был настроен, а следовательно, нужно открывать инструкции и начинать установку и настройку.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии23

Твой/мой/наш код

Время на прочтение4 мин
Количество просмотров23K
Коллега однажды спросил: «А кому с юридической точки зрения принадлежит код, который пишет разработчик?». Выяснив у юристов все тонкости прав на код, я решила поделиться полученными знаниями.


Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии39

Как мы делали интерактивный квест для RailsClub

Время на прочтение3 мин
Количество просмотров5.2K
RailsClub — конференция, которую AT Consulting посещает практически с момента ее основания. В этом году мы стали ее золотым партнером и решили придумать для участников что-то более интересное, чем розыгрыш призов, и написали интерактивный квест, включающий 15 заданий. Большая часть из них — на знание Ruby и несколько творческих. Опыт получился интересный, так как это был наш первый квест для мероприятий. По итогам проведения квеста мы собрали много отзывов и вопросов по отдельным заданиям. В этой статье мы расскажем о том, как создавали квест, и разберем ответы.



Команда состояла из одного front-end, двух back-end разработчиков и дизайнера.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии6

Внедрение зависимостей в CDI. Часть 3

Время на прочтение7 мин
Количество просмотров7.4K

Если вы следите за этим блогом, то помните, что в последнее время я пишу (и говорю) о CDI (Contexts and Dependency Injection). У CDI много аспектов, но до сих пор я акцентировал внимание на том, как начать работу с CDI в вашем окружении и как интегрировать CDI в существующее Java EE 6 приложение, а затем сфокусировался на внедрении зависимостей в CDI. Это уже третий пост про внедрение в CDI: в первом я рассказывал о внедрении по умолчанию и спецификаторах, во второй о всех возможных точках внедрения (поле, конструктор, сеттер). В этом посте я расскажу о продюсерах или "как вы можете типобезопасным способом внедрять что угодно и куда угодно".


COFFEE_BEANS

Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии0

Внедрение зависимостей в CDI. Часть 2

Время на прочтение4 мин
Количество просмотров5.7K

Это второй пост о внедрении зависимостей в CDI (Часть 1) после нашего разговора о том, как начать работу с CDI в вашем окружении и как интегрировать CDI в существующее Java EE 6 приложение. В этом посте я хочу рассказать о различных точках внедрения в CDI: поле, конструктор и сеттер. Для этого я буду использовать часть предыдущего примера: внедрение POJO генератора ISBN в сервлет.


COFFEE_BEANS

Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии0

Внедрение зависимостей в CDI. Часть 1

Время на прочтение7 мин
Количество просмотров30K

После статьи о том, как начать работу с CDI в вашем окружении и нескольких советов о том, как интегрировать CDI в существующее Java EE 6 приложение, я хочу поговорить о внедрении зависимостей. Да, о простом внедрении или о том, как провести внедрение одного бина в другой. Из этой серии трех статей (Часть 2, Часть 3) вы увидите, что есть множество различных способов: давайте начнем с самого простого — обыкновенного внедрения.


COFFEE_BEANS

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Rebase Flow. Способ приготовления и его поддержка в GitHub, GitLab, BitBucket

Время на прочтение7 мин
Количество просмотров42K

Немного истории


В самом начале 2010 года Vincent Driessen пишет отличную статью A successful Git branching model. Для понимания того, о чем пойдет речь дальше, со статьей нужно, конечно же, познакомиться. А для тех, кому сложен язык оригинальной статьи, на хабре есть её отличный перевод.


С этого момента описанная модель ветвления GitFlow, начинает, что называется, расходиться по миру. Её берут на вооружение многие команды. Авторы пишут много статей об успешном её использовании. Она получает поддержку в большинстве инструментов, которые используют разработчики:



Git


Кажется, что модель идеальна. Быть может так оно и есть, если у вас небольшая команда, неизменяемый скоуп релизов, высокая культура работы с VCS. Тогда, действительно, GitFlow может и удовлетворит все ваши потребности. Но, к сожалению, описанные условия подходят не всем командам и не всем проектам. К слову, найти статьи, в которых бы авторы описывали проблемы этой модели не так уж и просто даже в 2016 году. Но как мы все знаем, серебряной пули нет, а, значит, и в этой модели всё хорошо далеко не для всех.

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии117

Настройка и использование Apache Ignite в качестве MyBatis кэш второго уровня (L2 cache)

Время на прочтение9 мин
Количество просмотров9.8K
В этой статье я расскажу о том, как настроить apache ignite в качестве 2-го уровня кэша для MyBatis и посмотреть запись кэша в Apache Ignite.

image
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии16

Как быть, когда запутался в текстурах

Время на прочтение8 мин
Количество просмотров19K
Советов новичкам про то, как начать карьеру дизайнера, в интернете масса. Гораздо интереснее становится, когда понимаешь, что уже не готов просто рисовать картинки. Наш бывший коллега Павел Батурин, который 2,5 года работал в AT Consulting на проекте «Электронное правительство», рассказал, почему важно уметь продавать свою работу, как с нуля организовать отдел и поделился другими практическими советами, которые помогут тем, кто достиг потолка в дизайнерской профессии.


Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии11

Обнаружение + Zabbix API под Java

Время на прочтение7 мин
Количество просмотров14K
По мере развития проекта разрастается и инфраструктура, обслуживающая этот проект. Со временем появляется множество элементов сети, параметры которых важно отслеживать в онлайн-режиме. Для решения этой задачи элементы сети необходимо добавить в систему мониторинга.
Добавить новый узел в Zabbix можно несколькими способами:

  • вручную через интерфейс Zabbix;
  • используя «Обнаружение» Zabbix;
  • используя API Zabbix.

Добавление множества новых узлов вручную – рутинная задача, на решение которой уходит уйма времени. Хорошо, если новых узлов будет 5 – 10. А если 50 – 100 и больше? В этом случае вам поможет «Обнаружение». Настроив правила обнаружения и действия для обнаруженных узлов, Zabbix сам создаст новые обнаруженные узлы, подключит необходимые шаблоны, переместит созданный узел в нужную группу. Данный способ имеет недостаток.


Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии13

Zabbix + SoapUI = мониторинг веб-служб

Время на прочтение7 мин
Количество просмотров25K
На сегодняшний день существует множество приложений и программных комплексов от разных разработчиков, которые мы используем для решения общих задач. Обмен данными и взаимодействие между приложениями обеспечивают веб-службы. Для тестирования их работы, отладки взаимодействия между собой и клиентскими приложениями также выпущено множество инструментов. Самый популярный из них – SoapUI: он поддерживает SOAP/WSDL, REST, HTTP(S), JDBS, JMS и обладает набором инструментов, которые позволяют сделать тестирование проще и нагляднее. SoapUI выступает как тестовый сервис и тестовый клиент и позволяет тестировать интеграцию подсистем. Подробнее с инструментом можно познакомиться на официальном сайте разработчика.



Если для решения поставленной задачи используется один компьютер и комплекс приложений, поломка ПК или сбой одной из программ выявляется быстро. Но что делать, когда в организации много технических средств и программных продуктов? Физически трудно и очень затратно следить и каждую свободную минуту проверять, всё ли в порядке. Для решения этой задачи приходят на помощь специализированные программные системы, которых в интернете вы найдете очень много: одна из них – Zabbix.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии0

MongoDB как средство мониторинга LOG-файлов

Время на прочтение9 мин
Количество просмотров20K
В этой статье я расскажу об использовании нереляционной базы MongoDB для мониторинга журнальных файлов. Для мониторинга log-файлов существует множество инструментов, от мониторинга shell-скриптами, завязанными на cron, до кластера apache hadoop.



Подход с мониторингом скриптами текстовых файлов удобен только в простейших случаях, когда, например, проблемы выявляются наличием в журнальном файле строк «ERROR», «FAILURE», «SEVERE» и т.п. Для мониторинга больших файлов удобно использовать систему Zabbix, где Zabbix Agent (active) будет считывать только новые данные и с определённой периодичностью отправлять их на сервер.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии47

Переход из SQL на NoSQL: опыт проекта СМЭВ 2.0

Время на прочтение4 мин
Количество просмотров36K
В последние годы NoSQL и BigData стали очень популярными в ИТ-индустрии, и на базе NoSQL успешно реализованы тысячи проектов. Часто на разных конференциях и форумах слушатели задают вопрос о том, как модернизировать или перенести старые системы (legacy) в NoSQL. К счастью, у нас был опыт перехода из SQL на NoSQL в крупном проекте СМЭВ 2.0, о котором я и расскажу под катом.


Читать дальше →
Всего голосов 30: ↑23 и ↓7+16
Комментарии53

Правильная работа с датой и временем в Ruby on Rails

Время на прочтение14 мин
Количество просмотров31K
Всем привет! Меня зовут Андрей Новиков и в последнее время я работаю над проектом по разработке приложения, которое используется в разных частях нашей страны и автоматизирует работу людей. В каждом конкретном часовом поясе нашему приложению необходимо правильно получать, сохранять и отображать время, причём как в прошлом, так и в будущем – например, рассчитать начало рабочей смены и так же правильно его отображать: отсчитать время до конца смены, показать, сколько люди ехали до точки назначения и определить, уложились ли они в норматив, в также многое-многое другое.



За те уже несколько лет, что я пишу на Ruby on Rails, мне не приходилось сталкиваться с подобными проблемами — до этого все мои приложения работали в одном часовом поясе. А тут неожиданно пришлось немало попотеть, отлавливая самые разные ошибки и пытаясь выяснить, как же работать с датой и временем так, чтобы их в дальнейшем избежать.

В результате, сегодня мне есть, чем с вами поделиться. Если вы регулярно встречаетесь с тем, что время сохраняется или отображается некорректно с характерным разбросом в несколько часов (3 часа для Москвы), какие-то ночные записи перекочёвывают на соседние дни, а время упорно отображается не так, как хотят пользователи, и вы не знаете, что со всем этим делать — добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии16

Каждой ветке по хосту c помощью capistrano

Время на прочтение3 мин
Количество просмотров6.2K
Думаю многим знакомо понятие «борьба за staging», когда все разработчики одновременно за день до релиза хотят поделиться своими наработками, чтобы тестировщик их проверил как можно скорее и не пришлось всю ночь править баги, да? Кому интересно посмотреть как мы решаем данную проблему для RoR-проектов с помощью Capistrano прошу под кат.


Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии8

Big Data — первый опыт ED IB

Время на прочтение4 мин
Количество просмотров18K
Всем привет! Сегодня мы хотим рассказать про наше знакомство с Big Data, которое началось в 2012 году, когда рынок ещё не накрыла волна популярности темы больших данных.



К тому времени у нас уже накопилась экспертиза в области построения хранилищ данных. Мы рассматривали различные пути улучшения стандартных архитектур ХД, поскольку заказчик хотел обрабатывать большие объёмы данных за короткое время и при ограниченном бюджете. Мы понимали, что большие объёмы данных для стандартного хранилища прекрасно обрабатываются на MPP-платформах, но де-факто это дорого. Значит, нам нужна недорогая распределенная система. Ей оказался Hadoop. Он нуждается в минимальных начальных вложениях, а первые результаты можно получить очень быстро. В дальнейшей перспективе – горизонтальное, практически линейное масштабирование, открытая платформа и много интересных дополнительных функций: например, NoSQL, быстрый поиск по данным, подобие SQL-языка доступа к данным.
Читать дальше →
Всего голосов 29: ↑19 и ↓10+9
Комментарии18

Автоматизируй это

Время на прочтение9 мин
Количество просмотров28K
Сколько нужно программистов, чтобы сделать форму для пользователя? Ни одного! Для этого достаточно создать инструмент, с помощью которого создавать формы для web-решений смогут даже домохозяйки.


Читать дальше →
Всего голосов 32: ↑22 и ↓10+12
Комментарии19

Подборка актуальных и полезных материалов по Ruby #1: статьи, доклады, подкасты, гемы

Время на прочтение3 мин
Количество просмотров17K


Всем привет! Я работаю в AT Consulting и представляю команду разработчиков портала Beeline.kz, который мы пишем на Ruby on Rails. Поскольку информация в нашей сфере быстро устаревает, приходится постоянно следить за новостями и обучаться новым технологиям. По мере накопления новостей и полезных материалов, связанных с Ruby, я буду публиковать Ruby-дайджест.
Большинство материалов, которые я собрал в дайджесте, написаны на английском, но я надеюсь, что это не проблема, ведь первый шаг к Ruby – это изучение языка.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии15

Ruby и криптоалгоритмы ГОСТ

Время на прочтение8 мин
Количество просмотров20K
Логотип Ruby и суровый ГОСТовый навесной замокВ жизни далеко не каждого разработчика наступает момент, когда приходится взаимодействовать с государственными системами. И немногим из них приходится взаимодействовать именно с российскими государственными системами. И так уж сложились звёзды, что я оказался одним из этих «счастливчиков».

Особенность российского государева ИТ в том, что везде, где нужно обеспечить безопасность (шифрование) и целостность (подпись) информации, необходимо использовать только отечественные криптоалгоритмы (которые стандартизованы и описаны в добром десятке ГОСТов и RFC). Это весьма логично с точки зрения национальной безопасности, но весьма больно с точки зрения разработки на не самом популярном языке (это джависты вон обласканы вниманием со всех сторон).

И вот, когда встала перед нами задача весьма плотного обмена сообщениями с ГОСТовой электронной подписью с одной из таких систем, то предложенный вариант решения в виде сетевого SOAP-сервиса, подписывающего запросы (и ответы) мне не понравился от слова «совсем» (оборачивать SOAP в SOAP — это какой-то кошмар в квадрате). Наступили длинные майские выходные, а когда они закончились — у меня было решение получше…
Что же это за решение?
Всего голосов 23: ↑22 и ↓1+21
Комментарии7