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

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

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

Анатомия .NET Core: как мы настроили NTLM под Linux

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

Мы продолжаем рассказывать про миграцию мобильного сервиса в ASP.NET Core и Docker. В этой статье будет идти речь про модуль WCF-клиента, упомянутый в предыдущей статье, NTLM-авторизацию и другие проблемы при его миграции. Сейчас расскажем, почему нам пришлось немного изучить анатомию и пощупать .NET Core изнутри.


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

Как мы настроили Continuous Delivery в Kubernetes с помощью TFS

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

Мы продолжаем наш путь к Continuous Delivery (CD) и High Availability (HA), основанной на избыточности. В предыдущей серии мы перевели API для мобильного приложения на .NET Core. Следующий логичный шаг для достижения CD — настроить сборку в Docker-контейнер.


Сегодня поделимся нашим getting-started гайдом по настройке сборки docker-образов и деплоя в Kubernetes в TFS для разработчиков .NET.


(Предполагается, что к этому моменту вы уже мигрировали ваше ASP.NET приложение на ASP.NET Core, а если нет, читайте нашу прошлую статью).


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

Архивирование и восстановление индексов в Elasticsearch

Время на прочтение 5 мин
Количество просмотров 18K
Однажды в одно прекрасное утро перед нами встал вопрос архивирования индексов Elasticsearch. Захотелось увидеть в хранилище стройные ряды сжатых файлов, по одному на каждый индекс.

«Из коробки» Elastic такого решения не предлагает, по крайней мере, в версии 5.х. Немного поспрашивав у Гугла Всемогущего, мы решили создать собственный велосипед. Пусть немного неуклюжий, зато родной.



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

Разворачиваем окружение для Java-приложения с помощью Ansible

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

За мной, за мной, читатель, и я проведу тебя в чарующий мир автоматизации разворачивания окружения на серверах под управлением Linux семейства RHEL.


Один из наших java-проектов вырос, стал совсем взрослым и сейчас занимает 4 контура:


Dev — контур для команды разработки,
Qa — контур для команды тестирования,
Stage — контур для демонстрации новых фич заказчику,
Production — боевой контур.


Каждый контур содержит два одинаковых сервера с идентичным набором компонентов окружения для нашего приложения:


linux Oracle — операционная система,
jdk — комплект приложений Java,
haproxy — proxy сервер,
nginx — веб-сервер для отдачи статики,
mysql — субд.


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


После краткого сравнения систем управления конфигурациями был выбран Ansible. В его пользу сыграли простота, гибкость и отсутствие агентов на управляемых серверах.


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

О чем не пишут в документации, или тонкости рефакторинга на .Net Core

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

Всем привет! Этим материалом мы открываем цикл из нескольких статей, посвященных длинной истории о том, как мы пришли с одной стороны к CD, а с другой — к high availability, основанной на избыточности.


Начнем по порядку. У нас есть API для мобильного приложения, которое находится в продуктовой среде, написанный на .NET.


И первым шагом мы переводим его на .NET Core и делимся с вами тонкостями, которые встретились нам на этом пути.


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

Как мы адаптировали стек ELK для мониторинга и анализа ошибок на Java и .NET проектах

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

Пациент приходит к врачу и жалуется на боль в животе. «Срочно на операцию! — отвечает врач. — Сейчас мы вас разрежем, покопаемся и постараемся зашить как было».


Когда пользователи ругались на работу системы, называя программистов негодяями, мы поднимали журнал событий и смотрели, что пошло не так. А потом перешли на ELK. Теперь мы мониторим ошибки в моменте, не тормозя работу сервисов.


В этой статье мы расскажем, как адаптируем и применяем стек ELK на Java и .Net-проектах и находим ошибки в онлайн режиме без вскрытия или малоинвазивными методами. Да, мы разобрались и поняли, что не очень важно, Microsoft ли сделал это решение или Open Source — всё одинаково можно настроить под свои нужды.


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

Как мы настроили поиск с помощью Elasticsearch и Logstash по данным MSSQL

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

Делимся подробностями, как мы сделали хороший поиск по закрытой корпоративной соцсети в условиях, когда:


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


Критерий хорошего поиска для нас звучит так: даже если пользователь ввел запрос с опечаткой или неточно указал название группы, то всё равно нашёл её.


Также на перспективу нам нужно было продумать поиск по хэштегам как по раздельным словам, поиск по синонимам, ранжирование результатов и выдачу промежуточных результатов на лету.


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

Библиотека Reamp: обезболивающее для ваших Android-приложений

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

Однажды мы в компании EastBanc Technologies устали бороться с теми архитектурными проблемами, которые возникают в Android-разработке и решили все исправить:). Мы хотели найти решение, которое удовлетворит всем нашим требованиям.


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


Какие проблемы решали:


  • Уйти от жизненного цикла экранов, будь то Activity, Fragment или View
  • Уйти от необходимости писать код для сохранения и восстановления состояния для каждого экрана
  • Повысить стабильность: защититься от досадных крешей и утечек памяти
  • Повысить переиспользуемость кода между телефонным UI и планшетным UI

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

Как тренироваться в беге максимально эффективно

Время на прочтение 6 мин
Количество просмотров 12K
Мы в EastBanc Technologies задумали пробежать полумарафон. Наняли тренеров, составили планы тренировок. И, конечно, все сразу закупились гаджетами и накачали красивых мобильных приложений.

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

Чтобы не гадать, «Почему я потянул лодыжку на тренировке, а сосед по команде нет», наши коллеги решили пойти к ученым-физиологам из новосибирского педуниверситета, аналогово сдавать кровь и офлайново замерять ЭКГ, ибо на сегодня это пока что самый надежный способ составить по-настоящему индивидуальный план тренировок с учетом всех заморочек своего организма.

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

B2P: как за 5 лет набрать 3 000 новостей для корпоративного издания в ИТ-компании численностью >100 человек

Время на прочтение 8 мин
Количество просмотров 2.1K
Интернет не дает ответа на вопрос «Как собирать корпоративные новости в ИТ-компании для Business to Personal издания?». А между тем, он очень интересует пиарщиков и эйчаров. Всем очевидно: сотрудников нужно информировать о происходящем в компании, рассказывать им новости с соседних проектов, планы развития, транслировать как-то ожидания начальства насчет корпоративной культуры, целей… Но как собирать эту информацию? У кого спрашивать? Как ее преподносить?

За 5 лет мы в ИТ-компании EastBanc Technologies написали 3 108 новостей в нашем корпоративном настенном издании под названием «Сводка». Примерно 2,5 новости каждый день. В этой статье мы расскажем, как и зачем делаем это. По ходу повествования будем показывать результаты опроса, посвященного сводке, в котором поучаствовали 54% сотрудников.

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

Создание дизайн-экосистемы для десятков связанных ИТ-решений: слово дизайнерам

Время на прочтение 6 мин
Количество просмотров 9.9K
Сегодня расскажем, как пришли к необходимости создания единой UI/UX-системы для разных приложений одного из наших заказчиков. О том, какие принципы в нее заложили и как технологично дизайн-экосистему упаковали.

image

Надеемся, наш опыт будет интересен UI/UX дизайнерам, фронтэндерам, а также бренд-менеджерам, которые на собственном опыте сталкиваются с подобными задачами.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 6

Рецепты под Android: Scroll-To-Dismiss Activity

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

Привет! Сегодня мы расскажем, как за минимальное количество времени добавить в свою Activity поведение Scroll-To-Dismiss. Scroll-To-Dismiss – это популярный в современном мире жест, позволяющий закрыть текущий экран и вернуться в предыдущую Activity.



В один прекрасный день нам поступил реквест на добавление такой функциональности в одно из наших новостных приложений. Если вам интересно, как легко добавить такую функциональность в уже существующую Activity и избежать возможных проблем – добро пожаловать под кат.

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

Когда нужен корпоративный магазин приложений

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

Тема корпоративных приложений не первый год активно обсуждается на конференциях и в статьях. Все рисуют "бочку мёда": быстро, всегда под рукой, из дома и офиса… В общем, перспективный, удобный инструмент для оперативного решения бизнес-задач.


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


Мы в EastВanc Technologies написали некоторое количество корпоративных мобильных приложений, и всегда вопрос с установкой и обновлением вставал остро. Среди всех вариантов один нам кажется достаточно технологичным и интересным – свой магазин приложений. В посте поделимся деталями, как мы реализовали магазин под Android для пользователей корпоративных приложений.


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

Пишем чат-бот викторину с помощью Microsoft Bot Framework

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

У нас есть традиция – каждой весной мы участвуем в Днях карьеры любимого Новосибирского госуниверситета, главной кузницы наших кадров. И каждый год мы придумываем для студентов что-нибудь любопытное. В этом году сделали мастер-класс о том, как написать чат-бота. Для регистрации на мастер-класс запустили в Telegram собственного бота «Академик» @academic_quiz_bot. Его же все вместе и собирали на мастер-классе.


image


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


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

Как автоматически создать отчет о релизе

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

Сегодня расскажем, как автоматизировать создание отчетной документации по релизу (release notes) на основе импорта данных из трекинговых систем TFS, Redmine и JIRA и из системы управления проектами Microsoft Project Server.


image


Статья будет интересна в первую очередь менеджерам IT-проектов.


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

Интеграция Android-приложения с фискальным принтером и кардридером

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

Всем привет! Сегодня мы хотим поделиться нашим опытом работы с периферийными устройствами на платформе Android.


Представим себе...


Вы пришли в горнолыжный прокат за лыжами и вам нужно рассчитаться картой и получить договор-оферту об оказании услуги и чек. Казалось бы, что может быть проще?
image


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

Невидимые друзья вашего github-репозитория

Время на прочтение 13 мин
Количество просмотров 17K
image
Github это незаменимый инструмент, прочно вошедший в жизнь практически каждого разработчика.

Хотя многие из нас используют его постоянно, не все знают, что существует большое количество сторонних (и бесплатных) сервисов и инструментов, которые тесно интегрированы с github и расширяют его функциональность.

В данной статье мы уделим внимание, в основном, инструментам, работающим в инфраструктуре npm. Полный список сервисов, интегрирующихся с github, можно посмотреть на странице github integrations directory.

Сегодня в выпуске:




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

Как мы делали экосистему – единый «язык» дизайна для front end десятков связанных систем

Время на прочтение 10 мин
Количество просмотров 9.7K
В этом посте мы расскажем о том, как учились разговаривать с пользователем на «языке» дизайна UI/UX и пришли к необходимости создания единой экосистемы для разных приложений одного заказчика. А также о том, какие технологии в этом помогли.

Что мы подразумеваем под единой экосистемой? Это комплекс разных IT-решений, веб- и мобильных приложений, объединенных единым «языком», на котором они разговаривают с пользователем. Такой язык есть, например, у всех продуктов Microsoft или у всех устройств Apple. Какое бы приложение одного и того же производителя вы не открыли, оно будет повторять логику своих «сородичей», показывать вам знакомые иконки.
Для компаний, создающих цифровые продукты, единая экосистема – ключевое конкурентное преимущество. Для нецифровых компаний, которые переходят «в цифру», создание аналогичных единых экосистем становится необходимостью, поскольку дает много преимуществ. В первую очередь, конечно, обеспечивает пользователям однородный UX и UI во всех системах, облегчает поддержку и обновление систем, повышает конверсию и удовлетворенность клиентов.
Разработка такой экосистемы стала для нас итогом длинного пути, о котором мы и расскажем.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 5

Непридуманные истории об EastBanc Technologies в фотографиях

Время на прочтение 8 мин
Количество просмотров 4.1K
Каждый год мы придумываем новую концепцию для корпоративного календаря. Как и обещали год назад, наш календарь 2017 мы сделали совсем не похожим на предыдущий. Он получился, кажется, самым теплым и очень настоящим. Вся правда об EastBanc Technologies в нашем сегодняшнем посте.



Задумывая календарь, мы хотели рассказать нашим партнерам и друзьям о том, что за нашими техническими решениями стоят живые увлеченные своим делом люди. По замыслу главной темой календаря должен был стать рассказ о реальной жизни нашей команды – о том, как горят глаза наших разработчиков, когда нужно быстро решить интересную задачу. Как мы порой бьемся, покоряя брыкающиеся новые технологии, как мы спорим над решениями, как собираем волю в кулак, когда нужно сдать проект в сжатые сроки. Обо всем этом мы хотели рассказать в нашем календаре. Но как снять все это на фото?
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 0

Пишем простой DSL на Kotlin в 2 шага

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

image


DSL (Domain-specific language) — язык, специализированный для конкретной области применения (Википедия)


На написание этого поста меня натолкнула статья "Почему Kotlin отстой", в которой автор сетует на то, что в Kotlin "нет синтаксиса для описания структур". За некоторое время программирования на Kotlin у меня сложилось впечатление, что в нём если нельзя, но очень хочется, то можно. И я решил попробовать написать свой DSL для описания структуры данных. Вот что из этого получилось.

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