Новогоднее обращение GPT-2

Уважаемые граждане России! Дорогие друзья!

Родившись в России, мы с детства воспитывались в идеологических рамках демократической системы. Мы не прошли многие страны Европы, они также сформировали систему. Мы были дети элиты, а в России, как и везде, царило разложение всего и вся. Но это нам удалось выдержать.

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

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

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

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

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

Создание новых людей в нашей стране – важнейшее условие благополучия. Так что я не просто так, а за давностью лет, всех вас знаю, и всю Вашу родословную знаю, про все помню. А если потребуется – без особого труда справлюсь и с тем и с другим. Спасибо вам, дорогие друзья, с большой буквы. Давайте в этот год для всего Отечества будем беречь наших детей, наших жен и мужей! Давайте вместе за это поднимем и сами начнем готовиться к трудным и очень трудным годам, делая самые важные свои шаги.

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

Россия сегодня стоит на пороге новой эпохи. В любом народе и стране людям России предстоит немало совершить великих свершений, но и для России не все по плечу на всем пути к достижению высоких достижений. И мы не можем позволить себе терять каждый год жизни и жизненное время нашей великой державы. И всё же каждый год мы будем беречься и защищать Родину и её воинов. Пусть всё складывается хорошо! Давайте больше об этом позаботимся. И почаще вспоминайте нашу Родину!

Поздравляю вас с праздником! С Новым, 2021 годом!

Редактировался ли текст?

Текст генерировался абзацами начиная с нескольких фраз типа «Уважаемые граждане России! Дорогие друзья!» и «В новом/уходящем году», а эти абзацы уже были вручную склеены в «обращение»

Credits

От идеи до реализации прошло примерно полтора часа и во многом благодаря https://github.com/mgrankin/ru_transformers — это легко тюнящиеся gpt-2 модели, обученные на русских текстах

А отсюда https://kremlin.ru/events/president/transcripts я выкачал обращения президентов (да, Медведев там тоже был) за последние 20 лет. Вообще по ссылке можно найти очень много кремлёвских текстовых данных и обучить что-нибудь поинтереснее)

Ну и упомяну свой проект «нейроссия» https://vk.com/neurussia в контексте которого эта идея и возникла, а также картинка из которого использована в обложке статьи

ссылка на оригинал статьи https://habr.com/ru/post/535804/

Пишем игру Гонки на бумаге, C# WPF

Предистория

Дело было в начале 90-х, компьютера не было, но было желание поиграть в гонки ) Показал мне друг как можно на тетрадном листе бумаги в клеточку играть в гонки. А еще говорят, что есть настольная игра с такими правилами. И что чуть ли не все играли в эту игру в университете за парами.

Правила игры

Можно прочитать правила в Википедии, прочитав это и ничего не зная, я бы не понял ). Главное правило игры — правила перемещения машинки. Правило 2 — не можешь сделать ход попав в дорогу — ты проиграл.

Ход 1: машинка стоит на месте и может ехать в точки, которые расположены вокруг той точки в которую направлен вектор движения машинки. В начале игры вектор нулевой, никуда не направлен, значит мы можем пойти в точки вокруг машинки. Делаем ход в точку над машинкой.

Ход 2: Машинка передвигается на одну клетку вертикально и ноль клеток горизонтально. Это и есть текущая скорость машинки (1 по вертикали и 0 по горизонтали). Вектор скорости направлен на клетку сверху от машинки. Вокруг этой точки машинка может выбрать точки для выполнения хода. Сделаем ход в левую-верхнюю точку.

Ход 3: Машинка передвигается на две клетки вертикально и одну горизонтально. Вектор движения машинки соответственно изменяется.

Ход 4: Машинка передвигается на 3 клетки вертикально.

Теперь машинка движется со скоростью 3 клетки вверх и 0 клеток влево/вправо. Машинка имеет скорость и не может за один ход полностью остановиться или сделать резкий поворот в сторону. В данном случае машинка может:

  1. Ускориться если выбрать верхние (дальние от машинки) узлы. Если ход в верхнюю-левую точку, то скорость будет 4 вверх и 1 влево. Если ход в верхнюю-правую точку, то скорость будет 4 вверх и 1 вправо.

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

  3. Понизить скорость выбрав нижний (ближайший к машинке) ряд. Стоит выбирать при приближению к резкому повороту.

План разработки

  1. Генератор случайной трассы. Трасса должна уметь поворачивать в любом направлении на любое число градусов. Элементы трассы должны быть произвольной длины и ширины.

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

  3. На игровой карте нужно различать следующие типы полей:
    3.1 поле, куда машинка может сделать безопасный ход
    3.2 поле, куда машинка может сделать ход, но это будет выход за трассу
    3.3 поле, принадлежащее дороге
    3.4 поле, не принадлежащее дороге
    3.5 текущее поле с машинкой

  4. Показывать отрезки пройденного пути на игровой карте

  5. Возможность начать новую игру сначала

  6. Отображение текущей скорости

  7. Возможность изменения настроек программы через файл конфигурации. Список необходимых значений в файле конфигурации:
    7.1 Ширина фрагмента дороги
    7.2 Количество фрагментов дороги для генерации новой трассы
    7.3 Максимальный угол поворота дороги влево
    7.4 Максимальный угол поворота дороги направо
    7.5 Минимальная длина участка дороги
    7.6 Максимальная длина участка дороги
    7.7 Положение машинки на игровой карте

  8. Сделать генерацию пейзажа вокруг дороги для приятного юзабилити

  9. Показывать дорожные знаки предупреждающие об опасном повороте

Подготовка

Для разработки программы выбран язык программирования C#. Целевая рабочая среда .NET 5.0. Графическая среда WPF. Среда разработки Visual Studio 2019.

Генератор случайной трассы

Самы простой способ нарисовать трассу — воспользоваться фигурой Polyline. Но, встал вопрос, как рассчитывать нахождение принадлежности точки этой фигуре и от этого варианта пришлось отказаться. Самый надежный вариант — это представить трассу как массив прямоугольников. Для скругления поворотов трассы нужно дополнительно строить окружности в местах пересечения элементов трассы. Диаметр окружности — это ширина элемента дороги.

Для каждого сгенерированного элемента трассы нужно хранить:

  1. Точку начала (X и Y)

  2. Точку конца (X и Y)

  3. Ширину элемента трассы (в данной реализации ширина трассы одинаковая для всех элементов, задел на будущее)

  4. Длину элемента трассы

  5. Угол наклона элемента трассы к оси oX

Положение пользователя на игровой карте

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

/// <summary> /// Текущий сдвиг карты по осям /// </summary> int _deltaX, _deltaY = 0;

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

Каждый выполненный ход сохраняем в списке _pathList — список отрезков пройденного пути.

/// <summary> /// Список отрезков пройденного пути /// </summary> List<PathElement> _pathList = new List<PathElement>();

Отрезок пройденного пути должен хранить следующие данные:

  1. Точка начала отрезка (X и Y)

  2. Точка конца отрезка (X и Y)

  3. Смещение машинки относительно карты в момент выполнения хода

Зная точку начала и конца отрезка можно вычислить угол наклона отрезка к оси oX.
AC — изменение координаты X от начала до конца отрезка
BC — изменение координаты Y от начала до конца отрезка

\tan{(\angle ABC)} = \frac{AC}{BC}\angle ABC = \arctan{(\frac{AC}{BC})} * \frac{180}{\pi}

/// <summary> /// Текущий угол наклона пути /// </summary> public double Angle {      get      {           if (ToY == FromY && ToX > FromX) return 90;           if (ToY == FromY && ToX < FromX) return -90;           if (ToX == FromX && ToY > FromY) return 180;           if (ToX == FromX && ToY < FromY) return 0;            if (ToY <= FromY && ToX >= FromX) return -Math.Atan((ToX - FromX) / (ToY - FromY)) * 180 / Math.PI;           if (ToY <= FromY && ToX <= FromX) return - Math.Atan((ToX - FromX) / (ToY - FromY)) * 180 / Math.PI;            if (ToY >= FromY && ToX <= FromX) return Math.Atan((ToY - FromY) / (ToX - FromX)) * 180 / Math.PI - 90;           if (ToY >= FromY && ToX >= FromX) return Math.Atan((ToY - FromY) / (ToX - FromX)) * 180 / Math.PI + 90;            return 0;      } }

Типы полей игровой карты

Для выполнения хода на игровой карте расположены узлы — кнопки (Button) на расстоянии 20 пикселей друг от друга, 39 рядов по 39 кнопок. Таким образом достигается функционал выполнения нового хода.

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

  1. поле, куда машинка может сделать безопасный ход

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

  3. поле, принадлежащее дороге

  4. поле, не принадлежащее дороге

  5. текущее поле с машинкой

При проверке нужно найти поля в которые машинка может сделать ход. Для этого учитывается текущая скорость по оси X и по оси Y.

Проверка нахождения точки дороге:
Дорога представляет собой массив прямоугольников (элементы дороги) и кругов (стыки элементов дорог).
Проверка принадлежности точки кругу рассчитывается по формуле:

(X \text{-} X_0)^2 = (Y \text{-} Y_0)^2 <= R^2

Проверка принадлежности точки прямоугольнику немного сложнее:
Из точки C (это точка, которую проверяем на принадлежность прямоугольнику) опустим перпендикуляр на отрезок AB (точки A и B — точки начала и конца элемента дороги соответственно). Данный перпендикуляр — это высота треугольника. Поиск факта принадлежности точки прямоугольнику сводится к проверке:

h <= \frac{\text{Ширина дороги}}{2}

Существует 3 различные ситуации где может находиться точка по отношению к прямоугольнику:

  1. h > (ширина элемента дороги / 2) — точка не принадлежит прямоугольнику

  2. h <= (ширина элемента дороги / 2) — точка принадлежит прямоугольнику если ABC < 90° и CAB < 90°

  3. высота h опускается не на отрезок AB, а на его продолжение. Хотя и длина высоты удовлетворяет нашей формуле, но если ABC > 90° или CAB > 90°, то точка не принадлежит прямоугольнику.

Формула нахождения площади треугольника зная координаты его вершин:

S(ABC) = \frac{|(X_A \text{-} X_C)*(Y_B \text{-} Y_C) \text{-} (X_B \text{-} X_C)*(Y_A \text{-} Y_C)|}{2}

С другой стороны, формула нахождения площади треугольника зная его высоту:

S(ABC) = \frac{h * AB}{2}

Данных двух формул достаточно для расчета высоты треугольника (а еще Вы могли не заморачиваться с площадью и рассчитать проще используя:

\sin( \angle ABC) = \frac{h}{BC}

но я это понял на момент написания статьи)

Формула нахождения длины отрезка по его координатам:

AB = \sqrt{(X_A \text{-} X_B)^2 + (Y_A \text{-} Y_B)^2}AC = \sqrt{(X_A \text{-} X_C)^2 + (Y_A \text{-} Y_C)^2}BC = \sqrt{(X_B \text{-} X_C)^2 + (Y_B \text{-} Y_C)^2}

Формула нахождения углов треугольника зная длины сторон треугольника:

\angle ABC = \arccos{(\frac{AB^2 + BC^2 - AC^2}{2*AB*BC})} * \frac{180}{\pi}\angle CAB = \arccos{(\frac{AB^2 + AC^2 - BC^2}{2*AB*AC})} * \frac{180}{\pi}

Отрезки пройденного пути

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

  1. Точка начала отрезка (X и Y)

  2. Точка конца отрезка (X и Y)

  3. Смещение машинки относительно карты в момент выполнения хода

  4. Угол наклона к оси oX рассчитывается автоматически

Для перерисовки пройденного пути нужно удалить нарисованные элементы пути ранее, перебрать сохраненные элементы пути и нарисовать их с помощью фигуры «Line» каждый не забывая использовать смещение данного элемента.

Возможность начать новую игру сначала

Для реализации данной фичи сделаем в главном меню программы элемент типа MenuItem, реализуем событие мыши Click, пропишем очиску всех элементов игровой карты, очистку сохраненных элементов списков пройденного пути, элементов дороги, обнуление переменных сдвига карты и текущей скорости машинки.

Отображение текущей скорости

Физика прототипа игры такова, что мы имеем две скорости: скорость по оси oX, скорость по оси oY.

Под текущей скоростью машинки подразумеваем большее значение между двух скоростей по осям.

Возможность изменения настроек программы через файл конфигурации

Чтобы изменять переменные в игре имеет смысл вынести значения данных переменных в конфигурационный файл:

  1. Ширина фрагмента дороги

  2. Количество фрагментов дороги для генерации новой трассы

  3. Максимальный угол поворота дороги влево

  4. Максимальный угол поворота дороги направо

  5. Минимальная длина участка дороги

  6. Максимальная длина участка дороги

  7. Положение машинки на игровой карте

{   "RoadWidth": "100",   "RoadElementsCount": "20",   "MinAngle": "-60",   "MaxAngle": "60",   "MinRoadLength": "100",   "MaxRoadLength": "200",   "UserPosition": {     "X": "400",     "Y": "400"   } }

В зависимости от данных настроек игровое поле выглядит по-разному:

Генерация пейзажа, улучшение GUI

Для более приятного впечатления к игре нужно добавить как можно большее количество различных элементов (в рамках разумности конечно):

  1. Заполнить игровое поле «Землей» — изображение, заполняющее все поле

  2. В момент выполнения хода мы каждый раз проверяем тип каждого узла игровой карты. В данный метод кода можно добавить генерацию «Елок» в случае если поле данного узла не принадлежит дороге. Чтобы елок не было слишком много, ограничим шанс появления елки в 20%.

    var random = new Random(); var elkaChance = random.Next(1, 101); if (elkaChance < 20) { 		// рисуем елку }

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

var polyLinePointCollection = new PointCollection(); foreach (var roadElement in _roadElements) {     if (polyLinePointCollection.Count == 0) polyLinePointCollection.Add(new Point(roadElement.StartPoint.X + 5 + _deltaX, roadElement.StartPoint.Y + _deltaY));     polyLinePointCollection.Add(new Point(roadElement.EndPoint.X + 5 + _deltaX, roadElement.EndPoint.Y + _deltaY)); }  var polyLine = new Polyline() {     Points = polyLinePointCollection,     Stroke = Brushes.White,     StrokeDashArray = new DoubleCollection() { 6, 4 },     StrokeThickness = 2 };

Дорожные знаки опасного поворота

Зная всю информацию об сгенерированных элементах дороги можно сравнивать каждый элемент дороги с предыдущим элементом и высчитать разницу углов поворота фигур. Если полученное значение > 70°, то покажем знак опасности в точке начала элемента дороги.

Angle_\text{curr} \text{-} Angle_\text{prev} > 70°

Бывают случаи когда один угол +178°, а второй -178°. Реальная разница между данными углами всего 4°. Для решения данной задачи нужно добавить условие, что угол будет опасным при разнице углов меньше 290°. Формула изменится к данному виду:

70° \leq Angle_\text{curr} \text{-} Angle_\text{prev} \leq 290°

Код программы

В моем GitHub

ссылка на оригинал статьи https://habr.com/ru/post/535422/

Как с помощью UiPath внедрить process mining в компании

Вызовы цифровой трансформации

image

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

  1. Обнаружить проблему
  2. Внедрить изменения
  3. Отслеживать решение
  4. Реагировать на отклонения

На данный момент популярным решением для внедрения изменений является инструмент RPA, который позволяет автоматизировать рутинные действия пользователей. Что касается трех остальных пунктов – для этого понадобится process mining или интеллектуальный анализ бизнес-процессов.

Интеллектуальный анализ бизнес-процессов (Process Mining) фокусируется на обнаружении, анализе и оптимизации бизнес-процессов на основе данных из журналов событий (англ. event logs), представляя недостающее звено между классическим анализом бизнес-процессов с использованием их моделей и интеллектуальным анализом данных.

Инструмент process mining позволяет захватить реальные данные из популярных ERP-, CRM-систем и баз данных сквозных бизнес-процессов в закупках, финансах, управлении претензиями, контакт-центрах и т.д. (SAP, Oracle, Salesforce, ServiceNow), визуализировать их для обнаружения узких мест, неэффективности использования ресурсов и исключений; и, наконец, мониторить изменения в процессе после его оптимизации, в том числе с помощью автоматизации.

Вы можете сказать: «Процессы в моей компании хорошо описаны и сотрудники четко исполняют инструкции». И в идеале это должно быть так, но на практике мы можем наблюдать противоположную картину. Приведу простой пример, он, кстати, хорошо описан в статье на Хабре «Уличная грязь и симуляция движения пешеходов»: в вашем дворе наверняка есть дорожки из плитки или асфальта, которые спроектировал местный орган управления и удобные, протоптанные вашими соседями тропинки, которые позволяют добраться до нужного места по кратчайшему пути.

image
Фото с ресурса: https://habr.com/ru/post/257563/

Похожая ситуация происходит в бизнес-процессах компании. Людям свойственно идти не по заданному алгоритму, если они чувствуют его неэффективность и “протаптывать” изменения в виде дополнительных систем, ненужных действий и запросов.
Заканчивая свою аналогию отмечу, что process mining позволяет централизованно обнаруживать эти самые “тропинки” в бизнес-процессах и принимать решения об их изменении или автоматизации на основе фактов, а не интуиции.

Кейсы process mining и автоматизации

Аудит и улучшение существующих метрик

Крупная пенсионная, страховая и управляющая компания в Нидерландах нуждалась в более глубоком понимании автоматизации своих контакт-центров, чтобы понять ее влияние на свои бизнес-процессы. Компания развернула UiPath Process Mining, провела сквозную аналитику контакт-центра и выявила проблемы, которые приводили к дополнительной работе и длительному времени ожидания клиентов на линии.

На основе инсайтов UiPath Process Mining компания скорректировала автоматизацию контакт-центра. Это повысило качество и скорость связи с клиентами, а также позволило сильно сократить время ожидания клиентом оператора. В целом оказалось, что 80% всех работ можно было стандартизировать, и за счет этого снизить затраты контакт-центров на 568 тыс. евро.

Поддержка оперативных решений

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

После внедрения UiPath Process Mining производителю удалось достичь полной прозрачности закупок: получить новое понимание главных причин задержек, неэффективности и потенциальных аудиторских рисков. Он нашел новые способы улучшения результатов закупок на нескольких заводах и определил истинные затраты, которые повлекли определенные управленческие решения. Это побудило топ-менеджмент задуматься и оценить возможные эффекты от реорганизации и оптимизации производства.

Data mining и глубокое понимание процессов

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

Крупной телеком-компании из Нидерландов требовалось повысить прозрачность своих корпоративных закупок. Имея 6,3 миллиона абонентов фиксированной телефонной связи, более 33 миллионов абонентов мобильной связи и более 2 миллионов интернет-клиентов в пяти странах, они хотели найти решение для контроля рисков и определения путей снижения затрат.

Оператор развернул UiPath Process Mining для получения информации
и устранения интуитивной оценки процессов, а также ручной передачи данных. Он использовал UiPath Process Mining для оценки более чем 200 000 различных позиций, в том числе заказов на покупку и счета-фактуры.

В результате удалось сократить на 20% трудовые затраты, на 29% уменьшить время на обработку счетов-фактур, а также повысить предсказуемость затрат и улучшить отношения с поставщиками.

Опыт заказчиков

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

Екатерина Сабельникова, консультант по инновациям Philips рассказывает в своем блоге на LinkedIn о главных уроках, извлеченных при использовании process mining в компании.

Сфокусироваться на главном

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

Определить заинтересованных лиц

Тратить дополнительные усилия на улучшение узких мест в процессах в реальности готовы только такие сотрудники, которые по-настоящему заинтересованы в решении и захотят докопаться до сути проблемы. Это будут те люди, на работе которых напрямую сказывается неоптимальная реализация конкретного процесса.

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

Обеспечить поддержку и одобрение высшего руководства

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

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

Наконец, руководство может позиционировать process mining как инструмент, помогающий достигать целевых показателей KPI. Стимулировать вовлечение в изменения всех уровней организации и использование интеллектуального анализа процессов в качестве ежедневного инструмента управления.

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

Как и у любой системы, у process mining существует ряд ограничений:

  • Адекватность отображения хода реального бизнес-процесса данными логов информационной системы;
  • Необходимость интерпретации результатов анализа.

С этими ограничениями мы столкнемся на практике, когда далее на примере UiPath Process Mining будем разбирать весь процесс внедрения аналитики бизнес процессов в организацию.

image
UiPath process mining помогает принимать основанные на фактах рекомендации для улучшения критических процессов

Гайд по развертыванию UiPath Process Mining

Формируем журнал событий

Для создания журнала событий необходимо определить источники данных для него, как правило их бывает не более 2-3. Даже если у компании есть SAP в UiPath и свой ETL, в реальном мире этим не даст воспользоваться принятая в компании стратегия интеграции и наличие КХД/КШД/DataLake или иных решений, которые управляют потоками данных.

Исходные данные получаем из хранилища данных или реплик БД и принятыми в компании средствами ETL, затем собираем/упрощаем их и помещаем в staging area для UiPath. UIPath может брать данные из любой реляционной БД, у которой есть ODBC драйвер. Затем уже из staging таблиц мы собираем журнал событий, с которым будут работать сами алгоритмы UiPath.

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

Проводим сборку журнала событий

Технически сборка журнала событий – это просто select/insert из кучи таблиц в одну или две (две, когда есть атрибуты, которые не меняются от шага к шагу процесса). Неочевидная часть, связанная с проектированием структуры такого журнала: как преобразовывать смену статусов объекта или факт изменения значения какого-то атрибута в конкретный шаг. Это задача бизнес-аналитика, тут нет универсальной методики, есть шаблон вендора и ноу-хау у интегратора.

Важно понимать, что некорректно выбранный состав шагов и уровень детализации процесса не даст решить задачи анализа или поддержки решений. И еще — 100% цифровизации процесса нет нигде. Значит часть шагов, которые в процессе есть, вы не отразите в журнале. Если помнить, что вы решаете задачи увеличения показателей, а не получения красивой картинки – это не страшно. А если не помнить, то можно решить, что process mining бесполезное внедрение.

После того как вы проработали структуру журнала необходимо произвести конфигурирование самого process mining UiPath, где надо соотнести таблицы и их поля с атрибутами события и цепочки событий.

Конфигурируем Process Mining UiPath

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

Важно отметить что у UiPath есть очень полезная функция анонимизации. Которая, например, контрагента “Лучшая компания" во всех местах меняет на “Контрагент 1”. Это можно, конечно, сделать и руками создав временную таблицу справочник или написав очень хитрый запрос, но времени такая фича экономит много. Вообще деперсонализация результатов очень важная вещь, если вы анализируете процессы, отвечающие за финансовые потоки. Может оказаться, что бизнес-аналитику нельзя видеть коммерческую тайну, но для анализа она важна. Вот тут и помогает анонимизация.

После того как все данные оказались на своем на месте, нужно решить техническую задачу — написать формулы расчета KPI.

Проводим аналитику отчетов

Анализировать отчеты технически легко, а вот интерпретировать их результаты совсем не просто — это сфера ответственности аналитика. Методика drag-and-drop UiPath значительно упрощает его работу: вытащил виджет, настроил и смотришь данные. Что именно и как анализировать — зависит от целей анализа. С технической точки зрения важно, что визуализацию для аналитика готовит дизайнер отчетов, а дальше уже начинается его работа.

Создаем дашборды

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

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

Настраиваем оперативный контроль

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

Результат работы функции можно использовать в дашбордах чтобы метить подозрительные случаи или отсылать в UiPath Action Center, чтобы там записать процедуру по ее устранению. Кстати, так же работает и интеграция с ML — можно вызывать программы на R или Python, передавая им на вход данные и записывая результаты работы.

Как видите, работа тут всегда итерационная. Это плохо при планировании и оценке объема работ, потому что нельзя точно оценить потребуется ли еще одна итерация или нет. Но это не свойство UiPath это свойство всех подобного рода продуктов. Это хорошо тем, что появляется возможность делать то, что реально надо и чем будут пользоваться, а не то что зафиксировали в требованиях до начала работ.

Здесь есть техническая проблема — как организовать верстанный контроль. Тут у UiPath с самого начала все правильно: конфигурация настроек и дашбордов живет в git. Можно в локальном, можно в корпоративном, можно хоть на gituhub. В других решениях где-то версионности вообще нет (например, конфигурация модели данных), а где-то она достигается старым добрым способом “допиши дату или номер версии в название файла”. Технически очень много головной боли при наличии верстанного контроля уходит и длительность спринта сокращается.

Продуктовые решения UiPath позволяют проводить внедрение process mining в компании комфортно и легко. Критерием успеха проекта будет методология которая позволит пройти путь от определения целей и границ анализа до выявления причин негативных тенденций в характеристиках процесса и создания инструмента поддержки принятия оперативных решений.

Инструментами платформы UiPath может пользоваться любой конечный пользователь с базовыми скиллами разработчика. Второй критерий успеха process mining проектов — сильная экспертиза процессных аналитиков. Максимальный эффект от оптимизации процессов получают не от формирования рекомендаций, а от системного следования им, а инструменты UiPath же помогут здесь с технической реализацией process mining в компании.

Корпорация Everest Group ежегодно оценивает вендоров технологий process mining на основе их влияния на рынок, видения и возможностей их продуктов. В последнем исследовании 2020 года UiPath признали лидером в сфере process mining среди других крупнейших вендоров.

image

Выводы

Необходимость и важность цифровой трансформации сегодня осознали многие компании, но как правильно ее реализовывать, а не просто тратить бюджеты впустую, понимают далеко не все. Основу для цифровой трансформации организации составляет сочетание решений по роботизации и автоматизации (RPA) с инструментами по глубокой аналитике бизнес-процессов (process mining). Последние позволяют объективно оценить как реально происходят процессы в компании, выявить узкие места и определить точки для будущей трансформации.

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

ссылка на оригинал статьи https://habr.com/ru/post/535806/

Инциденты информационной безопасности, за которые CISO расстались с должностью

Источник статьи

Согласно отчету Radware о состоянии безопасности веб-приложений за 2018 год , 23% компаний сообщили о увольнении руководителей по информационной безопасности (CISO), связанных с атаками приложений. Американские компании чаще говорили, что руководители были уволены после инцидента, равно как и Европейские компании, работающие в сфере высоких технологий или финансовых услуг.

1. Capital One

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

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

В ноябре Wall Street Journal сообщил, что Capital One заменил Майкла Джонсона, (CISO) директора по информационной безопасности компании работавшего в компании с 2017 года, на ИТ-директора компании Майка Исона. Джонсон продолжает работать в Capital One в качестве внештатного советника, направленного на оказание помощи банку в реагировании на инциденты и утечку данных.

2. Equifax

В 2017 году американское бюро кредитной истории Equifax был скомпрометирован через «непропатченный» веб-портал для жалоб потребителей. В результате было украдено около 143 миллионов записей клиентов, включая имена, адреса, даты рождения, номера социального страхования и номера водительских прав.

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

Комитет по надзору и правительственной реформе Палаты представителей США назвал инцидент «полностью предсказуемым», а комитет Сената США по расследованиям обвинил компанию в «пренебрежении кибербезопасностью».

Исправление инцидента тоже получило широкую огласку из за некомпетентных действий отдела информационной безопаснсоти. Команда ИБ компании в социальных сетях разослала неправильный URL-адрес с отчетом обработонного инцидента, в то время как сам сайт на котором был предоставлен отчет был практически не защищен, что привлекло «последователей» взлома. Ситуация усугубилась тем, что Цзюнь Ин, ИТ-директор Equifax US Information Solutions, за вознаграждение поделился Инсайдерской информацией со СМИ, до того как компания официально заявила об утечке данных. Как итог Цзюнь Ин был заключен в тюрьму на четыре месяца и оштрафован на $ 55 000.

Стоимость инцидента оценивается в 1,35 миллиарда долларов. Компания заплатила 575 миллионов долларов в пользу Федеральной торговой комиссией и других организации. 

И CSO(руководитель отдела безопасности) Сьюзан Маульдин, и CIO(Директор по информационным технологиям) Дэвид Вэбб покинули компанию через несколько недель после взлома. Генеральный директор Equifax Ричард Смит также ушел на пенсию после нарушения. Маулдин сменил временно исполняющий обязанности директора по информационной безопасности Расс Эйрес (ранее занимавший должность вице-президента Equifax по информационным технологиям) до того, как Джамиль Фарши занял эту должность на постоянной основе, до этого он работал в Home Depot, Time Warner и Лос-Аламосской национальной лаборатории.

3. UBER

В конце 2017 года компания Uber интегратор пассажирских перевозок обнародовала информацию об утечке данных 57 миллионах пассажиров и водителей, включая имена, адреса электронной почты, номера телефонов и номера водительских прав. По сообщениям компании, злоумышленники получили доступ к частному репозиторию кода Uber на GitHub, в котором, как признала компания, не была включена многофакторная аутентификация, и использовали хранящиеся там учетные данные для доступа к экземплярам AWS S3 компании.

Как оказалось позднее, информацию об инциденте компания скрывала порядка 12 месяцев, и CSO компании Джо Салливан, как сообщается, участвовал в сокрытии информации об инциденте. Расследование показало что Компания вела переговоры с хакерами взломавшими репозиторий и как итог осуществили передачу злоумышленникам более 100000 долларов . Передача денег была замаскирована под выплату вознаграждения за найденную ошибку (bug bounty) на самом деле за удаление данных без их разглашения. Новость об утечке была обнародована только после того, как в компанию пришел новый генеральный директор Дара Хосровшахи.

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

CSO Джо Салливан, который до этого пять лет работал в Facebook, был уволен из Uber после двух с половиной лет работы в компании. С тех пор он присоединился к Cloudflare в качестве CSO компании.

4. Facebook

Не все CISO уходят из-за конкретных инцидентов. Алекс Стамос, руководитель службы безопасности Facebook с 2015 года, ушел после трех лет работы в компании, отвечающей за безопасность, и занял должность в Стэнфордском университете после того, как, как сообщается, «не согласился» с тем, как компания решила скандал с Cambridge Analytica. Алекс Стамос, очевидно, предпочел более открытый и прямой ответ в раскрытии того, что знала компания, а не медленное и неохотное признание. Позже он сказал MSNBC, что было «большой ошибкой» то, что компания не стала более откровенно говорить о серьезности инцидента.

«Никто не лгал и никто ничего не скрывал, — сказал он, — но я чувствую, что первоначальный способ, которым эти вещи были сообщены, действительно установил планку того, будет ли компания рассматриваться как часть решения или как часть проблемы. Facebook не воспользовался этой возможностью, чтобы сказать: «Мы — часть решения» ».

С тех пор Стамос заявил, что генеральный директор Facebook Марк Цукерберг имеет слишком большую власть в компании и должен оставаться в стороне. Ранее Алекс Стамос ушел из Yahoo! после того, как компания создала инструмент для сотрудников разведки США, который мог сканировать учетные записи электронной почты пользователей Yahoo Mail.

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

Источник

ссылка на оригинал статьи https://habr.com/ru/post/535810/

Статистика по логированию жизни и годовой отчет

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


Иллюстрация Рины Зенюк

Логи и GTD

Стоит отметить, что мое увлечение логированием времени — вещь стихийная. Я не погружался в историю тайм-менеджмента и, когда знакомая посоветовала прочесть «Эту странную жизнь» Даниила Гранина, с удивлением обнаружил там историю человека, начавшего логировать свое время еще в 1916 году. Александр Александрович Любищев, советский биолог и энтомолог, вел учет своего времени 56 лет, с 26 и до самой смерти. У него не было под рукой смартфона с трекером, поэтому он главным образом учитывал и планировал свое самое важное время — рабочее. Даже если вы не собираетесь логировать свое время, я бы советовал вам прочитать либо «Эту странную жизнь» Гранина, либо, без лишнего беллетризма, посмертно опубликованный в «Химии и жизни» за декабрь 1976 года фрагмент рукописи Любищева под названием «Такая добровольная каторга». И важно отметить, что Любищев делал то, чего я не делаю — он планировал работы на будущее. Я же пока только замеряю интереса ради и исхожу из общих идей «хорошо было бы».

Результаты измерений и самонаблюдений оказалось можно поделить на две группы — очевидные и не очень. К очевидным можно отнести исчезновение графы «Дорога» — когда рабочее место в соседней комнате, а не в часе езды, логировать перемещение туда нет смысла. Вслед отправились «Социальные активности» — посиделки стали в лучшем случае виртуальными. Ожидаемо выросла графа «Работа» — в офисе трудишься более концентрированно, но этого роста почти не заметно. Из-за этого же эффекта выросла графа «Сон» — когда можно лечь вздремнуть днем или проигнорировать будильник, и это никак не повлияет на рабочий процесс, вес ценностей в сознании меняется, и похвастаться шестичасовым сном в будни больше не получится. Также предсказуемо увеличились затраты времени на «Хозяйственные дела» — раньше в магазин заскакиваешь по пути с работы, а сейчас это отдельный поход, который к тому же часто хочется растянуть. Появление новой графы «Прогулки» также сложно назвать неожиданным — после нескольких месяцев дома нормально желание вырваться наружу, и, если раньше прогулки относились к «Безделью», то сейчас их оказалось разумно выделить в отдельную, не порицаемую категорию.


Категория Безделье — Безделье

Главной неожиданностью оказалось осознание потребности в чтении. В докарантинном режиме я читал в общественном транспорте (трекалась «Дорога») и параллельно обеду на работе (трекалась «Еда»). А в мире самоизоляции эти активности исчезли. И, поскольку чтение у меня учитывалось как «Безделье», и в идеале я бы хотел извести вредные виды расхода времени, то оказалось, что я практически перестал читать. И, знаете ли, это очень неприятное, холодное, отупляющее ощущение. Так что пришлось разрешить себе развлекательное чтение. Но, поскольку его сложно назвать полезным, оно остается в категории «Безделье», что объясняет рост этой категории осенью и, одновременно, не выглядит как абсолютно точное решение. Из хорошего — под конец года пропала категория «Сборы на работу», трата времени впустую за завтраком и туплением в телефон.


Категория Игры — Безделье

Была у меня гипотеза о связи пропорций расхода времени с настроением. Но во-первых, точные измерения, похоже, требуют вести еще и дневник настроения. А во-вторых, те данные, которые я вижу, скорее подтверждают гипотезу «накупил интересных игр на распродаже и игрался».

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

То, что результаты по некоторым категориям совпадают на двух временных промежутках, означают, что любопытно будет посмотреть на их поведение в будущем. Не получилось бы как в анекдоте «на позапрошлый спринт мы запланировали 40 стори поинтов. Выполнили 35. На прошлый спринт мы запланировали 45 стори поинтов. Выполнили 35. На этот спринт мы планируем 50 стори поинтов!»

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

Хабр

В общем, год продолжил тенденцию 2019. Напомню, тогда научпоп хабы вынесли в непрофильные, и я переключился вместо работы по расписанию на заказанные материалы, благо их тогда хватало. Для разнообразия, до карантина меня пригласили написать несколько постов в корпоративные блоги, и это были единственные материалы, которые выходили на Хабре раньше, чем в ЖЖ.

Сейчас, со стороны, польза от расписания видна еще лучше — поставленная себе задача дисциплинировала, и не возникала мысль «а зачем вообще я этим занимаюсь?» Поскольку я уже давно «топлю» за проактивность, на вопрос есть ответ, вполне выразимый цитатой «Зачем» – не шныровское слово. Шныровские слова или «надо», или «по приколу». Но вообще, в таких условиях я удивляюсь тому, что количество постов получилось даже чуть большим, чем за прошлый год.

ЖЖ

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

104 поста, два в неделю, кажутся рекордом, но архив говорит, что в 2017 году их было аж 107. Тогда у меня получалось работать в формате написания чего-нибудь серьезного на понедельник и легкого — на пятницу. И здесь наблюдается любопытный парадокс — 2017 год я считаю худшим в своей блогерской/популяризаторской деятельности, но именно из-за того, что меня никуда не звали и не предлагали написать что-нибудь на заказ, я смог сконцентрироваться и сделать больше всего материалов.

О сделанном

Так получилось, что ужасы 2020 года по мне пока что промахивались. Айтишная работа оказалась в отрасли, не пострадавшей от коронакризиса, и я только сочувствовал в чатиках тестировщиков увольняемым или тем, кому сокращали зарплаты. Конечно, с весны отвалились мероприятия и заказы на научпоп материалы, но в 2017 году было хуже без всякого мирового кризиса, так что тут жаловаться нет никакого желания. Уход всего и вся в онлайн в моем случае привел к активизации YouTube-канала, День космонавтики мы отметили онлайн, а затем я начал вести стримы по вечерам субботы — мы поиграли в Kerbal Space Program, посмотрели стратегии-менеджеры космических агентств, регулярно устраиваем интересные реконструкции в Orbiter, а сейчас перепроходим кампанию в Children of a Dead Earth. Главная радость этого года — Роскосмос обратил внимание на блогеров, поездка на космодромы «Восточный» и «Морской старт» вошла в топ личных событий года (я написал бы «возглавила», но рождение второго ребенка по строго формальным признакам приходится поставить на первое место).

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

Спасибо, что читали и/или смотрели меня в этом году. Идеи, комментарии, вопросы, благодарности, проклятия и прочая обратная связь принимаются любым удобным вам способом — в комментариях, в личку, Вконтакте или ФБ.

ссылка на оригинал статьи https://habr.com/ru/post/535770/