Pull to refresh
9
0
Send message

Удаленный доступ к IP камерам. Часть 3. HEVC и web

Reading time11 min
Views11K

HEVC (High Efficiency Video Coding — высокоэффективное кодирование видеоизображений), также известный как H.265, это видеокодек, широко используемый, в том числе, в системах видеонаблюдения. До недавнего времени веб браузеры практически не поддерживали этот формат. Но ситуация изменилась с выходом браузеров Chrome/Chromium версии 106. Это событие показалось мне достойным упоминания на Хабре, и в этой части статьи я расскажу, почему поддержка HEVC важна, о своих попытках подружить IP камеры с браузером и что из этого получилось.

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

Система увлажнения воздуха для дома или квартиры

Reading time5 min
Views40K

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

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

КриптоПро в Linux контейнере для использования КЭП от ФНС

Reading time5 min
Views18K

С Нового Года в России от Индивидуальных Предпринимателей (ИП) и директоров Обществ с Ограниченной Ответственностью (ООО) требуют использовать Квалифицированную Электронную Подпись (КЭП) выданную Федеральной Налоговой Службой (ФНС).

В этой статье речь пойдёт о том, как работать с КЭП от ФНС под Linux без головной боли.

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

Apple HomeKit

Reading time6 min
Views4.3K

В данной статье речь пойдет про Apple HomeKit Accessory Protocol (HAP): внутренности и разработку контроллера.

Apple HomeKit создан для взаимодействия контроллера (по умолчанию iOS-устройства, приложение Home) и множества устройств(аксессуаров). Протокол открыт для некоммерческого использования, загрузить его можно с сайта Apple. На основе этой версии протокола создано несколько open-source проектов, и когда говорят про HomeKit на каком-нибуль Raspberry Pi обычно подразумевают установку homebridge и плагинов для создания совместимых аксессуаров.

Обратная же задача - создание контроллера - не такая распространенная и из проектов мне удалось найти лишь pypi.org/project/homekit/.

Поставим задачу создать контроллер, например, для управления аксессуарами с Android-телефона и попробуем ее решить. Для простоты будем работать только с IP-сетями, без Bluetooth.

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

Шлюз Modbus RTU с поддержкой Ethernet

Reading time5 min
Views12K

Существует большое разнообразие WI-FI модулей на основе чипа ESP32. Как правило, основной канал передачи и получения данных  WI-FI, реже Bluetooth, т.е. беспроводные технологии, не требующие дополнительного «обвеса».  Достаточно создать web страницу и используя браузер управлять всеми настройками.  Используя эту концепцию мне удалось создать серию интерфейсных плат в разном форм-факторе, от встраиваемых  до внешних универсальных  с дополнительными функциями.   Пришло время добавить и проверить работу  проводного интерфейса Ethernet.

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

Программирование на Python и установка Docker для Sipeed Lichee RV RISC-V

Reading time15 min
Views9.6K
Lichee RV

В первой части познакомились с процессором Allwinner D1 на RISC-V архитектуре, рассмотрели возможности, поработали с одноплатным компьютером Sipeed Lichee RV. Старый образ операционной системы содержал многие недоработки, которые не позволяли полностью оценить работу одноплатника. В продолжение рассмотрения Lichee RV, возьмем новый образ Ubuntu, построенный на последнем ядре Linux 5.19, окончательный выпуск которого ожидается в конце июля 2022 года. Поработаем с GPIO из Python`а и установим Docker. Теперь полноценно протестируем новый образ, проверим на что способна плата и начнем уже программировать на Python.
Читать дальше →
Total votes 17: ↑16 and ↓1+18
Comments6

DIY термоанемометр: собираем датчик скорости и температуры потока воздуха своими руками

Reading time10 min
Views15K

Пошаговое описание сборки дешевого, автономного и точного датчика скорости потока воздуха на базе wifi-контроллера WEMOS D1 и сенсора CG_Anem. Схемы, электронные компоненты и матчасть перемешаны с историями из жизни, примерами измерений и шутками за 300.

Целью статьи, как и всегда, является создание максимально подробной инструкции по сборке. Если повторить описанные шаги сможет самый юный мамкин анемометрист - мы достигли успеха.

Читать далее
Total votes 20: ↑19 and ↓1+26
Comments22

Имплементируем WebSocket протокол на Go

Reading time9 min
Views25K

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Total votes 35: ↑34 and ↓1+37
Comments9

Экспортируем модули из Go-сервиса: сотворение директории pkg

Reading time6 min
Views8.7K

Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.

Как оказалось, при экспорте библиотеки из сервиса может возникнуть множество нюансов. В этой статье мы разберём, как сделать внешнюю библиотеку максимально удобной как для сервиса, который её экспортирует, так и для импортёров.

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments12

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

Reading time17 min
Views12K

В предыдущей статье мы рассмотрели использование Go для создания веб-приложений (с выполнением через Web Assembly). Но прежде всего Go интересен как язык для реализации высокопроизводительных и неблокирующих решений на стороне сервера и в этой статье мы изучим использование Go для backend на примере разработки API для мобильного приложения для совместного редактирования списка покупок. Приложение будет включать в себя механизмы авторизации, запроса и модификации объектов, а также мгновенные уведомления (через веб-сокеты и Push) и мониторинг доступность API. В качестве примера мы создадим минимальный API, для которого обеспечивается уведомление всех зарегистрированных пользователей об изменении списка, а также будут предусмотрена отправка пуш-уведомлений всем адресатам по запросу.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments5

Как интегрировать авторизацию через Госуслуги (ЕСИА) с помощью Docker и Typescript

Reading time6 min
Views42K

Привет, Хабр! В одном из постов блога мой коллега Иван писал о нашем блокчейн-сервисе для онлайн-голосований WE.Vote. Он подробно разобрал, как работает WE.Vote с точки зрения технологий. Но чтобы сервисы удаленного голосования можно было использовать для принятия официальных решений юрлиц, не хватает еще одного важного компонента — достоверной верификации участников. В России для этого можно провести интеграцию с ЕСИА (Единой Системой Идентификации и Аутентификации) — проще говоря, с Госуслугами. Интеграция эта заметно отличается от интеграции с другими oauth2-сервисами, как, например, Google или VK. В этом посте мы постараемся помочь тем, кто захочет интегрировать ЕСИА в свой сервис через стек, подобный нашему, а также дадим несколько полезных ссылок по ЕСИА в принципе.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments9

Kincony KC868-A16: контроллер 16-го уровня

Reading time6 min
Views9K


Итак, мы с вами потренировались на начальных контроллерах компании Kincony (KC868-A4, KC868-A8, KC868-Uair, KC868-AG) и теперь переходим в «высшую лигу» и разберём устройство и назначение более серьёзного контроллера KC868-A16. Это представитель всё той же линейки ESP32 контроллеров Kincony для DIY и малой автоматизации, но имеющий другую архитектуру и некоторые дополнительные (долгожданные) возможности, например, встроенный интерфейс RS485.

Здесь всё также присутствует возможность работы как по беспроводному Wi-Fi, так и по проводному Ethernet, возможность работы с беспроводными устройствами 433 МГц и подключения дополнительного оборудования и т. д., но не будем забегать вперёд и постараемся обстоятельно разобраться с тем, что же представляет собой Kincony KC868-A16 и как его можно использовать в вашем хозяйстве.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments15

Компьютерная археология

Reading time9 min
Views4.8K

Здравствуй, Хабр!

Заметка для любителей «винтажа», для тех, кто интересуется историей миникомпьютеров. В преддверии новой эры устройств IoT - HummingBoard Pro на процессоре Freescale i.MX6 Quad и с дизайном Raspberry Pi 1 Model B. Особенности и попытка добиться низкого энергопотребления (и даже меньше!), сравнимого с Raspberry Pi 3А+.

Читать далее
Total votes 9: ↑8 and ↓1+9
Comments14

Инструменты выполнения фоновых задач в Go

Reading time11 min
Views17K

Итак, вы начали разработку на Go и столкнулись с задачей запуска куска логики приложения в фоне. Какие есть варианты? Их очень много, и в статье я постараюсь помочь с выбором конкретного инструмента для фонового запуска кода. Иногда в работе я замечаю, что у разработчиков, пришедших из других языков, бывают проблемы с пониманием, какие лучше использовать для этого инструменты в Go. Тут не будет подробного руководства по каждому из инструментов, но я постараюсь помочь проще и быстрее вникнуть в основные методы фонового запуска бизнес-логики и выбрать наиболее подходящий.

Go →
Total votes 10: ↑9 and ↓1+9
Comments10

Стартуем RISCV Sipeed LicheeRV — Nezha CM C906 без официального SDK

Reading time4 min
Views5.3K

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

В принципе, я никогда не интересовался продуктами вроде Banana Pi или Orange Pi от Allwinner, взглянув на официальное чудо, я понял почему от этих продуктов все так воротят нос:

— Прошивки для не китайцев "заботливо" лежат на MEGA (хочешь качать - плати деньги...)

— Для прошивки карт используется "замечательный" инструмент под названием PhoenixCard (судя по китайским форумам он не слушается даже китайцев), который работает под Windows (что всегда хорошо!)

— Официальный "SDK" обернут вместе c rootfs и разбит на архивы общей суммой >10 Gb (да-да и лежит на MEGA - то есть все равно заплатишь)

— И изюминка - все образы в комплекте расчитаны на карты ёмкостью больше 16 Gib (у наших друзей написано 16 GB - card_needs_≥16GB.txt)

Квест про реверс (он в конечном счете не понадобился) и печальное ковыряние палкой данного продукта жизнедеятельности (то что я собрал с помощью SDK, так и не заработало...) мы опустим, так как, я наконец наткнулся на гайд для Sipeed Nezha от дяди Samuel'a Holland'a спасибо ему за это огромное...

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

PyQt6 — полное руководство для новичков

Reading time30 min
Views360K

К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt для новичков. Чтобы читать было удобнее, мы объединили несколько статей в одну:

1. Первое приложение

2. Слоты и сигналы

3. Виджеты

За подробностями приглашаем под кат.

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments14

Автореконнекты к RabbitMQ в Go

Reading time9 min
Views14K

Брокер сообщений RabbitMQ уже давно активно используется в микросервисах. Он используется, когда требуется асинхронная обработка сообщений от клиентов или при аналогичном межсервисном взаимодействии.

Практически нет языка, под который не была бы сделана соответствующая клиентская библиотека. Для Go такой библиотекой является github.com/streadway/amqp (далее по тексту библиотека amqp). Она имеет широкий функционал, можно подключаться к RabbitMQ, создавать каналы, настраивать очереди и exchange. Не хватает только самой малости – реконектов. А именно автоматических реконнектов при потери связи.

Поиск в Google показывает, что есть много различных решений. На проекте, где я работаю, мы создали ещё парочку. Но не найденные в сети, не уже созданные не устраивали по ряду причин:

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

Overpass API: следующий уровень владения OpenStreetMap

Reading time12 min
Views27K

В своих различных геосервисах мы используем данные OpenStreetMap (OSM). Данные в OSM заносятся, в основном, через специальные программы-редакторы, про самые популярные из которых мы писали тут и тут. На программном уровне редакторы общаются с главным сервером через OSM API. Этот API работает как на чтение, так и на запись и предоставляет лишь минимально необходимые возможности. Через него выборку можно ограничить только прямоугольником, но не произвольной полигональной областью, также нет ни фильтрации данных, ни способов их преобразования перед отправкой клиенту. Но что делать, если тебе нужно выбрать данные из OSM, отсеив много лишнего, желательно сразу показать результаты на карте, и при этом ты ни разу не программист? Тут-то на помощь и приходит Overpass API — мощный инструмент запросов к данным OSM, и Overpass Turbo — веб-приложение, предоставляющее графический интерфейс к Overpass API и дополнительные удобства при работе с запросами.

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

Пишем сервис на GO. Runtime контроллер и Graceful Shutdown

Reading time20 min
Views27K


Напишем вместе HTTP-сервис на golang с нуля? Я уверен, что это довольно несложно. Для тех, кто каждую неделю этим занимается, моя статья не будет особенно интересна, но я все равно рекомендую взглянуть и оценить, возможно, ваши комментарии спасут кому-то жизнь. А может кое-какие из моих рассуждений спасут вашу.


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


Это первая часть. Первые шаги в нашем нелегком пути. И в этой статье мы попробуем достичь следующих целей:


  • Выработаем понимание структуры и жизненного цикла приложения.
  • Формализуем наше представление жизненного цикла на языке go.
Читать дальше →
Total votes 15: ↑13 and ↓2+13
Comments19

Мониторинг электросчетчиков за один вечер

Reading time4 min
Views8.6K

Имеется 25 счетчиков электроэнергии Меркурий 236 ART, объединенных сетью RS485 для дистанционного получения данных. Появилась задача - как можно скорее организовать мониторинг состояния приборов учета и в автоматическом режиме сохранять значения накопленной ими энергии.

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

Information

Rating
6,342-nd
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity