Начитывая очередную статью про малоизвестные фичи языка JavaScript и втихую пописывая какие-то невменяемые решения в консоли браузера, я часто проговариваю в голове мол ну на проде то конечно все не так!? Ведь язык давно обзавелся огромнейшим комьюнити и имеет удивительно широкий охват промышленной разработки. Раз так, то почему же мы часто забываем про его возможность быть понятным для каждого и буквально пропагандируем все эти специфичные и "запоминаемые" конструкции? Just make it Obvious!
Рубрика «Промышленное программирование» - 11
Явные возможности JavaScript
2018-12-12 в 7:52, admin, рубрики: best practices, good parts, javascript, production, ненормальное программирование, Промышленное программированиеSDK тебе, SDK мне, SDK всем! Как делать SDK и зачем это нужно
2018-11-28 в 2:31, admin, рубрики: .net, SDK, Анализ и проектирование систем, архитектура, оптимизация, Программирование, Промышленное программированиеВсем привет!
Наша компания делает сервис для хранения и обработки данных с промышленных устройств (насосы, буры и прочая промышленная техника). Мы храним данные наших клиентов и предоставляем функционал для их анализа: построение отчетов, графиков и еще много чего.
И в ходе работы мы заметили, что интеграция каждого нового клиента сильно затягивается, а количество различных ошибок постоянно возрастает. Тогда стало понятно, что пора с этим разобраться. Как показал анализ ситуации, IT отдел каждого нашего клиента разрабатывал свое решение для локального сбора данных с устройств и отправки к нам в сервис. Все усложняет то, что с учетом специфики отрасли, не всегда есть доступ к интернету и необходимо хранить данные локально и отправлять при первой возможности. И таких нюансов достаточно большое количество, что и приводит к росту количества ошибок.
И тогда мы поняли, что лучшим решением в данной ситуации будет разработать SDK и предоставлять его клиенту. Сразу же начал искать лучшие практики и рассуждения на тему разработки SDK и сильно удивился — в рунете об этом практически ничего нет, а в басурманских интернетах очень мало информации и она разрознена. Ну что ж, задача понятна, обдумана и реализована.
Но именно отсутствие информации на данную тему породило желание рассказать сообществу о размышлениях, принятых решениях и выводах на тему разработки SDK. В статье рассматривается решение для .NET, но речь идет о концепции, так что будет интересно многим. Подробности под катом!
Новые китайские ПЛК с Алиэкспресс: Wecon LX3VP-LX3VE
2018-11-27 в 6:09, admin, рубрики: plc, WECON, Обзор ПЛК, плк, Промышленное программированиеПродолжаю серию заметок о программируемых логических контроллерах, с которыми мне доводится работать. В этот раз будет снова про «китайские контроллеры с Алиэкспресс» от кампании Wecon.
Но сначала нужно напомнить, почему я ими заинтересовался. При выборе ПЛК для проекта неизбежно возникает вопрос соотношения цены и качества. Хорошо, конечно, везде использовать проверенные временем контроллеры Siemens или Schneider, но это не всегда позволяет бюджет- они весьма дорогие.
Раньше, когда приходилось ставить в проект более дешевые контроллеры, мы выбирали отечественный ПЛК ОВЕН, но по многим причинам стали искать альтернативу и ему. Среди прочего, я обратил внимание на недорогие ПЛК китайской фирмы Wecon серий LX3V/LX3VP/LX3VE. Про самую простую и дешевую модель LX3V-0806MT-A2 я уже писал.
Сегодня поговорим о более продвинутых моделях: LX3VP-1616MR-A и LX3VE-1412MT-A.
Манифест жёсткого программиста
2018-11-26 в 8:21, admin, рубрики: кабан, негибкие методологии, отжайл, Промышленное программирование, управление разработкойПредисловие
Данный текст предполагает, что читатель ознакомлен с т.н.
agile-манифестом разработки программного обеспечения и его т.н. основополагающими принципами.
В настоящий момент существует огромное количество людей, которые принимают данный "манифест", соглашаются с ним, и даже пытаются применять. Но лично для меня это выглядит как шутка, которая затянулась.
Содержание
- Манифест жёсткого программиста
- Основополагающие принципы манифеста жёсткого программиста
- Комментарии
Манифест жёсткого программиста
Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что:
Концепция важнее новых требований
Качество важнее скорости
Делать как надо важнее, чем делать как просят
То есть, не отрицая важности того, что справа, мы всё-таки более ценим то, что слева.
Информационная безопасность интернета вещей: кто вещь, а кто хозяин?
2018-11-23 в 13:18, admin, рубрики: ENISA, IIoT, IoT, IT-стандарты, Интернет вещей, информационная безопасность, Промышленное программирование, промышленный интернет вещей, стандарты безопасностиНи для кого не секрет, что в области интернета вещей (Internet of Things, IoT), пожалуй, меньше всего порядка в плане обеспечения информационной безопасности (ИБ). Сегодня мы наблюдаем развивающуюся технологию, постоянно меняющийся ландшафт отрасли, прогнозы, порой уводящие в сторону от реальности, десятки организаций, пытающихся объявить себя законодателями в той или иной области, хотя бы «на час». Актуальность проблемы подчеркивается эпическими инцидентами. Industroyer, BrickerBot, Mirai – и это лишь видимая верхушка айсберга, а что «день грядущий нам готовит»? Если продолжать двигаться по течению, то хозяевами интернета вещей станут ботнеты и прочие «вредоносы». А вещи с непродуманным функционалом будут довлеть над теми, кто попытается стать их хозяином.
В ноябре 2018 ENISA (The European Union Agency for Network and Information Security) выпустило документ «Good Practices for Security of Internet of Things in the context of Smart Manufacturing», в котором собраны всевозможные практики обеспечения кибербезопасности для промышленного интернета вещей, причем проанализировано около сотни документов с лучшими практиками в этой области. Что же находится «под капотом» этой попытки объять необъятное? В статье выполнен обзор содержания.
Читать полностью »
Моя история прохождения интервью в IB IT (Java разработчик, investment bank) в Лондоне с примерами типичных заданий
2018-11-22 в 16:19, admin, рубрики: java, интервью, карьера, Карьера в IT-индустрии, лондон, Программирование, Промышленное программирование, финансы в ITТак получилось, что я хотел стать программистом еще учась в университете в Москве, но стал им уже за пределами России и не сразу — путь был долог и тернист. Я ходил на множество интервью (вначале искал я, потом уже искали меня), вникал в тонкости работы и размышлял на тему — как же стать хорошим программистом.
Один из аспектов, который актуален на протяжении всей карьеры, это поиск работы и прохождение интервью. Я сам проводил очень мало интервью (4-5), но посетил большое их количество (>100). У меня было 3-4 периода по поиску работы за последние ~7 лет, когда я ходил на интервью месяц-два, по 1-2-3 в день иногда.
В этой статья я бы хотел поделиться опытом прохождения интервью, дать какую-то систематизацию, как оно выглядит и бывает, к чему готовиться.
Что бы мне было интересно узнать в комментариях — как это бывает у других, особенно в Москве/России, наверняка есть различия с Европой.
Нечеткая логика против ПИД. Скрещиваем ежа и ужа. Авиадвигатель и алгоритмы управления АЭС
2018-11-20 в 5:39, admin, рубрики: Matlab, Алгоритмы, Анализ и проектирование систем, АЭС, инженерные расчеты, математика, математическое моделирование, нечеткая логика, пид-регулятор, Промышленное программирование, сапр, Системная инженерия, турбореактивный двигательНаверное, у каждого, кто изучал теорию автоматического управления, в душе не раз появлялись сомнения, каким образом эти два, три или даже десять квадратиков передаточных функций в модели, представляют собой динамику сложного агрегата, типа ядерного реактора или авиационного двигателя. Нет ли здесь обмана? Возможно то, что работает с простыми моделями перестанет работать со сложными моделями и в «реальной» жизни.
В этой статье мы будем экспериментировать с «настоящей» моделью авиационного двигателя. Обвесив ее «реальными» моделями аппаратуры и алгоритмов управления от атомной станции.
Изначально модель была написана на фортране и предназначена для каких-то высоконаучных целей, связанных с системами управления двигателями. Эту модель нам передали в качестве примера и наша задача заключалась в том, чтобы повторить модель в структурном виде и доказать, что она совпадает с исходной. Что и было сделано.
Как только модель превратилась из листинга Fortran в структурную схему, с ней стало просто и удобно работать, проводя любые, самые «изощренные» эксперименты. Совершенно не случайно у меня оказались реальные алгоритмы управления АЭС. Что позволило быстро собрать модель для экспериментов, не используя при этом никаких формул, да да, только картинки.
Читать полностью »
10 неочевидных преимуществ использования Rust
2018-11-18 в 14:06, admin, рубрики: Rust, выбор языка программирования, идиомы программирования, преимущества, Программирование, Промышленное программирование, системное программирование, языки программированияRust — это молодой и амбициозный язык для системного программирования. В нем реализовано автоматическое управление памятью без сборщика мусора и прочих накладных расходов времени исполнения. Кроме этого, в языке Rust используется семантика перемещения по умолчанию, имеются беспрецендентные правила обращения к изменяемым данным, а также учитываются времена жизни ссылок. Это позволяет ему гарантировать безопасность памяти и облегчает многопоточное программирование, ввиду отсутствия гонок данных.
Все это уже хорошо известно всем, кто хоть немного следит за развитием современных технологий программирования. Но что если вы не системный программист, да и многопоточного кода в ваших проектах не много, но вас все же привлекает производительность Rust'а. Получите ли вы какие-то дополнительные преимущества от его использования в прикладных задачах? Или все, что он вам даст дополнительно — это суровую борьбу с компилятором, который будет заставлять вас писать программу так, чтобы она неотступно следовала правилам языка по заимствованию и владению?
В данной статье собран десяток неочевидных и особо не рекламируемых преимуществ использования Rust, которые, я надеюсь, помогут вам определиться с выбором этого языка для ваших проектов.
Микроинтеракции в iOS. Лекция Яндекса
2018-11-12 в 11:28, admin, рубрики: calayer, iOS, iOS разработка, uikit, uiview, Блог компании Яндекс, Промышленное программирование, разработка мобильных приложений, разработка под iOSНесколько недель назад в офисе Яндекса прошло специальное мероприятие сообщества CocoaHeads — более масштабное, чем традиционные митапы. Разработчик Антон Сергеев выступил на этой встрече и рассказал о модели микроинтеракций, которой обычно пользуются UX-дизайнеры, а также о том, как применить заложенные в ней идеи на практике. Больше всего внимания Антон уделил анимации.
— Для меня очень важно, что именно мне выпала честь встречать гостей. Я вижу здесь тех, с кем я знаком очень давно, тех, с кем знаком совсем недавно, и тех, с кем еще не знаком. Добро пожаловать на CocoaHeads.Читать полностью »
Пишем загрузчик ПЛИС в LabVIEW. Часть 2
2018-11-12 в 4:27, admin, рубрики: dll, fpga, ftdi, LabVIEW, mpsse, national instruments, виртуальный прибор, загрузчик, ненормальное программирование, ошибки, ПЛИС, Промышленное программирование, прототипированиеЗагрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
Пишем загрузчик ПЛИС в LabVIEW. Часть 1
В первой статье мы обкатали алгоритм загрузки на старом добром Си, во второй статье разобрались, как в LabVIEW можно организовать программу и реализовать простой интерфейс пользователя. В этот раз мы познакомимся с новыми приемами работы в LabVIEW, разберем особенности обработки ошибок и завершим проект: реализуем протокол загрузки файла конфигурации в ПЛИС.Читать полностью »