Как стать автором
Обновить
9
0

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

Отправить сообщение

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

Время на прочтение5 мин
Количество просмотров39K

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

Читать далее
Всего голосов 99: ↑99 и ↓0+99
Комментарии102

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

Время на прочтение5 мин
Количество просмотров17K

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

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

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии78

Apple HomeKit

Время на прочтение6 мин
Количество просмотров4.2K

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

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

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

Время на прочтение5 мин
Количество просмотров12K

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии5

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

Время на прочтение15 мин
Количество просмотров9.6K
Lichee RV

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

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

Время на прочтение10 мин
Количество просмотров14K

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

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

Читать далее
Всего голосов 20: ↑19 и ↓1+26
Комментарии22

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

Время на прочтение9 мин
Количество просмотров25K

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

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

Читать далее
Всего голосов 35: ↑34 и ↓1+37
Комментарии9

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

Время на прочтение6 мин
Количество просмотров8.5K

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+14
Комментарии12

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

Время на прочтение17 мин
Количество просмотров12K

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии5

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

Время на прочтение6 мин
Количество просмотров41K

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

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии9

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

Время на прочтение6 мин
Количество просмотров8.5K


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

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

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

Время на прочтение9 мин
Количество просмотров4.8K

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии14

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

Время на прочтение11 мин
Количество просмотров16K

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

Go →
Всего голосов 10: ↑9 и ↓1+9
Комментарии10

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

Время на прочтение4 мин
Количество просмотров5.2K

Получив свой экземпляр (заказал еще до того как вышел 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 спасибо ему за это огромное...

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии20

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

Время на прочтение30 мин
Количество просмотров347K

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

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

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

3. Виджеты

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

Читать далее
Всего голосов 23: ↑22 и ↓1+26
Комментарии14

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

Время на прочтение9 мин
Количество просмотров14K

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

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

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

Читать далее
Всего голосов 14: ↑11 и ↓3+11
Комментарии6

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

Время на прочтение12 мин
Количество просмотров26K

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

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии10

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

Время на прочтение20 мин
Количество просмотров27K


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


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


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


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

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

Время на прочтение4 мин
Количество просмотров8.5K

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

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии20

Апгрейд системы для облачного гейминга: теперь с Nvidia и Moonlight

Время на прочтение5 мин
Количество просмотров9.8K

Третья, заключительная часть серии, посвященной пробросу видеокарт в виртуальную машину и организации облачной игровой системы для удаленного подключения по локальной сети с различных устройств.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+33
Комментарии13

Информация

В рейтинге
4 624-й
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность