Как быстро найти цены на совместимую с Home Assistant бытовую технику: мой опыт автоматизации поиска цен

Подбор бытовой техники для своего умного дома может быть сложной задачей. Даже если техника имеет "умную часть", не факт что она подойдёт именно к вашей экосистеме. Поэтому вопрос совместимости лучше выяснить ещё до покупки устройства.
Недавно захотел подобрать себе робот-пылесос, а на сайте Home Assistant как обычно указаны только обобщенные интеграции. При этом на сайте Алисы приведены тысячи конкретных совместимых устройств, правда без цены и даже без указания выпускается ли до сих пор эта модель или нет.
И тут мне пришла в голову идея: поместить эти совместимые устройства в Google Таблицу, а затем написать Google Apps Script, который через поиск найти цены на все эти устройства, а затем я уже выберу конкретное устройство исходя из моего бюджета.
Поиск цен через Гугл ТаблицуИнтервью с командой проекта «Поморский коч»

Когда речь заходит о САПР, чаще всего представляешь себе промышленное производство, конструирование сложных механизмов. Однако находятся и более любопытные варианты применения систем проектирования, например, историческое судостроение.
Мы познакомились с командой проекта «Поморский коч», которая строит на верфи в Архангельске старинное судно. На таких судах средневековые мореплаватели ходили по арктическим морям, преодолевая льды и шторма, и осваивали сибирские реки.
Читать далееПрограммный код в Big data и Power law
В статье приводятся оригинальные модули Python и даётся пояснение по их применению в задачах распределённой децентрализованной сети по типу блокчейн или, другими словами, в процессах самоорганизованной критичности (SOC). В научных публикациях чаще встречается физический термин SOC в качестве концепции, включающей процессы турбулентности, детонации, землетрясения, нейросети, фондовая волатильность, социальный рейтинг и другие.
Для процессов SOC характерно отсутствие управляющих параметров и масштабная инвариантность. Универсальность сложных процессов SOC со степенным законом Power law имеет тот же характер, как и универсальность простых линейных систем, не обладающих масштабной инвариантностью, по отношению к закону нормального распределения вероятности.
Зависимость от масштаба возникает при аналого-цифровом преобразовании битов в позиционную систему счисления и проявляется в законе нормального распределения вероятности в виде дисперсии и математического ожидания. Потеря масштабной инвариантности в позиционной системе счисления компенсируется приобретением принципа причинности. Например, в Древнем Риме, где была принята непозиционная система счисления, вычисляли, что «после того - не вследствие того» и сильно удивились бы истории с падающим на Ньютона яблоком.
Значительные достижения в анализе Big data заставляют предположить связь с распределением вероятности Пуассона: чем больше данных, тем чаще должны встречаться пуассоновские события и вопрос лишь в поиске подходящей метрики и системы счисления.
Читать далееФундаментальная проблема TLS/SSL или как потерять доверие к доверенным центрам

Сегодня HTTPS считается де-факто стандартом для безопасного сёрфинга веб-страниц, но знаете ли вы о подводных камнях, на которые мы натыкаемся в самый неудобный момент? Сегодняшняя статья расскажет о самой главной из них, а так же о способе её исправления.
Поехали!Вывоз вторсырья от двери, помощник для тренировок – и еще 8 российских стартапов

10 новых российских продуктов для создания игровых квизов, создания мини-приложений для медклиник, поиска автодилеров и поставщиков авто по параллельному импорту и многого другого. Битва за «Продукт недели» началась!
Product Radar — здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.
Читать далееКак красиво «завернуть» devops-пайплайн и не сгореть на проде

Привет, Хабр! Меня зовут Максим Бочкарев, в IT я с 2005 года и сейчас руковожу devops-направлением в компании ЕВРАЗ. За эти годы я успел повидать множество граблей, на которые мы наступали, пытаясь построить нормальную систему CI/CD. И сегодня хочу рассказать, как мы прошли путь от «кустарного производства» пайплайнов к промышленным масштабам, не потеряв по дороге ни одного девопса и не спалив продакшен.
Читать далееГрех не использовать? Станет ли Dante лекарством от всех болезней AV over IP

В коммерческих цифровых аудиосетях нет закрытых экосистем с ограничениями, которые нельзя обойти. За это стоит поблагодарить Dante. Протокол, разработанный Audinate для передачи несжатого аудио по IP, без костылей решил проблемы дрейфа таймингов, джиттера, приоритизации аудиотрафика в гигабитных сетях. И, что особенно ценно, сделал это без привязки к одному производителю.
Фактически Audinate поставили на себя — создали отраслевой стандарт в AVoIP, получили поддержку 600 производителей оборудования* и сохранили независимый статус. Но будет ли эта база достаточной, чтобы стать конкурентом в NDI в AVoIP — большой вопрос.
Читать далее[Перевод] Как ИИ трансформирует разработку стратегии

Искусственный интеллект уже трансформирует стратегию бизнеса, ускоряя анализ данных, снижая влияние когнитивных искажений и помогая компаниям находить новые конкурентные преимущества. Генеративные модели не только упрощают исследования и прогнозирование, но и становятся интеллектуальными партнёрами, интерпретируя тренды и моделируя сценарии. Однако широкое внедрение ИИ ставит перед стратегами новые вызовы: как избежать шаблонных решений и выделить главное среди потока данных? И какие шаги помогут бизнесу эффективно интегрировать искусственный интеллект в стратегическое планирование? Об этом — в нашей статье.
Читать далееПроцедура обнаружения взаимоблокировок в PostgreSQL
РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.
Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.
Процедура обнаружения взаимоблокировок
Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.
Процедура обнаружения взаимоблокировок относительно трудоёмка, так как набор блокировок не дерево, а граф. В графе проверяется наличия колец, которые указывают на взаимоблокировки.
Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?
Читать далееКак WirenBoard помогал садоводству

У всех IT-шников есть свободное время. Его не всегда достаточно и иногда хочется заменить своё присутствие алгоритмом или целой системой. А кому-то хочется отдохнуть от моделей, потоков данных, презентаций и совещаний. Но что делать, если 5 дней в неделю ты занят, а на даче нужен полив?
Перефразируя Валентина Берестова:
Как автономно поливать?
Чтоб свояка не доставать
И лишку не трясти соседа
Не ждать дождя после обеда.
А так, чтобы само включилось
Само пролилось, освежилось.
Где надо подогрев сработал,
А у меня свои заботы!
Конфликт глазами работника
На Хабре много статей с инструкциями о том, что работодателю нужно делать в случае возникновения конфликта между работниками или между работником и работодателем.
На днях, в одном из телеграм-каналов снова была поднята эта чувствительная тема но уже описанная так, как её видит работник, а не работодатель. При поверхностном поиске на Хабре, я не нашёл ответа на вопрос: что в случае конфликта нужно делать работнику.
То есть вопрос не раскрыт, периодически поднимается в обществе и интерес к нему не ослабевает. Поэтому хочу поделиться своими мыслями на этот счёт и выслушать советы от сообщества.
Историю, побудившую меня написать эту статью, поведал широкой публике тот самый работник, у которого возник конфликт. Необычное в этой истории то, что рассказчик описал этот конфликт как личностный. С его слов, все его коллеги, которых он перечислил пофамильно и негативно охарактеризовал, и вся цепочка руководителей компании - нехорошие люди, которые в течение длительного времени "травили" его, чтобы он добровольно уволился, а он долго это терпел.
Почему этот рассказ выбивается за рамки обычного:
Читаем...