Рубрика «Промышленное программирование» - 8

В большом проекте может возникнуть задача идентификации изменений для конечного пользователя по отличиям в коде фронтенда приложения. Разработчик из Яндекс.Маркета Никита Сидоров рассказал, как мы решали эту проблему при помощи библиотеки Diffector, о построении и анализе графа модулей в Node.js-приложениях и о поиске дефектов в коде до его запуска.

Жизнь до рантайма. Доклад Яндекса - 1

— Сегодня я постараюсь быть с вами максимально откровенным. Читать полностью »

Как общаются машины — протокол MQTT - 1

В предыдущей статье мы разбирали протокол Modbus, являющийся стандартом де-факто в промышленности для M2M-взаимодействия. Разработанный в далеком 1979 году, он имеет ряд существенных недостатков, которые решает MQTT.

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

Главные особенности протокола MQTT:

  • Компактный и легковесный — минимальные накладные расходы на пересылку данных, для экономии трафика.
  • Устойчивость к потерям — гарантированная доставка в условиях нестабильных сетевых подключений.
  • Асинхронный — позволяет обслуживать большое количество устройств, и не зависит от сетевых задержек.
  • Поддержка QoS — возможность управлять приоритетом сообщений и гарантировать доставку сообщения адресату.
  • Динамическая конфигурация — не требует предварительно согласования полей и форматов данных, может конфигурироваться «на лету».
  • Работает за NAT — клиенты могут находиться за NAT, только сервер (брокер) должен иметь реальный IP. Позволяет обойтись без VPN и пробрасывания портов.
  • Удобная адресация — поля данных имеют текстовые названия, понятные для человека. Не нужно запоминать цифровые адреса и битовые смещения.

Читать полностью »

image

Хороший сервис для заказа такси должен быть безопасным, надёжным и быстрым. Пользователь не станет вдаваться в детали: ему важно, чтобы он нажал кнопку «Заказать» и как можно быстрее получил машину, которая доставит его из точки А в точку Б. Если рядом нет машин — сервис должен сразу об этом сообщить, чтобы у клиента не складывалось ложных ожиданий. Но если плашка «Нет машин» будет высвечиваться слишком часто, то логично, что человек просто перестанет пользоваться этим сервисом и уйдёт к конкуренту.

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

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

Обектно ориентированное програмирование в графических языках - 1

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

Читать полностью »

image

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

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

Так что мы подготовили для вас следующие материалы:

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

Как проходят алгоритмические секции на собеседованиях в Яндекс - 1

Читать полностью »

Как общаются машины: протокол Modbus - 1

Протокол Modbus — самый распространенный промышленный протокол для M2M-взаимодействия. Является стандартом де-факто и поддерживается почти всеми производителями промышленного оборудования.

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

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

Представляю вашему вниманию перевод статьи «How the Boeing 737 Max Disaster Looks to a Software Developer» Грега Трэвиса. Речь пойдет о том, как желание Боинга сэкономить и «срезать углы» для коммерческой выгоды, а также культура «некомпетентности и неэтичности» в сообществе разработчиков привело к гибели 346 человек. Я не во всем разделяю позицию автора (в частности, я считаю, что человеческий фактор куда большее зло, чем ПО), но с основными доводами сложно не согласиться.

Ниже очень много букв. Если читать лень, а ознакомиться с темой хочется, то на Хабре есть первая, более короткая версия этой статьи в переводе Вячеслава Голованова, с ней можно ознакомится здесь.
Читать полностью »

Видео: админский пульт управления Хабром. Позволяет регулировать карму, рейтинг, и банить пользователей.

TL;DR: в статье я попробую создать шуточный пульт управления Хабром, используя среду разработки промышленных интерфейсов Webaccess/HMI Designer и терминал WebOP.

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

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

Читать полностью »

Многоуровневое управление освещением: отказоустойчивость решений и продуктов - 1

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js