Здесь могло бы быть долгое вступление про то, как современные веб-приложения прошли путь от простых макетов, ограниченных технологиями своего времени, до способных подстраиваться даже не под ограничения технологий, а под ограничения самих пользователей. Но сейчас важно совсем другое. Как ни крути, все пользователи разные, и иногда ограничения касаются их физических возможностей. Этими вопросами занимается адаптивный дизайн и, в частности, инклюзивный. Но обо всем по порядку.
Как мы увеличили интерес к новостям компании и вовлеченность сотрудников
Всем привет! Мы уже много писали про разработку корпоративного портала НЛМК, которым пользуются больше половины сотрудников нашей большой компании. Сейчас хочу рассказать какие существуют дополнительные инструменты оповещения пользователей, которые мы кастомно настроили на портале, чтобы повысить вовлечение: новостная лента, корпоративное телевидение, онлайн-трансляции, Push уведомления и e-mail рассылка.
О разжиревшей ИС «Управления проектами» или как мы боролись с ограничениями SharePoint в legacy проекте
В этой статье мы опишем наш опыт работы с очень большой системой управления проектами, реализованной на SP, с какими ограничениями мы столкнулись и как добились похудения данной ИС.
Регрессируем обычную известь
И на данный момент мы научились правильно определять это количество с вероятностью 85 %
И нет, мы не сошли с ума. Просто в процессе использования извести некоторое количество самой мелкой её фракции вылетает в трубу. Каждый раз — разное. И «вылететь в трубу» тут не фигуральное выражение, а точное описание процесса: около 10 % известковой пыли, которую мы отправляем в конвертер с жидким металлом, навсегда исчезает в аспираторе. Так как мы не знаем, от какого количества нужно эти 10 % взять и не можем посчитать, сколько её в какой момент улетит, известь в металл насыпается с запасом. И это бесит.
«А почему бы не посчитать, сколько вешать в граммах?» — заинтересовались мы и начали придумывать, как это сделать.
Интерфейсы для производств — это не сайты штамповать
Стоит только коснуться производственной специфики, как стандартные подходы разваливаются на куски — даже если у вас уже есть огромная дизайн-система на основе популярной методологии Material Design. Я — Аня Труфанова, делаю дизайн для MES (manufacturing execution system). Нам пришлось взять дизайн-систему и наполнить ее уникальными фичами и кастомными компонентами, адаптированными под нестандартные условия. Сейчас я поделюсь, что именно мы переосмыслили и какие фичи добавили.
Как мы оцифровывали каждый шаг производства, чтобы завод точно знал, что, как и когда делать
Подручный сталевара берёт пробу химсостава металла на установке печь-ковш
Привет с Новолипецкого металлургического комбината! В крупном проекте самое ценное — данные. В нашем случае — технологические карты производства и параметры всех изделий и агрегатов: как и что мы делаем, на чём, как долго, и какие параметры каким образом влияют на результат.
Производство — живая система: возникают новые процессы, изменяются существующие, перестраиваются агрегаты, меняется код. Мы построили процесс так, что, когда что-то начинает производиться, все актуальные данные уже есть в системе. Код и данные не отстают, не опережают, а идут рука об руку.
У нас есть два гипермозга:
- Календарное планирование играет в оптимизацию на стороне клиентов. Оно знает, что нужно производить и когда, чтобы отгрузить заказы максимально оперативно и вовремя.
- Графикователи же пытаются из этих условий собрать оптимальную загрузку оборудования и, возможно, произвести ещё что-то, что можно присоединить к имеющимся сериям. Они отвечают за максимальную эффективность производства в коротком горизонте.
Обе системы используют огромный модуль маршрутизации технологических процессов. Там хранятся все возможные маршруты всей продукции, технология производства по агрегатам — в общем, путь со всеми переделами, который проделывает металл от входа в сталеплавильное производство до попадания в вагон, который поедет к заказчику. Для этого модуля нам пришлось собрать все данные о производстве, привести их к единому виду, установить общие протоколы обмена данными и договориться со всеми-всеми, что они будут вводить, хранить и использовать данные именно так, как в них указано.
Оцифровка завода из бумажного вида заняла год. Пришлось многое переформатировать, чтобы оно уложилось в понятную логику таблиц и данных. Это было основным и очень трудным челленджем, который вырос в непрерывный процесс и продолжается до сих пор.
Как мы приготовили массу блюд c помощью одного ингредиента: GraphQL
Всем привет! Не говорите, что вам нечего приготовить, если у вас дома одна картошка. При смекалке и достаточном количестве специй — пюре, драники, запеканка, чипсы фри... Конечно, мы обсуждаем не кулинарию. Мне хотелось бы поговорить о GraphQL и некоторых фичах, которые мы внедрили у себя в компании, и тиражируем на различные проекты, где используется этот язык запросов.
Эта статья о базовой структуре, производительности, безопасности и гибкости GraphQL и будет интересна архитекторам, интеграторам, аналитикам и разработчикам, которые не ограничиваются рассмотрением информационных систем только с точки зрения «кода», а учитывают полный жизненный цикл системы, включая поддержку, развитие, систему управления знаниями и многое другое.
Конвейерный апокалипсис отменяется
Рулончики на конвейере
В результате из-за одного конвейера всё (просто совсем всё) может пойти не так: встанут несколько предыдущих этапов производства, таких как Стан 200 и газовые печи, которые разогревают слябы перед подачей и выше по цепочке… В общем, критическая важность бесперебойной работы конвейера очевидна. Поэтому мы придумали систему слежения за исправностью конвейера.
Потребитель VS поставщик информации: принципы построения интеграционного взаимодействия
Всем привет!
Сегодня я расскажу про роли поставщика и потребителя в контексте информационных систем. Под поставщиками я подразумеваю информационные системы, которые передают информацию, а под потребителями – которые ее получают. Также расскажу об основных правилах игры, которые мы выработали у себя в команде.
Зачем нужны правила? Представьте, если бы светофоры в разных городах имели бы разную цветовую гамму. К сожалению, похожий бардак иногда встречается в различных областях нашей жизни, и сфера информационных технологий — не исключение!
Статья поможет структурировать информацию тем, кто проектирует информационные системы и взаимосвязи между ними.
Как я занялся оцинковкой по хардкору
Химия процесса чуть сложнее: вам нужен алюминий, который станет мостиком между сталью и цинком.
Алюминия в расплаве меньше 1%, но его точная доля очень сильно влияет на то, как будет ложиться покрытие. Недостаток алюминия приведёт к плохой адгезии расплава и непроцинковке полосы. Чуть больше — тоже плохо: излишек будет в расплаве. Только при попадании в норму покрытие получается прочным, пластичным и блестящим. Кроме того, нестабильность концентрации алюминия может вызвать неэффективное использование цинка, которое ведёт к увеличению операционных расходов, а также к образованию дросса, представляющего собой соединение цветных металлов с железом.
У нас на производстве — четыре агрегата горячего цинкования. Берём рулон, запускаем его в агрегат, он там проходит через ванну. В начале агрегата к концу рулона привариваем другой рулон, и через ванну в итоге всегда идёт полоса металла, которая покрывается цинком. В ванне стоят индукторы, которые держат температуру между 450 и 470 градусами Цельсия.
Получается томящийся цинково-алюминиевый «суп», в который рабочие цеха могут добавлять «куриные кубики» в виде новых цинк-алюминиевых слитков по мере обеднения расплава.
Быстрое пополнение словарного запаса иностранного языка методом «Ознакомление-забывание-вспоминание»
Привет, Хабр!
В этой статье мы описываем полную методику быстрого пополнения словарного запаса при чтении неадаптированной литературы на иностранном языке. Статья будет интересна тем, кто владеет иностранным языком на уровне B2-С1 и столкнулся с необходимостью увеличить словарный запас на 5000-10000 новых слов за относительно короткий срок, напр. за полгода-год.
Методика опробована на английском языке и мобильном приложении Яндекс.Переводчик, однако может быть использована для любого другого языка и/или мобильного приложения.
С уважением,
Владимир
Typescript ENUM — баланс использования
Привет Всем.
Меня зовут Михаил. В НЛМК нахожусь на должности Frontend-разработчика. Занимаюсь разработкой внутренних информационных систем на React + Typescript.
В этой статье поговорим про тип enum (перечисление) в Typescript, о случаях когда его можно и нужно использовать, а когда нет.
Перечисления бывают числовыми и строковыми. Например, представим в виде перечисления должности работников кафе.
Рассмотрим перечисления с числовыми значениями:
Опыт использования бизнес-процессов Битрикс в рамках крупного корпоративного портала
Наша команда специализируется на разработке и развитии функционала корпоративного портала группы компаний НЛМК.
На практике мы сталкиваемся с самыми разными задачами: от вывода ленты новостей компании и простейших форм обратной связи до функционала оценки качества работы сотрудников и планировщиков рабочего времени некоторых отделов.
Однако, несмотря на все разнообразие решаемых нами вопросов, зачастую разрабатываемые нами сервисы можно собрать из одних и тех же функциональных блоков, своеобразных "кирпичиков".
Конечно, реализуемая бизнес-логика всегда разная, но в основе часто используются одни и те же элементы. Умение правильно их применить, настроить и "подружить" друг с другом существенно снижает затраты времени и труда, как на разработку, так и на поддержку функционала портала.
В рамках этой статьи мы хотим поделиться опытом использования бизнес-процессов Битрикс: рассказать про их преимущества, недостатки и особенности внедрения.
Как мы делаем общие библиотеки
Сегодня я хотел поговорить о том, как мы выстраиваем процесс работы с общими библиотеками разработки. Я расскажу о нашем подходе, который позволяет соединить процессы, команды и инструменты в единое целое. Статья будет интересна тем, кто сопровождает, создает или интересуется, как библиотеки появляются на свет.
Почему типичные дизайн-подходы оказались неприменимы к интерфейсу для производств
После того как я впервые съездила на завод, стало понятно, почему в дизайнеров кидаются тапками.
Мы работали на ярких прикольных аймаках, проектируя интерфейсы MES-систем в соответствии с трендами. А потом своими глазами увидели, в какой ад для сотрудников производства это превратилось.
В разработке интерфейсов для металлургии оказалось намного больше нюансов и специфики, чем мы предполагали.
В потоке лендингов: путь к автоматизации
У нас полно лендингов и бизнес просит еще! Но каждый новый лендинг нужно проводить по процессу. Хочется автоматизации - нужен конструктор! Я неоднократно читал статьи на Хабре про самописные решения – 5 лет, и все в лучшем виде, но для нас это "too much". Мы уложились менее чем за год с "Bitrix". До этого серьезно прошерстили рынок на предмет типовых решений, а также отбросили вариант решения с нуля. Расскажу о процессе выбора и что мы в итоге получили.
Как мы делали свою сеть LTE в карьере и на липецкой металлургической площадке
Вот на этих ковшах в самых холодных участках крепится по нескольку радиометок.
Они часто плавятся или отрываются, когда с ковшей убирают окалину, краны и всякое электрооборудование дают адские помехи, но сейчас мы уже уверенно считываем маркировки.
Нам нужна телеметрия с десяток тысяч датчиков, разных узлов оборудования на огромных производствах, будь то карьер или цеха. Ещё вчера и во всём мире это делалось кабелем.
Сейчас надо куда больше датчиков, в том числе — на движущиеся узлы. Например, кабелем не решить задачу определения координат электровоза, работающего в карьере, или отслеживания ковша с чугуном.
Выбор у нас был простой: промышленный Wi-Fi, всякие отдельные системы вроде LoRa/BT/etc для каждого типа задач, LTE оператора, частный LTE плюс на тесты нам дают частный 5G.
Ну и операторы строили сеть в модели 70 % download, 30 % upload, а у нас — 90 % upload.
У мобильных операторов абоненты — это люди, а у нас — датчики и механизмы. То есть основной задачей было сформировать луч не от антенны вышки до телефона, а от датчика где-то в железной трубе к антенне. Это требовало принципиально другого решения.
Забегая вперёд, скажу, что оператор расчистил нам диапазон, и мы получили свой пакет услуг передачи данных (другие абоненты мигрировали в соседние частоты), запланировали собственное покрытие, построили несколько десятков антенно-мачтовых сооружений для наружной связи, установили соты в некоторых местах внутри цехов, в особо важных и плотных местах построили своё резервированное ядро сети, поставили и запустили оконечные устройства.
И это того стоило. Ещё как стоило!
Как мы построили свой лунапарк (с блекджеком, разумеется) или опыт внедрения системы управления ИТ-проектами
Привет, Хабр! На связи команда Проектного офиса НЛМК-ИТ.
В жизни каждого Проектного офиса наступает момент, когда населяющие его менеджеры и другие сотрудники задумываются о внедрении системы управления проектами. Манящая простотой и выгодами идея редко обходится без подводных камней на этапе реализации. На старте полезно узнать об опыте тех, кто уже набил шишки и морально-волевыми усилиями решил данную задачу, чтобы минимизировать собственные страдания.
Поэтому, вооружившись идеей «храбрый учится на своих ошибках, мудрый учится на чужих, а дурак не учится никогда», мы хотели бы рассказать одну историю.
Как оптимизирован завод: вопросы оптимальной загрузки и «иридиевых чапельников»
Наш прокатный стан
И снова привет из глубин металлургического комбината! В прошлый раз я рассказывал, откуда завод знает, что производить и когда. Мы эту задачу выводили на более-менее понятную математическую модель не один год и будем рефакторить и оптимизировать отдельные участки всю оставшуюся жизнь, поскольку точки роста есть всегда.
Сегодня речь пойдёт про графикователи производства — системы, лежащие ниже уровнем, чем календарное планирование. Они берут обещания отгрузок по датам и в перспективе ближайших нескольких дней строят оптимальную загрузку каждого агрегата по единицам продукции.
Итак, к нам пришёл заказ, пускай условно это будет сталь Ивановского машиностроительного завода. Дальше мы планируем производство: в диапазоне нескольких недель работает система календарного планирования (стратегическое планирование), а в диапазоне двух-трёх дней работают графикователи (тактический уровень) – они разбирают заказы на серии работ, чтобы оптимизировать производство.
Аудит пользователей Spring Data JPA
Задача: в БД необходимо фиксировать кто создал сущность, кто её обновил, и кто её удалил.
Все знают, как взять пользователя из контекста и сунуть его в сущность. Допустим, на уровне сервиса в методе извлечь информацию о нём и «засетать» его в нужные поля (придётся везде таскать этот кусок кода по сервису), а с аспектами как‑то выглядит не явно и накладывает ряд обязательств (например, развешивание аннотаций над методами всякий раз, когда мы что‑то пытаемся сделать с сущностью (новые участники команды могут не знать о такой неявной практике, а старые забыть о ней)).
Мне хотелось полностью делегировать это приложению, но погуглив, я не нашёл какого‑то явного решения. Сейчас расскажу, как мне удалось это сделать: