Pull to refresh
0
Максим В Ефимов @Efimomaxread⁠-⁠only

User

Send message

Интеллектуальная панель Sunton 7″ на базе ESP32S3

Level of difficultyMedium
Reading time7 min
Views8K
image
Отображение информации это один из важнейших аспектов автоматизированных систем.

В IoT системах роль терминала чаще всего выполняет смартфон или компьютер. Но иногда и в умном доме удобно иметь автономную операторскую панель

На сайте Makerfabs в разделе OpenHardware появились интеллектуальные дисплеи Sunton 4.3″, 5″ и 7″ на базе ESP32S3. Из них и герой обзора — панель ESP32-8048S070, купленная на Алиэкспресс за 3000 руб. вместе с доставкой.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

Анализ и обнаружение Dirty Pipe

Level of difficultyMedium
Reading time12 min
Views3.1K

Привет, Хабр!

Я, Алексей, исследователь‑аналитик киберугроз в компании R‑Vision. Сегодня мы с вами поговорим об уязвимости DirtyPipe CVE-2022-0847 и рассмотрим возможные способы обнаружения эксплуатации данной уязвимости.

Критичные уязвимости Linux ядра выходят не так часто, но при этом несут особую опасность, так как затрагивают сразу множество дистрибутивов, работающие на уязвимой версии ядра. Зачастую данные уязвимости могут быть проэксплуатированы даже из "ограниченных" сред контейнеров, если на хостах не настроены дополнительные политики безопасности (hardening). Для их устранения обычно требуется обновить само ядро, что может быть нести порой большие риски для промышленных систем. Одна из таких - DirtyPipe.

Данная уязвимость публично была раскрыта в марте 2022 и затронула версии Linux ядра начиная с версии 5.8, и была исправлена в версиях 5.16.11, 5.15.25, and 5.10.102. Данные версии ядра популярны во многих известных дистрибутивах, включая тот же Android. И хоть с момента выхода патчей прошло достаточно времени, далеко не во всех компаниях они установлены.

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

Уязвимость позволяет непривилегированному (non-root) пользователю вносить изменения в файл, который доступен только для чтения, то есть файл имеет права read для текущего пользователя. По сути это позволяет получить root'a разными способами. При построении возможно детектирования мы не будем заострять внимание на пост эксплуатационных шагах, а рассмотрим, как можно мониторить обращения к ядру, чтобы распознать попытки эксплуатации.

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

Starting Electronics: руководство по веб-серверам на Arduino. Часть3. Управление светодиодом с веб-страницы

Reading time6 min
Views8.1K


От переводчика. Поскольку при переводе и публикации на Хабре некоторые разделы оригинального руководства были скомпонованы друг с другом, то нумерация частей оригинала и перевода не совпадает — у нас это 3-я часть, а в оригинале — 5-я.

В этой части автор переходит к самому интересному — управлению оборудованием с веб-страницы. В данном случае это светодиод, но по этому же принципу можно управлять любыми актуаторами, подключёнными к контроллеру.

Мы уже умеем работать с веб-страницами, хранить их на SD карте памяти, а теперь ещё научимся в динамике управлять подключённым оборудованием.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments0

Когда вам нужно сообщить об использовании шифрования вашим приложением?

Reading time4 min
Views1.4K

Когда вам нужно сообщить об использовании шифрования вашим приложением?

Ваше приложение использует шифрование? - Это первое, что вы прочтете после нажатия кнопки «Отправить на проверку» в App Store Connect. На этот вопрос довольно легко ответить, но после того, как вы ответите на него, вы получите уведомление о том, что вам необходимо представить отчет о самоклассификации на конец года.

Читать далее
Total votes 8: ↑3 and ↓5-2
Comments1

Резервное копирование и восстановление СУБД PostgreSQL

Reading time7 min
Views41K

Резервное копирование является одной из основных задач администрирования баз данных. Отсутствие бэкапа может привести к катастрофическим последствиям при эксплуатации базы данных. Однако недостаточно только настроить регулярное создание резервных копий, необходимо также регулярно проверять созданные копии на способность к восстановлению БД. В этой статье мы поговорим от том, как правильно настраивать резервное копирование в БД PostgreSQL.

Читать далее
Total votes 14: ↑11 and ↓3+10
Comments17

Подпись на эллиптических кривых: всё, что нужно знать, чтобы подписать транзакцию в Bitcoin с полного нуля

Reading time18 min
Views27K

Это - полный разбор алгоритма подписи на эллиптических кривых (ECDSA), который является ключевым элементом большинства блокчейнов (типа Bitcoin, Ethereum, ...). С примерами кода и реализацией с полного нуля. Всё сведено к уровню школьной математики, а читать код не обязательно!)

Читать
Total votes 83: ↑83 and ↓0+83
Comments35

Самописные компоненты в конвейере обработчиков ASP.NET Core: подключение и доступ к сервисам

Reading time26 min
Views6.4K


В этой статье я хочу рассказать о том, как расширяются возможности ASP.NET Core по обработке запросов к веб-серверу с помощью самостоятельно написанных компонентов конвейера обработки.


Обычно для разработки серверной части веб-приложений (по-простому — бэка) с помощью ASP.NET Core имеет смысл использовать базирующиеся на нем фреймворки высокого уровня: MVC Core, Razor Pages и т.д.: они позволяют с минимумом усилий решать типовые задачи. Но встречаются задачи нетиповые, которые требуют для своего решения перейти на более низкий уровень (или, по крайней мере, понимать, что на этом уровне происходит) — на уровень базовых возможностей ASP.NET Core. И в этой статье как раз рассказывается об использовании одной из этих базовых возможностей — компонентов middleware, из которых создается конвейер обработки запросов к веб-серверу. Далее в статье я буду называть их компонентами-обработчиками, потому что официальный перевод из документации от MS — "ПО промежуточного слоя" — он некрасив и не описывает их функции. Конкретно в статье рассматривается, какие средства предоставляет фреймворк ASP.NET Core для создания самописных компонентов-обработчиков. И особое внимание уделено тому, как эти компоненты могут получить доступ к другой базовой возможности ASP.NET Core — сервисам, которые зарегистрированы в контейнере сервисов (он же — "DI-контейнер"), как к стандартным для ASP.NET Core, так и к самописным.

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

WebRTC для всех и каждого. Часть 1

Reading time26 min
Views60K



Привет, друзья!


Представляю вашему вниманию первую часть перевода этой замечательной книги по WebRTC. Данная часть посвящена тому, что такое WebRTC, процессу сигнализации и установки соединения (первые 3 части оригинала).


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


Ссылка на вторую часть перевода.


Если вам это интересно, прошу под кат.

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

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Reading time37 min
Views12K
Weather station Banana Pi BPI-M64 Linux C# Docker RabbitMQ AvaloniaUI

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.
Читать дальше →
Total votes 13: ↑12 and ↓1+18
Comments62

Мониторинг и управление потоком задач в рамках взаимодействия микросервисов

Reading time11 min
Views7.4K


Ключевые тезисы:

  • Взаимодействие между компонентами напрямую друг с другом может привести к неожиданному поведению, в котором сложно будет разобраться разработчикам, операторам и бизнес-аналитикам.
  • Чтобы обеспечить устойчивость бизнеса, вам нужно видеть все возникающие в системе взаимодействия.
  • Добиться этого позволяют разные подходы: распределённая трассировка, обычно не учитывающая бизнес-аспекты; озёра данных, требующие заметных усилий по настройке получаемых срезов данных; отслеживание процессов, когда вам приходится моделировать интересующий поток задач; контроль и анализ процессов (process mining), позволяющие исследовать поток задач; и вплоть до оркестрации, в которой прозрачность процессов уже имеется.
  • Мы поговорим о том, что вам нужно балансировать между оркестрацией и хореографией микросервисной архитектуры, чтобы понимать, управлять и менять свою систему.
Читать дальше →
Total votes 29: ↑22 and ↓7+19
Comments1

14 свежих и полезных дизайн-ресурсов в Январе

Reading time5 min
Views5.2K

Что в сегодняшнем выпуске: различные генераторы, крутые источники для вдохновения, стильные иконки, топовые продукты из Product Hunt за 2020 год, инструменты для экспорта анимаций и гифок, и многое другое.

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

Ультимативный список инструментов для разработчиков и опытных пользователей для Windows

Reading time6 min
Views71K
Можете ли вы поверить, что с момента моего последнего списка инструментов прошло 6 лет? Инструменты изменились, многие из них доступны онлайн, но, честно говоря, для составления нового списка инструментов требуется ОЧЕНЬ МНОГО РАБОТЫ. Но я смог, вот список на 2020-2021 годы. Это инструменты в моей папке Utils. Я создал папку d:\dropbox\utils и добавил ее в свой PATH. Таким образом, он будет на всех моих компьютерах, и я могу мгновенно добраться до любого из них.

Это обновленный до версии 2020-21 мой список 2003, 2005, 2006, 2007, 2009, 2011 и 2014 годов, который в настоящее время включает все остальные мои списки. Я занимаюсь этим более 17 лет. Вау. Думаю, стоит тратить на это больше времени.

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

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

Эту статью написал наш коллега Скотт. Вот версия на английском. Ну а сам список под катом.

Читать дальше →
Total votes 50: ↑43 and ↓7+49
Comments164

Производительность Raspberry Pi: добавляем ZRAM и изменяем параметры ядра

Reading time4 min
Views22K
Пару недель назад я опубликовал обзор Pinebook Pro. Поскольку Raspberry Pi 4 тоже основана на ARM, то для неё вполне подходят некоторые из оптимизаций, упомянутых в предыдущей статье. Хотел бы поделиться этими хитростями и узнать, проявятся ли у вас такие же улучшения в производительности.

После установки Raspberry Pi в свою домашнюю серверную я заметил, что в моменты дефицита оперативной памяти она становилась очень невосприимчивой и даже подвисала. Чтобы решить эту проблему, я добавил ZRAM и внёс несколько изменений в параметры ядра.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

RabbitMQ. Часть 2. Разбираемся с Exchanges

Reading time7 min
Views161K

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

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

Как QA-инженер сэкономил целый день работы, связав автотесты в Visual Studio и Test IT

Reading time7 min
Views4.7K
Современный рабочий инструментарий разработчика представляет собой с десяток самых разных приложений: IDE, тестовая система, различные фреймворки, системы контроля версий и контейнеризации, офисные приложения и многое другое.

И зачастую мы, сами того не замечая, тратим драгоценное время на перенос данных из одной рабочей системы в другую. Но почему бы нам не заняться оптимизацией рабочего процесса, пусть даже в мелочах? Пять минут, умноженные на 5 раз в день, дадут нам в сумме более одного рабочего дня в месяц времени, которое можно потратить куда полезнее, чем на выполнение рутинной работы. Так мы пришли к созданию расширения для Visual Studio, позволяющего нам автоматизировать процесс создания автотестов в нашей системе Test IT.

Продолжая историю про вебхуки и то, как они помогают связывать множество сервисов при работе, представляем вашему вниманию наш рассказ о создании расширения для нашей рабочей IDE – Visual Studio. Добро пожаловать под кат!

Эта статья — гостевая публикация от ребят из Test IT

Читать дальше →
Total votes 4: ↑3 and ↓1+3
Comments0

Логирование в микросервисной среде .Net на практике

Reading time8 min
Views17K


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


В .Net Core 3 добавилась отличная возможность передачи контекста корреляции в HTTP-заголовках, поэтому если ваши приложения используют прямые HTTP-вызовы для межсервисного взаимодействия, то вы можете воспользоваться этой коробочной функцональностью. Однако, если архитектура вашего бекенда подразумевает взаимодействие через брокера сообщений (RabbitMQ, Kafka и т.п.), то вам по-прежнему необходимо озаботиться темой передачи корелляционного контекста через эти сообщения самостоятельно.


В этой статье мы возьмём простое веб-апи приложение и организуем логирование, которое будет


  • сохранять сквозную корелляцию между логами независимых сервисов так, чтобы можно было легко посмотреть все активности, которые были вызваны конкретным запросом с клиента

  • иметь единую точку входа с удобным анализом, чтобы инструментом логирования смогла пользоваться даже Поддержка, к которой летят вопросы вроде «у меня тут в приложении выскочила ошибка с таким-то айдишником запроса»


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

Управление ESP32 через BLE

Reading time4 min
Views21K

Интро


Уже сравнительно давно микроконтроллер ESP32 стал неким стандартом для множества DIY проектов. И действительно, возможность работы с Wi-Fi, Bluetooth, встроенная энергонезависимая память, а так же большое число выводов позволяют сделать массу интересных проектов.

В этой статье, мы поговорим про управление конроллером с помощью BLE используя доступные в AppStore приложения. А в следующей, если она будет, про создание собственного приложения для iOS.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments2

Распознаём дату и время в естественной речи

Reading time10 min
Views15K


Задача


Привет, Хабр! Увлёкся я навыками для Алисы и стал думать, какую пользу они бы могли принести. На площадке много разных прикольных игр (в том числе мои), но вот захотелось сделать рабочий инструмент, который действительно нужен в голосовом исполнении, а не просто копирует существующего чат-бота с кнопками.


Голос актуален тогда, когда либо руки заняты, либо нужно выполнять много последовательных операций, особенно на экране телефона. Так возникла идея навыка, который по одной команде выделяет из текста указание на дату и время и добавляет событие с этим текстом в Google Calendar. Например, если пользователь скажет Послезавтра в 11 вечера будет красивый закат, то в календарь на послезавтра в 23:00 уходит строка Будет красивый закат.


Под катом описание алгоритма работы библиотеки Hors: распознавателя даты и времени в естественной русской речи. Хорс — это славянский бог солнца.


Github | NuGet

Total votes 48: ↑47 and ↓1+46
Comments35

Dynamic в C#: рецепты использования

Reading time4 min
Views13K
Это заключительная часть цикла про Dynamic Language Runtime. Предыдущие статьи:

  1. Подробно о dynamic: подковерные игры компилятора, утечка памяти, нюансы производительности. В этой статье подробно рассматривается кэш DLR и важные для разработчика моменты, с ним связанные.
  2. Грокаем DLR. Общий обзор технологии, препарирование DynamicMetaObject и небольшая инструкция о том, как создать собственный динамический класс.

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


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

Простой способ создания голосового оповещения в системе Домашней автоматизации («Умный дом»)

Reading time4 min
Views11K
Протестировав консольный SIP клиент Linphonec, увидел в нём возможность простого и быстрого способа реализации оповещения голосом на мобильный телефон, для домашней системы автоматизации.

Думаю данный способ подойдёт для многих DIY систем автоматизации своего дома, приведу свой вариант.

Имею систему автоматизации «Умный дом» MajorDoMo, которая установлена на одноплатный компьютер Raspberry Pi (под управлением ОС Raspbian (Debian 9).

Создадим возможность оповещения от MajorDoMo к смартфону без использования дополнительного оборудования и своего VoIP сервера.

Краткий принцип действия оповещения: в случае критичной аварии (перечень аварий каждый может определить для себя свой), система автоматизации управляет консольным VoIP клиентом и вызывает хозяина по SIP протоколу, после ответа проигрывает ранее записанный звуковой файл с сообщением об аварии.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments10
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity