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

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

Анатолий Островский megatolya объясняет, как его команда решила эту проблему, и делится практиками, специфичными для Маркета, но в целом актуальными для любого большого сервиса. Его доклад основан на собственном опыте развёртывания нового маркетплейса в довольно сжатые сроки. Толя несколько лет руководил командой разработки интерфейсов в Маркете, а сейчас перешёл в направление беспилотных автомобилей.
Читать полностью »

Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта курса я решил написать небольшой авторский материал, которым хочу поделиться с вами.


Предыстория

Spring содержит внутри себя много «магии», осуществляя самостоятельно некоторые неочевидные вещи. Незнание или непонимание этого может приводить к side-эффектам, с которыми вы можете столкнуться в процессе написания своего приложения, используя данный framework.

Одной из таких неочевидных вещей является injection интерфейсов Java Collection Framework'а. Самостоятельно наступив на грабли, связанные с этой темой, и услышав очередные вопросы от коллег, я решил с ней разобраться и зафиксировать результаты своих исследований в виде статьи с надеждой, что она кому-то поможет уже в работе или при начальном освоении Spring'а.
Читать полностью »

Ментальные Модели Реактивного Программирования для начальников - 1
Эта статья рассчитана на широкий круг читателей которые хотели бы узнать, что такое Реактивное Программирование. Цель этой статьи — сформировать у вас базовые Ментальные Модели Реактивного Программирования (ММ РП), не вдаваясь в технические детали.
Читать полностью »

Зависимые типы в Haskell: почему это будущее разработки программного обеспечения - 1

В Serokell мы занимаемся не только коммерческими проектами, но стараемся изменить мир к лучшему. Например, работаем над улучшением главного инструмента всех хаскелистов – Glasgow Haskell Compiler (GHC). Мы сосредоточились на расширении системы типов под впечатлением от работы Ричарда Айзенберга "Зависимые типы в Haskell: теория и практика".

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

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

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

Содержание

  1. Скачать все необходимое
  2. Установка SDK
  3. Проверка SDK
  4. Установка Eclipse
  5. Подключение GTK к Eclipse
  6. Настройка проекта Eclipse
  7. Результат

Скачаем все необходимое:

Первое — это SDK для платы, которое можно скачать на официальном сайте Toradex.
Второе — нам нужен хост с Ubuntu 16.04 LTS.
Третье — непосредственно Eclipse для C/C++.
Читать полностью »

image
В связи с современными требованиями, предъявляемыми к промышленным контроллерам, об открытости архитектуры, а также, с бурным ростом производства PC-совместимых компьютеров, последние все чаще стали использоваться в качестве контроллеров для задач промышленной автоматизации. Такие РС-совместимые контроллеры получили название SoftPLC. Это название свидетельствует о том, что большинство функций обычных PLC, которые решались на аппаратном уровне могут решаться с помощью программного обеспечения.

К основным преимуществам PC-совместимых контроллеров можно отнести: их открытость, расширяемость и возможность выбора средств программирования.

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

Компания Advantech, выпускающая промышленные компьютеры уже 30 лет, в 2019 году анонсировала выпуск нового промышленного PC-совместимого контроллера WISE-5580 c высокими показателями производительности и быстродействия.
Читать полностью »

Всегда работа с CAN была простой, но что-то пошло не так (в устройстве на КДПВ)…
image
В последнее время мне часто удается использовать микроконтроллер STM32H750VB, и вот в одном устройстве понадобилось задействовать шину CAN, но первая же попытка, которую я предпринял показала всю мою самоуверенность дала странный результат. Ниже описана история

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

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

Wind River VxWorks используется для ежедневной работы множества устройств интернета вещей, таких как веб-камеры, сетевые коммутаторы, роутеры, файрволлы, VOIP телефоны, принтеры и устройства видеосвязи, а также в светофорах.

Кроме того VxWorks используется в safety-critical системах, включая SCADA-системы, поезда, лифты, промышленные контроллеры, мониторы состояния пациентов, полетные Wi-Fi системы и даже марсоходы.

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

Согласно новому отчету Armis, совокупность уязвимостей называют URGENT/11, так как в данной группе 11 элементов, 6 из которых критически важны и уязвимы к разрушительным кибератакам.
Читать полностью »

Чем Java отличается от других популярных языков? Почему именно Java может быть первым языком для изучения? Давайте составим план, который поможет выучить Java как с нуля, так и с применением навыков программирования на других языках. Перечислим отличия между созданием продакшен-кода на Java и разработкой на других языках. Михаил Затепякин прочитал этот доклад на встрече для будущих участников стажировки Яндекса и других начинающих разработчиков — Java Junior meetup.

— Всем привет, меня зовут Миша. Я разработчик из Яндекс.Маркета, и сегодня я расскажу вам, зачем учить Java и как делать это эффективно. Вы можете задать резонный вопрос: почему это буду рассказывать я, а не какой-нибудь сильный разработчик с кучей лет стажа? Дело в том, что я сам изучал Java недавно, года полтора назад, поэтому еще помню, как это примерно было и какие есть подводные камни.Читать полностью »

image

В данной статье будут рассмотрены необходимые шаги для создания устройства, отвечающего общим требованиям функциональной безопасности (ФБ). А также будет предложена архитектура простейшего «безопасного» (safety) генератора напряжения. Так как управляя напряжением, можно управлять практически любым устройством.
На сайте есть замечательные статьи (раз, два) на эту тему и книга на которых я вырос как инженер по ФБ.
Серия стандартов ГОСТ Р МЭК 61508 (IEC 61508) является базовой для Российских стандартов, определяющих порядок разработки устройств к которым предъявляются требования ФБ. Как известно, при разработке устройств, связанных с ФБ, существуют отраслевые стандарты регламентирующие порядок разработки (для железных дорог таковыми являются ГОСТ Р 52980-2015 «Требования к ПО», ГОСТ Р 34012-2016 «Общие требования к аппаратуре ЖД» и.т.д).
Согласно стандартов ГОСТ Р МЭК 61508 и IEC 61508 отказы делятся на 2 типа: систематические и случайные.
Читать полностью »


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