Управляем умным домом Home Assitant через Алису и без интернета. Часть 3

В этой части рассмотрим с теоретической стороны разработку дополнений (add-ons) для Home Assistant Operating System.
Искусство создания компьютерных программ
В этой части рассмотрим с теоретической стороны разработку дополнений (add-ons) для Home Assistant Operating System.
Привет, Хабр!
Сегодня рассмотрим консольные утилиты PipeWire: pw-cli
, pw-top
, pw-metadata
и сопутствующие инструменты.
Для начала напомню, что PipeWire — это мультимедийный сервер низкого уровня, способный обрабатывать и аудио, и видео-потоки с минимальной задержкой. Он заменяет и PulseAudio, и JACK, действуя как ядро мультимедиа-пайплайна. Механизм распределения потоков (routing) отделён от политики: PipeWire занимается неким «трубопроводом», а где соединять и какой девайс использовать — за WirePlumber или другим менеджером сессий.
Рассматривается алгоритм вычисления обратного целого числа и его приложение для деления целых чисел, представленных high и low половинками, для которых уже реализована базовая арифметика.
Привет, Хабр!
Расскажу про Robocopy – утилиту Windows для апдейтнуого копирования. Она живёт в системе с Windows Vista (раньше была частью NT4 Resource Kit) и предназначена для работы с большим количеством файлов. Robocopy используется для копирования файлов. Часто её используют для миграции файловых серверов или резервного копирования. По сути это более навороченная замена привычным COPY
/XCOPY
: она поддерживает возобновление копирования, зеркалирование каталогов, многопоточность и многое другое.
В проектах на Qt рано или поздно встаёт вопрос: делать интерфейс на Widgets или на Quick. Первый вариант даёт зрелый набор контролов и привычное поведение окон, второй — гибкость, анимации и GPU-рендеринг. Иногда нужно объединить эти подходы: например, когда в приложении на Qt Quick требуется окно, способное выходить за границы основного, как это делают всплывающие подсказки или выпадающие списки в классических десктопных программах.
В этой статье я разберу рабочий способ показывать окна Qt Widgets из приложений Qt Quick — без хака с QQuickPaintedItem и без потери преимуществ Scene Graph.
Если вы осваиваете JavaScript, то наверняка знаете об операторах rest и spread. Первый группирует несколько значений, второй - разгруппировывает. Но давайте посмотрим чуть глубже.
Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, что означает каждый оператор и как использовать их на практике. Подробности под катом!
Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.
Команда Go for Devs подготовила перевод статьи о том, как Go 1.24 с новой реализацией Swiss Tables помог снизить использование памяти в продакшне на сотни гигабайт. В статье разбирают, что изменилось в реализации map, как это отразилось на профилях памяти, и какие оптимизации в коде дали дополнительный эффект.
Команда Python for Devs подготовила перевод обзора новых возможностей REPL в Python 3.14. Теперь автодополнение и подсветка синтаксиса работают прямо в терминале, а цветовую тему можно настроить под себя.
Команда AI for Devs решила написать эту статью после выхода очередного продукта от Stack Overflow, в чьём имени красуется «AI». Когда-то платформа запрещала любой ИИ-контент, потом осторожно тестировала инструменты вроде OverflowAI и Question Assistant, а теперь явно строит стратегию вокруг искусственного интеллекта. Насколько это здорово для сообщества?
В именах Masha
, Rodion
и Ekaterina
насчитываем 2, 3 и 5 гласных букв — это всё простые числа. Гласными в рамках этой задачи считаются aouie
, без y
(хотя это дискриминация).
Представьте, даны две строки одинаковой длины, например abbas
и abzac
— они задают некий диапазон всевозможных строк (этой же длины) в алфавитном порядке:
abbas, abbat, ..., abyzz, abzaa, abzab, abzac
Сколько в этом диапазоне строк, имеющих «простое» количество гласных? Тут даже ребёнок легко сосчитает — всего 7289
:)
А как посчитать если ограничение на длину строки — до 150 символов? Приглашаем попробовать новую задачу на CodeAbbey от Клайва Фрэйзера: Prime Vowel Count — она хороша тем что демонстрирует довольно общий подход к целому классу подобных задач (не обязательно даже про строки).
Как следует отображать на экране результат деления 3.0
на 10.0
? Сколько цифр следует вывести, если пользователь не указал точность?
Скорее всего, вы даже не знали, что вывод на экран чисел с плавающей запятой — это сложная проблема, настолько сложная, что по ней написаны десятки научных статей, причём последний прорыв был относительно недавно, в 2016 году. На самом деле, это одна из самых сложных частей поддержки чисел с плавающей запятой в среде выполнения языка.
Давайте продолжим разговор о самой неоптимизированной в мире библиотеке эмуляции плавающей точки при помощи целочисленной арифметики.
Это вторая статья из цикла «Санпросвет о плавающей точке»:
2. Вывод чисел с плавающей точкой на экран <- вы тут
Наверное многие слышали фразу, что для того, чтобы стать разработчиком, надо иметь определенный склад ума и тому подобное. Что я думаю об этом? И да, и нет. Конечно, у людей, которые уже работают в сфере, постепенно формируется определённый стиль мышления, и приобретается навык, помогающий решать задачи. Но вопрос в другом: был ли он у них изначально или появился с опытом? Возможно, кому‑то действительно повезло, и они с самого начала обладали такими способностями. Лично я таких людей не встречал и сам к ним не отношусь. Но, как ни странно, и я, и мои знакомые вполне успешно работаем в IT‑компаниях, и нас до сих пор никто не уволил.
Всё дело в том, что это навык, который можно развить. Я называю его «алгоритмическим мышлением». По сути, это умение разбивать большие задачи на более мелкие, представлять в голове алгоритм их решения и доводить его до результата. При этом важны не только логика, но и воображение с креативностью, без этого тоже никуда.
Вспомните то чувство, когда вы только приходите на новую работу: знакомитесь с коллективом, берётесь за новые задачи. Всё такое новое и интересное — какие-то новые фреймворки, языки программирования, любопытные технические решения. Всегда есть что поизучать, на несколько месяцев уходишь с головой в изучение нового мира. Но проходит полгода — всё изучено, вы подобрали оптимальные паттерны взаимодействия с коллегами, задачами, кодом. Задачи перестают быть увлекательными, а жизнь превращается в рутину.
Что делать в такой ситуации?
Некоторых всё устраивает — они начинают больше времени уделять хобби, а работа остаётся просто работой. Но есть люди, для которых работа и есть хобби. Таким особенно тяжело. Да, можно попросить новые задачи, взять на себя больше ответственности. До определённого момента это работает, но бизнесу нужен человек надолго — который будет стабильно выполнять возложенные обязанности. Это предсказуемо и выгодно бизнесу. Что же делать таким людям?
Можно пойти искать новую работу, но тогда придётся менять её часто — по одному-две раза в год. Это плохо и для работодателей, которые вложили средства в обучение специалиста, и для самого специалиста, поскольку к частым переходам начинают относиться с подозрением.
Как справиться с рутиной? Как сделать жизнь интересной, если писать код — не только работа, но и хобби?
Единственный путь, который я вижу — параллельно с основной работой заниматься pet-проектами, открытым исходным кодом, развивать личный бренд, заниматься менторством.
Умеют ли нейросети писать код?
Может ли нейросеть заменить программиста?
Может ли непрограммист создать полноценное приложение с помощью нейросети?
Можно ли доверять приложению, созданному непрограммистом с помощью нейросети?
В этой статье я излагаю свою точку зрения, основанную на собственном опыте работы с кодированием с помощью Claude Sonnet 4.0 и Opus 4.1.
Сразу оговорюсь, что не использовал для написания кода другие нейронные сети. Но рискну утверждать, что мои выводы не сильно бы отличались, примени я другую нейросеть.
С развитием LLM моделей AI начали появляться разные ИИ агенты, автоматизирующие задачи.
Но есть задачи, типа рутинного создания папок в облаке или удаления файлов, которые хорошо бы автоматизировать, но ручками сделать можно.
А есть задачи, где без дополнительной технической помощи никак. Сейчас я говорю например о тех, которые в связи с инвалидностью просто физически не могут осуществлять элементарные для большинства операции.
Сегодня я вспомнил об этом посте моего незрячего знакомого Дениса Шишкина. Суть поста в том, что сегодня нейронные сети так популярны, а вещами, которые как ожидается могут быть простыми, но очень полезными для незрячих, никто не занимается.
Пять минут разработки показали, что даже без AI возможно сделать достаточно много. Я решил попробовать сделать больше и написать эту статью, дабы осветить тему и поделиться своими наработками и размышлениями.
Всем привет! Ранее я уже писал про парсинг Wildberries, но та статья была довольно узконаправленной и не затрагивала более широкие возможности анализа. Да и с тех пор многое изменилось — тема стала ещё актуальнее, а у читателей накопилось больше вопросов.
Поэтому в этой статье мы разберём тему заново, но уже с акцентом на практическую пользу.
Сколько часов в день вы проводите в терминале? Часто задумываетесь о том, что какую-то операцию можно сделать быстрее? Любите привлекать внимание коллег необычным видом своего рабочего стола? Сегодня я решил собрать не просто интересные приложения, позволяющие повысить продуктивность работы, но и те, которые однозначно вызовут внимание окружающих и вопросы в стиле «а что это за софтина такая?».
Так что временно отвлекитесь от работы и мигающего курсора, налейте себе кофейку и посмотрите, какие эмуляторы терминала позволят вам вывести рабочие процессы на новый уровень, а заодно прокачать визуальное и информационное пространство используемой оболочки.
Telegram стал одной из главных площадок для обмена информацией. Здесь можно найти специализированные каналы с ценным контентом, начиная от актуальных новостей и заканчивая торговыми сигналами. Для разработчиков существует несколько способов программного взаимодействия с Telegram, что позволяет автоматизировать задачи и собирать данные.
Среди этих способов выделяются два основных: Bot API и MTProto API. Оба предоставляют различные возможности, но имеют и свои ограничения. Автоматизированный сбор данных для машинного обучения или глубокого анализа может быть непростой задачей из-за этих особенностей.
Так уж сложилось, что моя профессиональная деятельность связана с разными областями науки и техники. Отчасти это произошло из‑за того, что я преподаю в железнодорожном вузе, на старших курсах, и в дисциплинах, которые ставят мне в нагрузку, сходятся разные области наук. Специальные дисциплины вообще во многом междисциплинарные, как по духу, так и по содержанию.
Среди того, что мне приходилось вести есть такой курс: «Электронная и преобразовательная техника электрического транспорта железных дорог». Специалисту понятно — речь идет о силовой электронике, в самых радикальных её проявлениях. Конечно, для того чтобы не объяснять материал на пальцах, да и для проведения лабораторных работ, в дело идут симуляторы электронных схем. До недавнего времени я использовал LTSpice, однако теперь это невозможно. Но на мое счастье, благодаря vv_kuznetsov, воскрес из мертвых симулятор Qucs. Но с ним не все так просто, как могло бы показаться на первый взгляд.