
Сказ о том, как я строил очередную систему автоматики для полива и климат-контроля растений.
Пользователь
Сказ о том, как я строил очередную систему автоматики для полива и климат-контроля растений.
В интернете есть много информации о поиске похожих изображений и дубликатов. Но как построить свою систему? Какие современные подходы применять, на каких данных обучать, как валидировать качество поиска и куда смотреть при выводе в production?
В этой статье я собрал все необходимые компоненты поисковой системы на изображениях в одном месте, разбавив контент современными подходами.
Всем привет, я являюсь автором языка программирования Relax. На данный момент я разрабатываю RVM (RelaxVirtualMachine) И Relasm (Relax Assembly). Первые попытки сделать свой язык начались в конце лета 2020, тогда я и не думал что делать язык - это так сложно. Сам же проект Relax начался 30 декабря 2020 года. Прошло полтора месяца, а на нем уже можно написать что-нибудь простенькое. RVM написана на С++ и Qt.
Пару лет назад я обзавёлся топовым смартфоном одной южнокорейской компании. Среди его особенностей оказалась поддержка DeX - возможности запуска на большом экране, подключаемом к док-станции через HDMI, отдельных приложений и даже Linux в контейнере (к сожалению, последнее было убрано в свежей версии Android). Кроме того, порадовала поддержка периферийных устройств - так, внешняя звуковая карточка Asus Xonar U7, с которой у меня пущен сигнал на ресивер с большими колонками, завелась без проблем. Отсюда возникло желание превратить телефон в мини-рабочее место, научив делить периферию с системником - например, чтобы вой кулеров не мешал слушать музыку или смотреть видео. По сути, требовалось KVM-решение, удовлетворяющее ряду хотелок. Так я познакомился с Arduino.
Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.
Дисклеймер: меня зовут Эрик Бурыгин, я давно работаю тестировщиком, веду студентов на курсе «Инженер по тестированию», поэтому может показаться, что тестировщик просто хочет перекинуть кусок работы на разработчиков. На самом деле у описываемого подхода есть как плюсы, так и минусы, поэтому статья носит в том числе и дискуссионный характер. Буду рад увидеть в комментах мнения как разработчиков, так и тестировщиков.
Привет!
В среду, 24 февраля, мы проведем онлайн-митап для интересующихся практиками Agile.
Митап бесплатный, главное — зарегистрироваться заранее по ссылке. Всё действо займет пару часов (с 19.00 до 21.00).
Если вдруг захотите посмотреть, но по каким-то причинам не получится, то мы пришлем вам запись на почту, указанную при регистрации.
В программе 3 доклада от наших спикеров.
Программа митапа
В американском футболе атакующей команде дается 4 попытки, чтобы пройти 10 ярдов и тогда команда имеет право продолжить атаковать (владеть мячом). И очень часто, перед розыгрышем 4-ой попытки, тренерам приходится решать - попытаться добрать оставшееся до минимальных 10 ярдов с риском не дойти и отдать сопернику мяч в текущей точке поля, либо сразу пробить ногой по мячу, запнув мяч подальше, обезопасив так себя в защите. Чтобы облегчить принятие этого решения и повысить его эффективность в этой статье мы построим байесовскую модель.
Не так давно мне пришел счёт за газ от которого стало не по себе, и я решил интегрировать обычный счетчик газа в свой умный дом на базе Raspberry Pi + Home Assistant, чтобы прогнозировать стоимость расходов и получать предупреждения сразу же как только расход начинает превышать ожидания.
Первым делом я полез на Хабр, и к моему удивлению, среди не малого количества статей о том как считывать показания счетчиков, и даже пары статей непосредственно о снятии показаний со счетчика газа, ни в одной из них я не нашел того что искал.
Есть довольно интересная статья 2014 года об оптическом снятии показаний с любого счетчика с помощью смартфона, но в ней ни слова ни о Home Assistant вообще ни о его компоненте для оптического распознавания счетчиков в частности.
Есть статья 2018 года об универсальном недорогом устройстве для оптического снятия показаний с любого счетчика, которое я на тот момент был бы рад купить, но в свободную продажу оно до сих пор не попало.
Читая эти и другие статьи (например статью 2018 года про Вотериус, или статью 2020 года Умная хрущёвка на максималках) я понял, что счетчики делятся не на два поколения (offline и online), а на три. Помимо 3-го поколения счетчиков, которое умеет отправлять показания счетчика куда надо, есть еще 2-е, которое само передавать данные по сети не умеет, но снабжено передатчиком импульсов (оптических или магнитных), позволяющим подключить к счетчику модуль, который эти импульсы считывает и передает дальше.
Погуглив свой счетчик газа (им оказался BK-G4) я с радостью обнаружил не только то, что генератор магнитных импульсов в него встроен (магнитик на барабане младшего разряда), но и даже то, что уже есть успешные примеры его интеграции в Home Assistant.
Однако перед тем как заказывать специализированный (герконовый) датчик импульсов IN-Z61 (1640р с доставкой, устанавливается в специально предусмотренную для него выемку в корпусе счётчика), плату esp8266 (788р с доставкой), паяльник, олово, канифоль, ждать пока все это приедет, а потом канифолиться с этим конструктором, я решил проверить гипотезу, нельзя ли решить задачу существенно проще и дешевле.
Удача улыбнулась мне, и вместо недели ожидания и нескольких тысяч расходов, я в тот же день интегрировал счетчик в Home Assistant обычным датчиком открытия двери Xiaomi (модель MCCGQ01LM), горсть которых когда-то приобрел на Авито по 600р за штуку.
Я — индивидуальный предприниматель на УСН в сфере услуг, работаю в одно лицо. Некоторые контрагенты просят присылать им оригиналы закрывающих документов (актов).
Пользуюсь электронной почтой. За год отправляю, дай бог, 20 писем формата А5. Каждое обходится в среднем около 30 рублей. Письма отправляю обычные, не заказные. Если не дойдет, отправлю повторно, но такого еще не случалось. Мои расходы на почтовый документооборот, таким образом, составляют 20 * 30 = 600 рублей в год.
Но сейчас модно использовать ЭДО и некоторые контрагенты предлагают обмениваться документами, подписанными электронной подписью. Ну что же, я не против беречь природу и бумагу, занялся изучением вопроса.
Т.к. я программист, то кое-что понимаю в криптографии. Суть электронной цифровой подписи (ЭЦП) в том, что у вас есть закрытый и открытый ключ. Любой документ можно подписать закрытым ключом и отправить клиенту подпись, где будет содержаться сама сигнатура подписи и открытый ключ, с помощью которого можно определить, что документ действительно подписан этим ключом. Ну а действительность ключа проверить в центрах сертификации, которые по цепочке сертификатов ведут к Министерству связи РФ.
По сути, то же самое, что печать. Купил печать и можешь ставить ее на документы.
Многие руководства по установке слишком переусложнены из-за использования специфических утилит типа anaconda, livecd-tools, Fedora Media Writer и других, или создания файла сценария kickstart. В системе Fedora уже имеются необходимые средства для настраиваемой установки. Эта статья покажет пример для установки на USB флешку и на жёсткий диск
Внимание! Всё, что вы делаете, вы делаете на свой страх и риск, т.к. операции из этого руководства могут привести к частичной или полной потере данных.
Примечание: Предположительно используется базовая система, установленная на /dev/sda, а целевой диск или флешка подключены к /dev/sdb. В вашем случае это может быть другой диск, к примеру SSD M.2 накопитель, распознанный системой как /dev/nvme0n1
Вторая часть поста про то, как сделать, чтобы продуктовая agile-команда выполнила задачу к определенному сроку, но при этом не изменила принципам работы по потоку. Первая часть поста посвящена описанию нашего подхода к работе продуктовых команд, а также тому, что в вытягивающей системе основными инструментами управления сроками становятся не перенос ответственности за сроки на исполнителя (команду), а прозрачность и прогнозируемость работы этой команды. Ниже остановимся на метриках команд и их использовании при прогнозировании сроков и синхронизации исполнения задач.
Метрики
Основной тип событий в нашей модели — перемещение задачи из одной области нашей карты в другую, их мы и будем оцифровывать в метриках.
Наша самая главная метрика — Lead Time: это характерное время, за которое задача доходит от одной из четырех контрольных точек (появление идеи, ТПР, Х и ТПО) до установки на продуктив.