Pull to refresh
0
Надобный Андрей @nadobnyi_andreyread⁠-⁠only

Пользователь

Send message

Edge AI чипы от Kneron. Что это такое и как оно работает

Reading time10 min
Views6.7K

Kneron

Привет, я Антон Маслов, ведущий разработчик в MTS AI.


Некоторое время назад мне довелось глубоко погрузиться в очень необычные чипы на базе технологии Edge AI. Микроконтроллеры со встроенными нейроускорителями. И позапускать на них самые разные кейсы. Оказалось, что это очень классная штука. И стоит недорого, и работает быстро. А, главное, мелкая. Так что можно встроить в любой девайс.


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


Читать дальше →
Total votes 21: ↑19 and ↓2+22
Comments3

Аудит входа в Linux через Slack. Разбираемся с PAM

Reading time11 min
Views5.6K

Библиотеки PAM (Pluggable Authentication Module) используются для добавления сложного сценария проверки учетных данных и выполнения дополнительных действий при аутентификации пользователя и доступе к службам. В этой статье мы разберемся с внутренней архитектурой PAM, особенностями конфигурации и сделаем простой модуль для отправки уведомлений в Slack при входе пользователя в систему.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Руководство по установке и настройке OpenVPN

Reading time34 min
Views1.4M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



По соображениям безопасности доступ к этим ресурсам ограничен при помощи межсетевого экрана (файервола) по портам и адресам IP. Ежедневную перенастройку доступа при изменении динамических IP сотрудников едва ли можно назвать разумным решением.



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments97

C++ разведка кросс-компиляции Linux->Windows

Reading time19 min
Views5.2K

Эта история началась когда удобный для меня инструмент VSCode из за одного плагина на борту стал не совсем удобен. А именно, «natizyskunk.sftp» плагин, который позволяет подключится по протоколу (S)FTP к серверу, и вносить изменения на сервер, просто сохранив файл. Всё нечего, если бы настройки подключения к серверам не хранились в корне отдельно взятого проекта. Когда у тебя с десяток проектов, ещё можно потерпеть, но более 70 проектов и они все на разных серверах, то перенос и добавление в каждый из проектов актуальной настройки, например пароль, который периодически меняется, заставляет как минимум раздражённо искать подходящую настройку и с комбинацией клавиш Ctrl+C, Ctrl+V, менять устаревшие настройки или добавлять новые. В дальнейшем оказалось, что коллеги пользуются другими идентичными плагинами с названиями «liximomo.sftp», «doujinya.sftp-revived».

Читать далее
Total votes 5: ↑4 and ↓1+4
Comments10

Борьба с фрагментацией памяти в ядре Linux

Reading time12 min
Views13K

В этой компиляции из двух статей приводятся распространенные методы предотвращения фрагментации памяти в Linux, а также разбираются принципы ее уплотнения, способы просмотра индекса фрагментации и прочие нюансы.
Читать дальше →
Total votes 27: ↑23 and ↓4+33
Comments18

Как работают snap, flatpak, appimage

Reading time13 min
Views66K

Распространение приложений в линуксе - это боль. Причем в наше время цикл обновлений приложений все уменьшается и эта боль чувствуется все сильнее. В связи с этим появляются технологии вроде snap, flatpak, которые декларируют решение этих проблем. Некоторые дистрибутивы (я смотрю на тебя, Ubuntu) даже начинают довольно агрессивную политику по их внедрению. Однако, несмотря на то, что про сами эти технологии много говорят (и ещё больше жалуются), про то, как они работают написано довольно мало. Попробуем исправить это.

Disclaimer: в этой статье я не буду давать каких-то оценок, пытаться говорить что лучше. Только как это работает. Я предполагаю, что читатель знает что такое контейнеризация и как это примерно работает.

Читать далее
Total votes 52: ↑50 and ↓2+67
Comments60

Так все же, насколько быстры каналы в Linux?

Reading time26 min
Views22K

В этом посте будет проанализировано, как каналы Unix реализуются в Linux. Для этого мы напишем и в несколько итераций оптимизируем тестовую программу, которая записывает и считывает данные через канал.  

Читать далее
Total votes 77: ↑72 and ↓5+86
Comments31

Быть или не быть ACL в администрировании Linux

Reading time5 min
Views19K

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

Эта статья поможет определиться действительно ли проекту требуется гибкость на уровне пакета ACL и какие проблемы могут возникнуть при его использовании. 

Итак, знакомьтесь ближе с теоретической и практической составляющими утилиты.  

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments6

Параллельные оболочки с xargs: Используем все процессорные ядра в UNIX и Windows

Reading time13 min
Views5.6K

▍ Введение


Одним из наиболее неприятных моментов в работе с оболочкой UNIX является невозможность легко запланировать несколько параллельных задач, которые бы полностью использовали ядра процессора, представленные в большинстве современных системах. В данной статье в качестве примера рассматривается сжатие файлов, но проблема также возникает и при выполнении многих задач с интенсивными вычислениями, таких как: обработка изображений/аудио/медиа, подбор паролей и анализ хэшей, резервное копирование, а также извлечение, преобразование и загрузка баз данных. Вполне понятно, что ждать, когда gzip * выполнится на одном ядре процессора, довольно утомительно, в то время как большая часть вычислительной мощности машины простаивает.
Читать дальше →
Total votes 21: ↑19 and ↓2+30
Comments3

Модуль управления по локальной сети

Reading time2 min
Views7.3K

Хочу познакомить вас со своей старой разработкой, но которая будет интересна и в настоящее время.

Модуль управления по локальной сети предназначен для конвертации (преобразования) команд, передаваемых по кабелю типа «витая пара» (LAN) в команды, передаваемые по RS-232 (com-порт), и IR (инфракрасный) каналам.

Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны и востребованы как в промышленности, так и в различных домашних системах. Однако последовательные интерфейсы имеют свои ограничения, например, небольшое расстояние. Иногда возникает необходимость получить доступ к устройству с RS-232 (RS485) с нескольких удаленных компьютеров одновременно.

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

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

Читать далее
Total votes 12: ↑9 and ↓3+9
Comments16

Просто о сложном — пишем тесты с Google C++ Testing Framework (GTest, GMock)

Reading time9 min
Views49K

Всем привет. Недавно по работе возникла потребность разобраться с созданием новых тестов на GTest/GMock. Конкретно мой вопрос был связан с его конструкциями типа EXPECT_CALL и моками - что это за магические штуки и как они работают. Однако, по мере изучения выяснились и другие интересные вещи, с которыми хотел бы поделиться.

Читать далее
Total votes 10: ↑8 and ↓2+10
Comments11

С++17 wrapper для OpenSSL: ECDH и AES 256

Reading time11 min
Views4.8K

В данной статье мы рассмотрим простую реализацию связки алгоритма согласования ключей Диффи-Хеллман на элиптических кривых и алгоритма симметричного шифрования AES 256 с использованием библиотеки OpenSSL для организации защищённого соединения.

Читать далее
Total votes 9: ↑0 and ↓9-9
Comments9

Антикоммуникации

Reading time6 min
Views13K

Удивительно, но некоторые разработчики до сих пор считают, что коммуникации в работе не нужны или даже вредны. «Наша задача кодить, а не болтать». Конечно это эффективнее некуда, сидеть три часа и пытаться самостоятельно разобраться, как работает соседний сервис, вместо того чтобы просто спросить у коллеги и получить ответ за 15 минут. Или додумывать за ПО спорные моменты в задаче, а потом выкинуть 90 % работы и переделать заново после первого демо. Или не услышать или не понять критику на обсуждении технического решения, а потом переделывать, костылить, велосипедить и получать критические ошибки и блокеры в середине спринта. Или начать сразу разрешать инцидент, не рассказав про него владельцу продукта и бизнесу, и получить тонны негативной обратной связи от клиентов и бизнеса. Или внезапно узнать, что можно было бы обойтись меньшей кровью, ничего не разрабатывая, а решив проблему административными методами.

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

Читать далее
Total votes 46: ↑37 and ↓9+38
Comments34

Настройка ПИД-регуляторов: так ли страшен чёрт, как его малюют? Часть 1. Одноконтурная система

Reading time4 min
Views30K


Эта статья открывает цикл статей, посвященных автоматизированным способам настройки ПИД-регуляторов в среде Simulink. Сегодня разберемся, как работать с приложением PID Tuner.

Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments2

Мини плата для разработки и отладки ПО на BLE, Zigbee Thread

Reading time2 min
Views7.3K
Приветствую читателей Habr! В этой статье хочу поделиться с сообществом своей новой разработкой, речь пойдет о небольшой Development Board на чипе nRF52840. Плата была спроектированна под недорогие модули E73-2G4M08S1C. Идея ее создания родилась в одном уютном телеграмм чатике довольно спонтанно. Была необходимость в недорогом и простом в сборке девайсе.

Total votes 21: ↑17 and ↓4+21
Comments8

Что делать, если поймал HardFault?

Reading time6 min
Views32K
Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться.

Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он никак не обрабатывается, а просто остаётся висеть в бесконечном цикле обработчика, предусмотренном в startup файле производителя. В то же время программист пытается интуитивно найти причину отказа. На мой взгляд это не самый оптимальный путь решения проблемы.

В данной статье я хочу описать методику анализа тяжелых отказов популярных микроконтроллеров с ядром Cortex M3/M4. Хотя, пожалуй, «методика» — слишком громкое слово. Скорее, я просто разберу на примере то, как я анализирую возникновение тяжелых отказов, и покажу, что можно сделать в подобной ситуации. Я буду использовать программное обеспечение от IAR и отладочную плату STM32F4DISCOVERY, так как эти инструменты есть у многих начинающих программистов. Однако это совершенно не принципиально, данный пример можно адаптировать под любой процессор семейства и любую среду разработки.


Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments12

Концепция Network 2030: как изменится интернет через 10 лет

Reading time10 min
Views8.9K


Весной 2020 года издание Financial Times рассказало о технологии New IP. Публикация об инициированной Huawei замене IPv4 подняла много шума и быстро разошлась по сети. Но на самом деле, New IP — часть глобального проекта, который изменит наше представление о современном интернете.

Аудитория интернета превысила 4,6 млрд человек. Согласно Internet Live Stats ежедневно потребляется свыше 3 зеттабайт (1021) интернет-трафика. Ежедневно мы пользуемся облаками, всевозможными гаджетами и устройствами интернета вещей (IoT). Скоро к этому списку добавится и беспилотный транспорт.

Удивительно, но все эти устройства и технологии до сих пор используют морально устаревший сетевой протокол IPv4. Как всё будет меняться, насколько быстро, продуктивно и безопасно будет работать сеть в ближайшие 10 лет, читайте под катом.
Читать дальше →
Total votes 8: ↑6 and ↓2+7
Comments6

Умный дом: новое измерение комфорта и стремление к совершенству. Часть первая

Reading time10 min
Views17K
Эта статья – логическое продолжение поднятой ранее темы мониторинга систем загородного дома. Тому, кто не читал предыдущую статью, некоторые мысли в данной статье могут показаться странными. Напомню: уже в процессе проектирования и выбора базовых компонентов стало понятно, что мониторингом работы систем загородного дома дело не закончится и что нужно делать не просто мониторинг, а фундамент умного дома. Теперь посмотрим, как развивались события. Как и прежде, я не буду приводить полные листинги программ или детальные схемы. Моя задача – показать ход мысли и, возможно, инициировать дискуссию.


Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments32

Опыт использования солнечной энергии в московском регионе: за, против и кому это нужно

Reading time7 min
Views43K
Привет, Хабр! Меня зовут Ярослав Медокс, в Сбертехе я занимаюсь технологиями корпоративно-инвестиционного бизнеса. В этой заметке пойдет речь о вполне обычном подмосковном загородном доме, ставшем по прихоти его хозяина полигоном для проверки солнечной энергетики.


Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments257

Мониторинг работы систем загородного дома: первые шаги к умному дому

Reading time12 min
Views20K

Предыдущая заметка вызвала довольно бурную дискуссию и это обстоятельство убедило меня в необходимости продолжения того, что мы называем «делиться опытом». Итак, мы остановились на том, что после появления в доме альтернативных источников энергии, в первую очередь солнечного коллектора, захотелось измерять параметры, сопровождающие их работу. Например, для того, чтобы видеть, как меняется температура солнечного теплоносителя, не перегревается ли вода в бойлере и т.д. Понятно, что само по себе измерение чего-либо и даже передача этой информации к месту потребления (телеметрия) не увеличивают комфорт или безопасность, поэтому сразу же в «ТЗ» внесен пункт об удаленном управлении различными исполнительными устройствами. В этой статье я не буду приводить листинги кода, детализировать до мелочей все технические решения. Моя цель – показать ход мысли и принятые технические решения, а также их результат. Тому, кто захочет пойти похожим путем всё равно придется самостоятельно решать множество задач.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments16

Information

Rating
Does not participate
Location
Пенза, Пензенская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Middle
Git
Linux
C
C++