Обновить

Компания БАРС Груп временно не ведёт блог на Хабре

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

Нейрозапятые, или как мы оставили своих редакторов без работы (ну почти)

Время на прочтение9 мин
Охват и читатели11K

Всем привет, меня зовут Владислав Соболев – ML-инженер в компании “БАРС Груп”. Сегодня я хотел бы рассказать о том, зачем и как мы расставляем знаки препинания в текстах, сравним аналоги, и посмотрим на то, как устроена работа инструмента, который мы написали, чтобы обучать такого рода модели (ссылочка в самом конце). Начнем!

У нас в компании есть ряд ML-проектов, внутри которых используется анализ текста, в том числе и надиктованного голосом. Мы командой долго думали над тем, как можно реализовать данные проекты.

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

Читать далее

Парное программирование: цели, преимущества

Время на прочтение5 мин
Охват и читатели3.6K

Для каких целей подходит парное программирование? Понимание преимуществ поможет правильно организовать работу и не сдаться, если будет тяжело, а следование целям позволит улучшить качество ПО и отстроить командный процесс.

Читать далее

“Заапрувьте мой ПР!”: инструменты гита через CQRS и Event Sourcing для пользователей

Время на прочтение15 мин
Охват и читатели3K

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

Современные приложения работают со все большим количеством информации, и, понятно, что чем эффективнее подходы работы с потоками данных, тем эффективнее работа приложения в целом. 

За пять предыдущих лет человечеством было произведено информации больше, чем за всю предшествующую историю (из них половина была произведена в нашем отделе УНП). 

Проблематика

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

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

Читать далее

Парное программирование: стили, организация, тайм-менеджмент

Время на прочтение13 мин
Охват и читатели19K


Многие разработчики слышали о практике парного программирования, но оно все еще имеет разношерстное толкование и применение. Одна из причин неоднозначного признания в том, что преимущества очевидны не сразу, а окупаются в среднесрочной и долгосрочной перспективе. И оказывается не всё так просто, как “работаем вдвоем за одним компьютером”, поэтому некоторые быстро отказываются от этого способа при появлении первых проблем. Тем не менее, по нашему опыту, парное программирование однозначно подходит для командной работы и создания качественного ПО.

P.S. Предлагаемые в статье техники затрагивают моменты удаленной совместной работы, что в текущих условиях вдруг стало особо актуальным.
Читать дальше →

Как мы Data-Office создавали

Время на прочтение4 мин
Охват и читатели4.4K


Привет, я – Ильдар Райманов и я руковожу департаментом в «БАРС Груп», который отвечает за развитие BI-решений в компании. Имея широкий опыт по работе с данными, а также обладая отраслевой экспертизой, мы решили попробовать сформировать центр компетенций, который, позволяя обрабатывать большие массивы данных, сможет обеспечить сервис по формированию знаний на те или иные предметные запросы клиентов.

Data-Office включает в себя сразу несколько составляющих – это проработанное хранилище, включающее как «озеро больших данных», так и подготовленные витрины, процессы наполнения данных из систем источников, механизмы проверки качества данных; команда методологов, которые понимают, о чем говорят те или иные цифры согласно отраслевой специфике, ну и конечно набор различных софтверных инструментов, основным из которых является платформа бизнес-аналитики Alpha BI, разработанная компанией «БАРС Груп».

Чтобы информация воспринималась еще более понятно, постараюсь раскрыть простым языком ключевые термины, акцентировано выделенные в тексте.
Читать дальше →

О важности переработки систем, не адаптированных с точки зрения UX, или как съесть слона

Время на прочтение3 мин
Охват и читатели2.6K


Привет, я Анна Оборина, специалист по UX «БАРС Груп», и сегодня я расскажу вам историю про маленького слона.

Жил-был слон. Отличный такой слон, маленький и аккуратный. Он прекрасно справлялся со своими обязанностями: вовремя гулял, кушал, какал и радовал хозяина. Слон рос-рос и вырос в большого слона. Он все так же гулял, кушал и… даже радовал хозяина. Но что-то изменилось.

«Если вам кажется, что пора что-то менять – вам не кажется»


Изменения происходят всегда и, как правило, очень незаметно. Любая система изменчива, программные же продукты, как система, развиваются стремительно. И вот наступает тот момент, когда уже невозможно закрывать глаза на то, что пора что-то менять.
Читать дальше →

Знакомство с pg_probackup. Третья часть

Время на прочтение7 мин
Охват и читатели18K


Завершающая часть из цикла "Знакомство с pg_probackup" (первая | вторая части).

В предыдущей статье мы решили сразу две задачи: в первой создали архив wal-файлов, перешли к PAGE-архивам, настроили политику удержания wal-файлов; во второй — реплику из бэкапа и настроили pg_probackup на снятие бэкапов с неё.

Сегодня мы с вами продолжим тему восстановления из бэкапов.

Читать дальше →

Логирование запросов к приложению Django

Время на прочтение20 мин
Охват и читатели20K


Привет, меня зовут Дмитрий Чернышов, я ведущий разработчик компании «БАРС Груп». Последние несколько лет среди прочих задач нам в команде приходится сталкиваться с необходимостью анализа производительности приложений на Django с большим количеством пользователей и постоянно меняющимися профилями нагрузки. В данной статье я хочу поделиться наработками, которые появились у нас в процессе работы.

Предыстория/Описание проблемы


В Django достаточно средств для того, чтобы организовать логирование запросов к приложению с целью получения ответов на следующие вопросы:

  • Какие запросы в среднем работают дольше всего с точки зрения пользователей?
  • Каких запросов выполняется больше всего?
  • Какие запросы создают больше всего запросов к СУБД?
  • В каких запросах самые длинные транзакции?
Читать дальше →

Знакомство с pg_probackup. Вторая часть

Время на прочтение8 мин
Охват и читатели25K
image

Продолжаем знакомиться с инструментом pg_probackup.

В первой части мы установили pg_probackup, создали и настроили экземпляр, сняли два бэкапа — полный и инкрементный в режиме DELTA, научились просматривать и изменять конфигурацию экземпляра. Получили список бэкапов, написали скрипт (bkp_base.sh), производящий резервное копирование кластера и отправку результатов последней операции по снятию бэкапа в систему мониторинга. Сегодня будем решать не менее интересные задачи.

Задача 2


Дано: У нас есть два сервера, на первом у нас располагается наша база данных (имя хоста srv_db1, пользователь postgres), а на втором мы будем хранить бэкапы (имя хоста srv_bkp, пользователь backup_user). Но помимо бэкапов на этом же сервере мы будем хранить копии журналов предварительной записи, чтобы иметь возможность восстановления на произвольный момент времени (Point-in-time recovery) в течение последних 3х дней.
Читать дальше →

Кто победит: человек — венец творения или обратный слэш?

Время на прочтение10 мин
Охват и читатели3.6K

 
За основную часть перехода информационных систем с Oracle на PostgreSQL часто отвечают инструменты автоматической конвертации. Но среди гигантского объёма кода, покрываемого такими решениями, есть и исключительные истории, с которыми приходится импровизировать. В таких случаях первым делом, конечно, необходимо локализовать проблему, установить её причину и, чтобы подобрать правильное решение, подумать, нет ли аналогичных реальных или вымышленных ситуаций, которые могли бы иметь похожую природу. После этого обычно приходится рефакторить оригинальный код на Oracle, дорабатывать процессы конвертации и грамматику или реализовывать на PostgreSQL не имеющую аналогов функциональность Oracle. Однажды нам бросил вызов, на первый взгляд, примитивный запрос с ошибкой, для решения которой пришлось проводить целое расследование.

Читать дальше →

Знакомство с pg_probackup. Первая часть

Время на прочтение8 мин
Охват и читатели68K
image

Привет, я Александр Никитин, главный системный администратор компании «БАРС Груп». В этой статье я хочу познакомить вас с инструментом pg_probackup.

Pg_probackup — разработка компании Postgres Professional, которая помогает делать резервные копии СУБД PostgreSQL. В отличие от стандартной утилиты pg_basebackup этот инструмент позволяет создавать инкрементные резервные копии на уровне блоков данных (по умолчанию 8Kb), производить валидацию резервных копий и СУБД, задавать политики хранения и многое другое.

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

Будут рассмотрены следующие варианты использования:

  • создание автономных бэкапов на отдельном сервере
  • создание архива wal-файлов и создание бэкапов в этом режиме
  • развёртывание реплики из бэкапа и настройка создания бэкапов с реплики
  • различные варианты восстановления

Читать дальше →

Некоторые мысли о том, что такое автоматизированная информационная система (АИС)

Время на прочтение6 мин
Охват и читатели72K


Я в ИТ-сфере официально около 15 лет, и большую часть этого времени занимался проектированием систем. Очень часто в работе или при знакомстве с новыми коллегами возникают споры на профессиональные темы, одним из которых является ответ на вопрос – «Что такое система?». Каждый понимает это понятие по-своему, чаще всего опираясь на свой опыт и знания, полученные в ИТ-сфере; другие трактуют определения, взятые из интернета или учебников. И чаще всего эти споры не приводят к единому мнению, так и сейчас я не претендую на 100% принятия моих рассуждений.

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

Экономим время, нервы и человеко-часы

Время на прочтение9 мин
Охват и читатели3.7K
Проекты наши обычно региональные, и заказчики, как правило — министерства. Но, помимо госсектора, нашими системами пользуются и частные организации. С ними проблем практически нет.

Так вот, основные проекты — региональные, а с ними порой бывают проблемы. Например, с производительностью, когда в регионах от 20к наших драгоценных пользователей в период выкатывания нового функционала на продуктовые серверы. Это боль…

Зовут меня Руслан и занимаюсь я сопровождением информационных систем «БАРС Груп» и разработкой бота-убийцы для жестоких серийных DBA. Пост не для слабонервных — много букв и картинок.


Читать дальше →

Оценка тестирования: как высчитать точное время на тестирование системы или «Когда тесты будут готовы?!»

Время на прочтение3 мин
Охват и читатели19K
image

Доброго времени суток всем! Меня зовут Денис, я руководитель службы тестирования в «БАРС Груп». Это мой первый пост на Хабре.

Прочитав очень много интересных статей и почерпнув оттуда много полезной информации, захотелось что-то дать взамен. Тогда я начал анализировать темы: одни были уже озвучены, другие слишком просты («как войти в IT?»). P.S. ничьи чувства задеть не хотелось :)

Как высчитать время на тесты – проблема и решение


Как руководитель службы, я постоянно сталкиваюсь с вопросом от менеджеров: «Когда будет готово?» или «Сколько времени надо на тестирование?». Казалось бы что тут сложного, бери оценку по предыдущему проекту и плюс-минус тоже самое… но нет. Я понял, что задача не тривиальна и требует детальной проработки. И хочу поделиться ее решением.
Читать дальше →

Ближайшие события

На вкус и цвет: градации подходов к Умному дому

Время на прочтение10 мин
Охват и читатели9.3K


Сегодня я буду Капитаном Очевидность и расскажу банальные вещи применительно к теме домашней автоматизации, он же “Умный дом”. Для чего? Чтобы показать новичкам, как глубока кроличья нора, скрывающаяся под этим названием, и облегчить (или усложнить) муки выбора в том или ином случае. Это не прямая протоптанная дорога, а ветвящаяся тропа, когда приходится выбирать, как поступить и куда пойти.


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

Читать дальше →

Trio – асинхронное программирование для людей

Время на прочтение7 мин
Охват и читатели12K
image

В Python существует библиотека Trio – библиотека асинхронного программирования.
Знакомство с Trio в основном будет интересно тем, кто работает на Asyncio, потому что это хорошая альтернатива, позволяющая решать часть проблем, с которыми не может справиться Asyncio. В этом обзоре рассмотрим, что из себя представляет Trio и какие фичи она нам дает.
Читать дальше →

BarsUP.AM: как мы разрабатывали средство защиты информации web-приложений

Время на прочтение8 мин
Охват и читатели4.4K
image

BarsUp.Access Manager (BarsUp.AM) — наш программный комплекс по защите конфиденциальной информации. При проектировании и разработке этой системы в соответствии с требованиями нормативных документов ФСТЭК России мы столкнулись со сложностями по управлению доступом к web-приложениям с использованием сертифицированных средств защиты информации.

Приказ ФСТЭК России № 17 говорит, что должен осуществляться выбор средств защиты информации, сертифицированных на соответствие требованиям по безопасности информации, с учетом их стоимости, совместимости с информационными технологиями и техническими средствами. Мы посмотрели, что было на тот момент на рынке и поняли: стоимость решений, совместимых с нашими информационными системами, зачастую превышала стоимость самих систем, либо они были несовместимы.
Читать дальше →

Советы айтишника заказчику, или как нельзя автоматизировать бардак

Время на прочтение12 мин
Охват и читатели13K
Всем привет, я работаю в ИТ-бизнесе (в той части, которая занимается созданием ИТ-систем) более 20 лет. Захотелось обобщить опыт в нескольких советах заказчику, как сделать автоматизацию деятельности организации эффективным и успешным проектом.

О целях и границах проекта




Начнем с определения целей, которых вы хотите достичь путем реализации ИТ-проекта. В конечном счете, ИТ – не более чем технологии со своими возможностями. Но создание информационной системы не может быть самоцелью. Цель должна быть сформулирована в терминах вашего бизнеса.
Читать дальше →

Эволюция HighLoad приложения на примере регионального портала госуслуг

Время на прочтение7 мин
Охват и читатели5.9K
image

«Завтра 20-е число, а значит снова будет шторм. Остановить его невозможно, только подготовиться и надеяться, что в этот раз пронесет, случится чудо, и наш озерный паром покорит океан». Такие мысли одолевали команду, занимающуюся поддержкой портала муниципальных услуг еще несколько лет назад. Как мы попали в эту ситуацию и как мы из нее нашли выход будет рассказано ниже.
Читать дальше →

Мой путь к секционированию в PostgreSQL

Время на прочтение4 мин
Охват и читатели16K


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

Привет, Хабр! Меня зовут Алмаз и сейчас я хочу поделиться методом, который помог мне реализовать секционирование.
Читать дальше →