Search
Write a publication
Pull to refresh
79
0

User

Send message

Как мы допиливали Битрикс и защищали его от хищных роботов

Reading time10 min
Views5.1K

Всем привет! Хочу развенчать миф, что в производственных компаниях решение любого вопроса сопряжено с мириадами бумажек, беготней по отделу кадров, и прочими малоприятными вещами. Расскажу о корпоративном портале НЛМК, который для всех нас – сотрудников офиса и производства – единое цифровое окно. Тут все могут решить самые разные вопросы и получить оперативную информацию.

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

Читать далее

Когда люди с трудом выиграли соревнование с алгоритмом — оптимальный раскрой листа металла

Reading time7 min
Views18K


Берём 6 рулонов металла с предыдущего передела, разматываем в печи отжига, получаем стендовую партию из 6 рулонов электротехнической стали с почти одинаковой структурой. Нужно обрезать их до товарных рулонов.

Правила игры такие:

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

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

Задача — оптимально разложить заказанные рулоны примерно по 3,5 тонны в стендовой партии из рулонов по 9 тонн длиной 4,5-5 километров. Перевалка станины на разную ширину стоит денег, и часто это дороже, чем вернуть 200-300 метров стали назад в переплавку.

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

В обычной истории мы бы полгода «бодались», потом придумали бы интеграцию и робот стал бы говорить «человекам», как раскраивать. Но тут всё пошло несколько иначе и началось странное.
Читать дальше →

Тоссим руду: очень неочевидная ИТ-задача

Reading time10 min
Views20K

Дробилка с выдвигаемым конусом

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

Это чистая оптимизационная задача: надо дробить в заданном коридоре и всем будет счастье. Проблема в том, что мы не знаем, слишком мелко мы дробим или слишком крупно. Конвейер огромный, едет со скоростью 3,15 метра в секунду, глазами люди там ничего отличить не могут. А нужно знать фракционный состав руды.

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

И тут такие приходим мы из ИТ и говорим производству: а хотите в реальном времени? Производство сначала крутит пальцем у виска, а потом говорит, что хочет. Потому что цена эффекта — 115 миллионов рублей в год.
Читать дальше →

Package-lock.json: немного о файле для идеальных деревьев

Reading time6 min
Views26K

Привет, всем!

Предполагаю, многие уже знакомы с «npm» (менеджер пакетов), файлом «package.json» и командой для установки пакетов «npm install». Тема моей на следующем шаге, когда после успешно выполненной команды «npm install» появляется файл «package-lock.json». Он создается для любых операций, в которых npm изменяет дерево «node_modules» или файл «package.json». Описывает точное дерево зависимостей, которое было сгенерировано, так что последующие установки могут генерировать идентичные деревья, независимо от промежуточных обновлений зависимостей.

О том, как это работает — мой туториал.

Читать далее

Мороз, вагоны и математика: как новый цифровой сервис экономит нам до 4 млн кубов газа в год

Reading time6 min
Views10K
Привет, Хабр! Меня зовут Никита Кретов, я бригадир рудного двора на липецкой площадке Группы НЛМК. И хотя сейчас у нас теплая золотая осень, мы вовсю готовимся к морозам. Расскажу, зачем зимой мы нагреваем вагоны с сырьем — не просто нагреваем, но еще и целыми вагонами опрокидываем (прямо, как на этом фото).



Опрокидываем мы круглогодично, в вот нагреваем только в холодное время года (как раз сейчас оно, увы, не за горами), и мы кое-что придумали, чтобы делать это эффективнее.
Читать дальше →

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 2)

Reading time9 min
Views7.4K

Привет! Продолжаю рассказ про интеграционную платформу на базе Apache Kafka и про то, как мы постарались гармонично вписать ее в непростую ИТ инфраструктуру группы НЛМК.

Напомню, что в первой части статьи были описаны соглашения об именовании топиков, подход к реализации ролевой модели и соглашение по базовой схеме данных. Здесь расскажу, как сделали универсальное охлаждение для всех данных из Kafka в корпоративное хранилище на базе Hadoop, про сервис доставки сообщений в ИС и про разработанные сервисы, доступные на нашем Self-Service портале.

Читать далее

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 1)

Reading time12 min
Views14K

Привет! Меня зовут Илья Макаров, я работаю архитектором решений и в статье расскажу про архитектуру цифровой платформы НЛМК, из каких компонент, помимо Apache Kafka, она состоит, к каким соглашениям по именованию топиков и договоренностям по передаче данных мы пришли, как всем этим управляем.

А это сразу ссылка на часть 2.

Читать далее

Что случается с металлоломом и зачем там хардкорное ИТ

Reading time9 min
Views36K
Вот приехал вагон лома, мы опускаем туда краном два огромных магнита и передвигаем ими внутри вагона. Так мы разгружаемся:



Если вы присмотритесь к этому лому, то увидите, что он не совсем чистый: где-то есть земля, где-то — тряпки, где-то может попасться ветка дерева. Несмотря на подъём магнитом, из-за того, что железяки у нас довольно корявые, за них цепляется мусор и потенциально может уйти в переплавку. А мы очень не любим, когда на переплавку пытается уехать, например, батарея отопления. Батарея отвратительна, потому что в сантехническом чугуне очень много фосфора, и её надо обрабатывать дополнительно. Древесина и тряпки вообще не плавятся, а горят, земля повышает количество шлака, и поэтому все они не только портят расплав, но ещё и сильно уменьшают КПД электродуговой печи за счёт дополнительных затрат энергии. Поэтому мы очень хотим контролировать качество лома.

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

Естественно, поставщики не стремятся сильно очищать лом, потому что, чем больше там будет мусора, тем меньше металла нужно для поставки — это им выгодно. А потребители лома готовы мириться с порогами в 1,5-2 % мусора (это закреплено в ГОСТах и ТУ), но не больше.

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

Сравнение Quartz, kagkarlsson и кастомной реализации для запланированного задания в реактивном Spring Boot приложении

Reading time6 min
Views5.4K

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

Читать далее

Кастомный отчет для Jira или как приключение затянулось

Reading time8 min
Views7.5K

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

Но что, если я вам скажу, что это должна быть не какая-то новая система, а плагин для Jira. Все вышесказанное никуда не уходит, но добавляются нюансы. Вот о таких нюансах (и как не вылететь из-за них из всех разумных сроков) эта статья.

Читать далее

Как войти в IT: от студентки до Junior-разработчика JavaScript + индивидуальный план развития до Middle

Reading time8 min
Views11K

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

Читать далее

Возим «ложкой» по ковшу жидкого чугуна и снимаем «шлакопенку»

Reading time6 min
Views16K


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

Ковш при этом накрыт крышкой-платформой, температуры там не самые приятные для электроники. У нас есть максимум 10 минут на то, чтобы снять этот шлак с помощью скиммера (такого огромного железного скребка), затем выдвижная стрела сильно перегревается. Задача — убрать почти всю серу из расплава.

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

А лишние движения скиммером — это лишние несколько тонн потерянного чугуна. Если же сделать движений меньше, чем надо для 95 % удаления, то дальше мы не попадём в физико-химические свойства сортамента стали. К тому же время, уходившее на снятие шлака, разнилось от плавки к плавке: где-то оператор справлялся за четыре минуты, а где-то — за все восемь с половиной. А каждая выигранная минута повышает производительность конвертера.

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

Уже полгода система в опытной эксплуатации, и, похоже, можно праздновать победу.
Читать дальше →

Что делать неизвестным в вашем git репозитории

Reading time5 min
Views12K

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

Читать далее

Apache NiFi: как починить ошибки, которые не гуглятся

Reading time16 min
Views12K
Настройка и запуск Apache NiFi и Zookeeper, настройка авторизации по LDAP и работа NiFi по HTTPS, настройка и запуск Apache NiFi Registry, пример запуска NiFi c Kerberos — вот темы, которые будут в этой статье.



Не вижу смысла полностью рассказывать, как настраивать NiFi и NiFi Registry — есть официальная документация и мануалы в сети. Я сосредоточился на ошибках, информации по которым нет, в том числе и на английском. При самостоятельном поиске решения, это реально масса времени. Я провел месяцы в режиме DEBUG и TRACE, чтобы понять, как всё сделать правильно. Готов поделится.
Читать дальше →

+250 новых вакансий

Reading time1 min
Views21K

Привет, Хабр!

Сейчас для IT-сообщества появляется много новых возможностей. Например, Группа НЛМК открыла более 250 новых вакансий для разработчиков, тестировщиков, IT-архитекторов, инженеров, специалистов по информационной безопасности, UI/UX дизайнеров, аналитиков, руководителей IT-проектов и экспертов по широкому спектру информационных систем.

Читать далее

Как дроны помогают нам управлять состоянием дорог в рудном карьере

Reading time4 min
Views3.5K

Привет, Хабр! Беспилотные летательные аппараты (БПЛА) часто используются в горнодобывающем производстве, чтобы ускорить и обезопасить работы в карьерах. В НЛМК мы, в частности, применяем дроны для анализа состояния дорог на Стойленском ГОКе, потому что хорошая дорога позволяет расходовать меньше топлива для автотранспорта, дольше сохранять шины и, конечно, делает работу водителей комфортнее и безопаснее.

Читать далее

Простой и эффектный parallax-эффект без JavaScript

Reading time3 min
Views8.6K

Всем привет! Буквально за 5 минут расскажу, как сделать parallax-эффект, который помог нам наглядно показать стилистические различия между светлой и темной темами на сайте «Дизайн-система НЛМК».

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

Читать далее

Что общего между кофе с доставкой и ковшом жидкой стали

Reading time9 min
Views9K
Представьте себе, что вы — владелец кофейни, которая работает на доставку. У вас широкий ассортимент и много постоянных клиентов. Но есть одна ужасно странная странность: каждый из них требует доставить напиток строго определенной температуры. У вас есть курьеры разной быстроты, сложные маршруты, пробки, погода, в конце концов… Слишком холодный кофе — клиент уходит, а разогревать «с запасом» невыгодно и тоже не соответствует заказу. По идее на этом месте вы должны понять, что вам нужна математическая модель, которая все рассчитает.



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



Человеку в такой задаче трудно достичь идеальной точности, поэтому у нас работает цифровой сервис, который называется «Заказ температуры».
Читать дальше →
2

Information

Rating
Does not participate
Works in
Registered
Activity