Search
Write a publication
Pull to refresh
14
-0.8

Инженегр АСУТП

Send message

Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней

Reading time5 min
Views27K
Языкам программирования семейства Оберон не суждено было прорваться в мейнстрим, хотя они и оставили заметный след в IT-индустрии. Однако, и операционные системы, написанные на этих языках (являясь одновременно и программными каркасами различных решений и средами разработки), и сами языки программирования используются в учебной, исследовательской и промышленной сферах и по сей день, понуждая к творчеству и экспериментам, развиваясь и впитывая новые веянья индустрии и влияя на неё.

Этой обзорной статьёй я открываю серию статей, посвящённых языку Активный Оберон и операционной системе A2, написанной на этом языке.

Итак, встречайте — Активный Оберон


Первая публикация по Активному Оберону появилась в 1997 году, но понятно, что язык и его реализация появились несколько раньше. За эти годы произошло много изменений в языке, переработана среда времени выполнения, написана операционная система A2…
Читать дальше →

96-ядерный суперкомпьютер на одноплатниках NanoPi Fire3

Reading time14 min
Views67K
Создание высокопроизводительного кластера с 12 узлами NanoPi-Fire3 менее чем за £100 (£550, включая двенадцать Fire3)

Мой прошлый кластер на Raspberry Pi 3 в прошлом году немало заинтересовал публику, так что я попробовать сделать аналогичные проекты на других отличных одноплатных компьютерах, которые есть на рынке. FriendlyARM из Китая очень щедро отправила мне 12 своих последних 64-битных ARM плат NanoPi-Fire3, на каждой из которых восьмиядерный ARM A53 SoC, работающий на частоте 1,4 ГГц, с гигабитным Ethernet.


Читать дальше →

Статический анализ мобильных приложений

Reading time3 min
Views9.6K


Одним из этапов тестирования мобильного приложения — это статический анализ. Статический анализ приложения — это анализ приложения без выполнения каких либо функций приложения. Наиболее удобным для меня из open source фреймворков есть MobSF. Кому интересно, добро пожаловать под кат.
Читать дальше →

Обзор бесплатных 2D САПР

Reading time8 min
Views154K
В сфере автоматизации проектирования с каждым годом всё сильнее укрепляют свои позиции параметрические трёхмерные САПР. Полезность такого подхода в инженерном деле сейчас не вызывает сомнений, и сфера применения такого подхода обширна.

Тем не менее, в инженерном деле остаётся место и для традиционного двумерного проектирования, и для этого есть соответствующие инструменты.

image
Читать дальше →

Вышла первая бета-версия операционной системы Haiku R1

Reading time5 min
Views49K
После девяти лет альфа-тестирования и спустя шесть лет с момента формирования прошлого альфа-выпуска подготовлен первый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска доступно несколько загрузочных Live-образов (x86, x86-64). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.

image
Читать дальше →

Lisp со вкусом Pascal или 8501-й язык программирования

Reading time9 min
Views16K
Некоторое время назад (года три) решил почитать учебник по Лиспу. Без всякой конкретной цели, просто ради общего развития и возможности шокировать собеседников экзотикой (один раз кажется, даже получилось).

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

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

Пол Грэм написал не одну статью и даже книгу о преимуществах Лиспа. На момент написания этой статьи Lisp занимает 33-е место в рейтинге TOIBE (в три раза мертвее мёртвого Delphi). Возникает вопрос: почему язык так мало распространён если он так удобен? Приблизительно два года использования дали несколько намёков на причины.
Читать дальше →

Разработчики остались неизвестны. Лекция Яндекса

Reading time15 min
Views22K
Этот доклад руководителя группы разработки ClickHouse Алексея Миловидова представляет собой обзор мало кому известных СУБД. Некоторые из них устарели, некоторые прекратили свое развитие и заброшены. Алексей обращает внимание на интересные архитектурные решения в перечисленных примерах, разбирается в их судьбе и объясняет, каким требованиям должен отвечать ваш опенсорс-проект.


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

Знакомство с SOCI — C++ библиотекой доступа к базам данных

Reading time7 min
Views23K

Вступление


Сама библиотека довольно таки зрелая, — первый релиз на гитхабе датируется аж 2004-ым годом. Я был удивлён когда Хабр в поисковике не выдал мне ни одной ссылки на статьи, в которых бы упоминалось об этой замечательной библиотеке.


Произносится как: сОцы, с ударением на первый слог.


SOCI поддерживает ORM, через специализацию soci::type_conversion.


Поддержка баз данных (БД) (бэкенды):



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

Читать дальше →

Получаем данные со счетчиков Меркурий 203.2Т по RS-485

Reading time3 min
Views34K


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

ScadaPy: добавляем протокол IEC 60870-5-104

Reading time5 min
Views20K
Добавление протокола iec-104 в scadapy, предоставляет дополнительные возможности для расширения системы, как в домашней автоматизации, так и для локального применения на малых предприятиях.

Данный протокол довольно сложный в освоении, но в настоящий момент в интернете можно найти достаточно документации для ознакомления.
Читать дальше →

Кроссплатформенная разработка с помощью .NET, реактивного программирования, шаблона MVVM и кодогенерации

Reading time13 min
Views28K
Reactive MVVM and .NET Standard

Сегодня платформа .NET является по-настоящему универсальным инструментом – с её помощью можно решать широчайший круг задач, включая разработку прикладных приложений для популярных операционных систем, таких, как Windows, Linux, MacOS, Android и iOS. В настоящей статье рассмотрим архитектуру кроссплатформенных .NET приложений с использованием шаблона проектирования MVVM и реактивного программирования. Познакомимся с библиотеками ReactiveUI и Fody, научимся реализовывать интерфейс INotifyPropertyChanged с помощью атрибутов, затронем основы AvaloniaUI, Xamarin Forms, Universal Windows Platform, Windows Presentation Foundation и .NET Standard, изучим эффективные инструменты для модульного тестирования слоёв модели и модели представления приложения.

Материал является адаптацией статей "Reactive MVVM For The .NET Platform" и "Cross-Platform .NET Apps Via Reactive MVVM Approach", опубликованных автором ранее на ресурсе Medium. Примеры кода доступны на GitHub.
Читать дальше →

Просто о сложном. Часть 2, создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo

Reading time5 min
Views18K

Часть 2. Продолжаем создавать умный дом


В этой части устанавливаем в систему «Умный дом» контроллер Z-Wave, определяем его и знакомимся с *Nix операционными системами и работой в терминале (программой PuTTY), свои действия буду немного пояснять.

image

Напомню мои требования к «умному дому» (УД):


  1. Место — квартира, где переделка (существенная переделка чего-либо не планируется).
  2. Возможность интеграции всех решений в единую систему УД с открытым кодом .
  3. Возможность постепенного расширения (масштабирования) функционала.
  4. По-возможности, минимальные затраты.
  5. По возможности покупка элементов системы в РБ или же в РФ, без всяких заказов с зарубежных сайтов. Пришел, посмотрел, купил.
  6. По возможности русскоязычный интерфейс, документация, поддержка.

В первой части мы уже создали загрузочную карту памяти, настроили и узнали IP адрес платы Raspberry, немного научились работать с программой PuTTY и подключаться через SSH соединение.

Сейчас делаем следующие шаги: расширим место на карте памяти, установим контроллер RaZberry в систему, немного ознакомимся с интерфейсом панели управления Z-Wave и MajorDoMo/
Читать дальше →

Отладка многопоточных программ на базе FreeRTOS

Reading time13 min
Views37K

image

Отладка многозадачных программ дело не простое, особенно если ты сталкиваешься с этим впервые. После того, как прошла радость от запуска первой задачи или первой демо программы, от бесконечно волнительного наблюдения за светодиодами, каждый из которых моргает в своей собственной задаче, наступает время, когда ты осознаешь, что довольно мало понимаешь (вообще не врубаешься) о том, что на самом деле происходит. Классика жанра: «Я выделил целых 3КБ операционной системе и запустил всего 3 задачи со стеком по 128Б, а на четвертую уже почему-то не хватает памяти» или «А сколько вообще стека я должен выделить задаче? Столько достаточно? А столько?». Многие решают данные задачи путем проб и ошибок, поэтому в этой статье я решила объединить большинство моментов, которые, в настоящее время, значительно упрощают мне жизнь и позволяют более осознанно отлаживать многопоточные программы на базе FreeRTOS.

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

В данной статье я расскажу о следующих моментах:


  1. Настройка OpenOCD для работы с FreeRTOS.
  2. Не забываем включать хуки.
  3. Статическое или динамическое выделение памяти?
  4. Сказ, о параметре configMINIMAL_STACK_SIZE.
  5. Мониторинг использования ресурсов.
Читать дальше →

Как мы в Smart Engines учили Sailfish OS распознаванию

Reading time7 min
Views6.1K
Smart Engines и Sailfish OS

Всем привет! Как вы уже знаете по нашим статьям, мы в Smart Engines занимаемся распознаванием, причем распознавать мы стараемся на чем угодно и в любых условиях. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris. Поддерживаем мы и отечественного производителя: Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K, MIPS.


Поэтому, когда мы увидели нарастающую популярность российской операционной системы Sailfish Mobile OS RUS, мы не смогли обойти ее стороной. Sailfish Mobile OS RUS — это POSIX-совместимая операционная система для мобильных устройств, развиваемая отечественной компанией «Открытая Мобильная Платформа» для решения задач корпоративных пользователей и государственных учреждений. По состоянию на февраль 2018 года является единственной мобильной операционной системой, включенной в реестр Отечественного ПО и прошедшей сертификацию ФСБ по классу АК1/КС1.


В этой статье мы расскажем о своем опыте портирования нашей библиотеки распознавания Smart IDReader (технология Hieroglyph) на Sailfish OS. В ней будет код, ссылки и видео. Мы хотим, чтобы эта статья была технически информативной и полезной в качестве общей инструкции для тех, кто портирует С++ приложения на Sailfish OS.


Что такое PAT? Лабораторная работа в Packet Tracer

Reading time3 min
Views56K

Введение


PAT (Port Address Translation) — технология трансляции адресов с использованием портов. Данная технология решает проблему доставки возвратных пакетов. Так как количество белых IP ограничено нам необходимо экономить эти адреса. Помня об этом, была создана технология РАТ. Она позволяет локальным хостам использовать частные IP-адреса и установить один зарегистрированный адрес на маршрутизатор доступа. В технологии преобразования адресов РАТ используется особенность работы протокола ТСР: с точки зрения сервера абсолютно все равно, осуществляются соединения с тремя разными хостами с разными адресами или соединения устанавливаются с одним хостом на один IP-адрес, но с разными портами. Следовательно, чтобы подключить к Интернету множество хостов небольшого офиса с помощью одного только зарегистрированного публичного IP адреса, служба РАТ транслирует частные адреса локальных хостов в один имеющийся зарегистрированный. Чтобы правильно пересылать пакеты обратной коммуникации локальным хостам, маршрутизатор хранит у себя таблицу IP адресов и номеров портов для протоколов TCP и UDP. Об IP адресах и масках подсети можно почитать в другой моей статье.

Задание лабораторной работы


Создать простую сеть с использование технологии PAT (перегруженный NAT). Схема сети представлена ниже. Вся работа будет выполняться в программе Cisco Packet Tracer.


Читать дальше →

О книге «Обеспечение безопасности АСУТП в соответствии с современными стандартами»

Reading time7 min
Views11K


Как обеспечить функциональную составляющую безопасности систем управления? Чем отличается функциональная безопасность от информационной безопасности и кто из них «главнее»? Есть ли смысл в сертификации на соответствие требованиям стандартов? Своим опытом в решении этих и других вопросов я старался поделиться с сообществом, когда полтора года назад начал публиковать на хабре серию статей. За это время из серии статей сложилось нечто большее.

На днях издательство «Инфра-Инженерия» опубликовало мою книгу «Обеспечение безопасности АСУТП в соответствии с современными стандартами». Формат аннотации на сайте издательства предусматривает всего несколько строк, поэтому я решил поделиться с читателями основными идеями и развернутым содержанием книги.
Читать дальше →

[Не только студентам] Лабораторная работа в Packet Tracer

Reading time6 min
Views273K

Задание лабораторной работы


Компания арендовала 3 помещения в бизнес центре. В этих помещениях есть только голые стены и розетки. Вы друг основателя фирмы и по совместительству сетевой и системный администратор. Вас попросили разработать схему сети.

В сети должна быть реализована возможность связываться с любым из трёх помещений в компании, но при этом каждое помещение (отдел) должны быть изолированы.
Также в третьем помещении необходимо создать беспроводную точку доступа. Эта точка должна иметь пароль junior17, должны автоматически выдаваться первые 20 адресов, SSID должен быть скрыт.

Во втором отделе стоит не настроенный web сервер. Это тоже необходимо исправить. От Вас требуется реализовать в каждом помещении возможность получать доступ к серверу по url имени.

В первом отделе 4 рабочих места, во втором — 2 рабочих места и сервер, третье помещение нужно для отдыха персонала (10 рабочих мест, в том числе 4 беспроводных).

К сетевому оборудованию вам необходимо предоставить безопасный удаленный доступ (SSH).
Обеспечить защиту портов доступа на коммутаторах (не более 2 адресов на интерфейсе, адреса должны быть динамически сохранены в текущей конфигурации, при попытке подключения устройства с адресом, нарушающим политику, на консоль должно быть выведено уведомление, порт должен быть отключен).

Так как Вы давно дружны с директором он попросил Вас создать административную виртуальную сеть и задать ей имя KingMan.

В средствах Вы ограничены. У Вас осталось с прошлой работы 3 коммутатора Cisco 2960, маршрутизатор Cisco 1941 и роутер Cisco WRT300N.

Всю работу необходимо выполнить в бесплатной программе Packet Tracer.
Читать дальше →

Как разрабатывают и производят устройства IoT в России

Reading time6 min
Views17K
Мы с большим любопытством заглянули в R&D-отдел наших давних партнеров — компании Стриж, которая сама разрабатывает и производит в России базовые станции, конечные устройства IoT, протоколы передачи и ПО. Большая часть наших вопросов касалась организации процесса разработки и трудностей, с которыми они сталкивались.


Читать дальше →

Использование LevelDB

Reading time8 min
Views44K
Столкнулся с ситуацией, когда мои коллеги для организации локального персистентного key-value хранилища используют SQLite, MemcacheDB, Redis игнорируя встраиваемые хранилища такие как LevelDB, Sophia, HamsterDB и т.д.

Я разбил статью на две части:
  1. небольшое введение в api LevelDB;
  2. использование LevelDB, для хранения временных рядов.

Подробности

Information

Rating
Does not participate
Location
Россия
Registered
Activity