Search
Write a publication
Pull to refresh
2
0
Send message

Оцифровка показаний стрелочного манометра в Home Assistant

Level of difficultyMedium
Reading time9 min
Views11K

Делюсь опытом реализации распознавания показаний стрелочного манометра по фотографии и отправки их в Home Assistant.

Давно мучал вопрос передачи показаний давления системы отопления со штатного манометра газового котла. Для этого несколько лет назад была приобретена камера ESP32-CAM и интегрирована в Home Assistant посредством ESPHome.

Читать далее

Код, который светится: архитектура минималистичных световых скетчей

Level of difficultyHard
Reading time3 min
Views7K

Микроконтроллеры, светодиоды, и немного кода — вот и вся палитра для минималистичного цифрового искусства. В статье подробно рассказывается, как выстроить архитектуру крошечных, но выразительных световых анимаций с использованием C++, платформы STM32 и адресных светодиодов WS2812. Немного философии, немного инженерии — и свет оживает по команде вашего кода.

Можно потратить годы, чтобы написать красивый рендерер. А можно взять 8 строк кода, светодиодную ленту и микроконтроллер, чтобы ночью на стене заиграла световая поэма. Эта статья — про второй путь.

Код, который светится, не имеет интерфейса, не показывает графику на экране и не заботится о фреймрейте. Его задача — свет. Живой, дышащий, мерцающий свет. В идеале — чтобы всё это поместилось в пару килобайт памяти и не жрало больше миллиампера на эффект.

Читать далее

Летающие кубиты: квантовый конвейер под управлением магнитного поля

Level of difficultyMedium
Reading time10 min
Views950

Представьте, что информацию в квантовом компьютере можно передавать не за счёт сложных проводов и резонаторов, а прямым перемещением самих квантовых битов – как по конвейерной ленте. В недавних новостях сообщается, что российские учёные предложили именно такой подход: «летающие кубиты», управляемые магнитным полем. Их метод позволяет переключать квантовые регистры в режим передачи данных, где квантовое состояние передается по цепочке без потерь, подобно падающим костяшкам домино. Разберёмся, зачем нужны такие летающие кубиты, как они работают и какие перспективы открывают – опираясь на современные исследования и примеры в оптике и спиновых системах.

Квантовый интерес

Сенсорные выключатели советской эпохи

Level of difficultyMedium
Reading time6 min
Views24K
Приветствую всех!
Однажды на просторах форума по старой светотехнике мне попался пост про такой девайс как «Сезам» — первый (он же в каком-то плане и последний) советский выключатель света с сенсорным управлением. Тогда автору не удалось ни запустить его, ни разобраться, как он работает. И что-то меня сильно заинтересовало в них, отчего я решил раздобыть несколько экземпляров на опыты и узнать всё, что так и не смогли сделать до меня.



Итак, в сегодняшней статье посмотрим на эти интересные и во многом неоднозначные девайсы, детально разберёмся, как они устроены и работают, а также оживим доставшиеся мне экземпляры. Заодно выясним самое главное: есть ли у них какие-то шансы сегодня, или же единственная судьба у них — стать частью коллекции советской техники?
Читать дальше →

Как я чищу диск на MacOS и какой внешний накопитель выбрал

Level of difficultyEasy
Reading time3 min
Views9.2K

Привет, Хабр! Недавно брат поинтересовался, как я решаю проблему с вечно забитым диском на MacBook, и я решил не только ему ответить, но и поделиться своим опытом со всеми. Расскажу, как бороться с нехваткой места и какой внешний накопитель выбрать, чтобы не разориться и не разочароваться.

Читать далее

Может ли ИИ обладать сознанием?

Reading time5 min
Views6.7K

В то время как ИИ уверенно осваивает все новые сферы - от перевода текстов до разработки лекарств - мы все чаще сталкиваемся с фундаментальным вопросом: имеет ли право такой ИИ называться «сознательным»? Модель OpenAI-o1, построенная на архитектуре трансформеров и обученная с помощью RLHF, является отличным полигоном для исследования этого вопроса. Но можем ли мы всерьез говорить о зачатках сознания у машин - или это лишь очередная иллюзия, созданная алгоритмами?

Читать далее

Измерение собственного напряжения питания микроконтроллера

Level of difficultyMedium
Reading time2 min
Views7.5K

Началось все с того, что при проектировании своего устройства на микроконтроллере ATtiny 85, которое должно было работать от встроенного li‑ion аккумулятора, я изначально не задавался целью измерения заряда АКБ, поскольку в этом не было необходимости. Однако, собрав все устройство на печатной плате, я подумал над тем, почему бы не добавить такую возможность.

Прочитав в Интернете, как это можно было реализовать, стало ясно, что сделать это вряд ли удастся, поскольку все порты PB[0:5] уже были заняты и, следовательно, не было возможности применения АЦП с аналогового пина (при чем порт PB0 я не мог настроить на вход опорного напряжения AREF - он должен был использоваться как управляющий выход).

Долгое изучение состояния регистров АЦП в datasheet на ATTiny 85 привело меня к следующей идее: в качестве опорного напряжения может быть выбрано само напряжение питания VCC (биты REFS [0:2] регистра ADMUX установлены в 0), а в качестве измеряемого ‑ напряжение VBG с внутреннего стабилизатора в 1.1В (биты MUX [3:0] регистра ADMUX установлены соответственно в 1100). То есть, для измерения напряжения питания не нужно ничего, кроме, собственно, самого питания VCC!

Читать далее

Мелочи RoR, облегчающие жизнь

Reading time3 min
Views1.2K

Статья из моих архивов

Недавно видел на хабре спор по поводу того, что нам не нужны никакие скриптовые языки, кроме javascript. Утверждение, конечно, спорное, но меня заинтересовала возможность применения javascript на сервере.Поиски привели меня сюда. Из всех представленных там решений, я почему-то (просто оно с первого раза встало и заработало) выбрал библиотеку Node для google v8.

Установка достаточно проста: сначала устанавливаем v8. Его либо можно скачать отсюда, либо, если у вас ubuntu (у меня 9.04, не знаю, что там с другими версиями и дистрибутивами), то можно установить libv8 из репозиториев. Сам Node берем здесь.

Читать далее

GKE — VPC-Native, Pods и VPC Firewall: Маркетинг против реальности

Level of difficultyHard
Reading time12 min
Views579

Привет, Хабр!

Google, без преувеличения, изменил мир IT, подарив нам Kubernetes – систему, ставшую де-факто стандартом оркестрации контейнеров. И когда выбираешь управляемый Kubernetes от его же создателей, такой как Google Kubernetes Engine (GKE), ожидания, естественно, высоки. Уж кто-кто, а "первоисточник" должен уметь "готовить" свое детище идеально, предоставляя не только удобство, но и прозрачные, глубоко интегрированные и безопасные решения "из коробки". Особенно когда речь заходит о такой фундаментальной вещи, как сетевое взаимодействие и его безопасность.

GKE предлагает два режима работы кластеров: routes-based и VPC-native. Именно VPC-native кластеры позиционируются Google как обеспечивающие более тесную интеграцию с сетью VPC. Как утверждает Google, одно из преимуществ таких кластеров заключается в том, что IP-адреса подов (pods) нативно маршрутизируемы внутри сети VPC кластера и других сетей VPC, подключенных к ней через VPC Network Peering (подробнее см. документацию GKE по IP-алиасам и VPC-native кластерам). Это вселяет уверенность, что возможности VPC, включая мощный механизм GCP Firewall, будут доступны и для наших подов так же легко и нативно, как для обычных виртуальных машин.

Однако, погружаясь в детали настройки контроля сетевого доступа для подов к ресурсам внутри VPC, но внешним по отношению к самому Kubernetes (например, к базам данных Cloud SQL или другим бэкендам), начинаешь сталкиваться с нюансами. Нюансами, которые заставляют усомниться в "бесшовности" этой интеграции. Эта статья – не попытка принизить достижения Google или GKE. Скорее, это повод для всех нас, инженеров, задуматься о тех важных деталях реализации, которые часто остаются "под капотом". Повод погрузиться глубже, понять, как все устроено на самом деле, и какие компромиссы или сложности скрываются за маркетинговыми лозунгами. Ведь чем сложнее архитектура безопасности, тем выше вероятность ошибки конфигурации, особенно если ее компоненты и их взаимодействие не до конца понятны. Если даже у такого гиганта, как Google, в его флагманском продукте для Kubernetes есть подобные неочевидные моменты, то нам, инженерам, работающим с этими системами ежедневно, тем более важно понимать все тонкости для обеспечения надежности и безопасности наших собственных окружений.

Читать далее

DSL для интерактивных рассказов: как я написал язык, чтобы придумывать истории, а не кодить

Level of difficultyHard
Reading time3 min
Views2.8K

Многие разработчики мечтают о проектах, в которых можно совместить любовь к программированию и нарративу. В этой статье рассказывается о создании собственного DSL (domain-specific language) для интерактивных историй — от формализации сценарных структур до реализации интерпретатора на Python. Много кода, много боли, немного магии.

Читать далее

Как превратить ChatGPT в кофаундера: личный опыт и практические приёмы

Level of difficultyEasy
Reading time8 min
Views15K

Я «нанял» ChatGPT в кофаундеры — делюсь результатами, промптом, пятью масками и чек‑листом рисков, которые внедряются за вечер

Читать далее

Промышленное производство людей

Level of difficultyHard
Reading time5 min
Views8.7K

Внимание: данная статья может вызвать противоречивые чувства особенно у религиозных и этически чувствительных читателей. Просьба воспринимать материал с учётом его исследовательского и проектного характера.

Современный мир столкнулся с устойчивым падением рождаемости. Это явление наблюдается практически во всех развитых странах и постепенно охватывает развивающиеся. Несмотря на тревожные демографические показатели, до сих пор нет ясного общественного или политического консенсуса: является ли это падение реальной проблемой, требующей системного ответа.

Пока одни говорят о «кризисе семьи» или «сдвиге культурных ценностей», другие предлагают меры, сводящиеся по сути к ограничению свобод — особенно женщин. Среди таких инициатив:

- запрет абортов;
- усложнение бракоразводных процедур;

Читать далее

Зачем программисту дизассемблер в 2025: отладка на слепую под редкие MCU

Level of difficultyHard
Reading time3 min
Views2K

Даже в 2025 году, когда вокруг нейросети, автогенерация кода и IDE с предиктивным интеллектом, работа с редкими микроконтроллерами всё ещё может обернуться настоящим хардкором. Особенно, если речь идёт о «слепой» отладке без отладчика, когда в арсенале только прошивка, HEX-файл и пара байтов на выводе. В этой статье — личный опыт, много хардкора, дизассемблирование вручную и поиск глюка в 2 КБ бинаря.

Когда говорят «отладка», в 2025 году чаще всего имеют в виду жмяк на F5 в Visual Studio Code или лог с CI/CD. Но в embedded-мире, особенно если ты копаешься в системах с 8-битным контроллером 2006 года выпуска, это слово может означать кое-что пострашнее. Например — «прошивка вылетает на 4-й секунде, данных в UART нет, отладочного интерфейса нет, документации почти нет, а заказчик просит сделать "как раньше работало"». И вот тут начинается старый добрый reverse engineering.

Читать далее

Конфиг, сделанный по уму

Level of difficultyEasy
Reading time5 min
Views2.2K

Когда к нам пришел докер и — как тот муж из анекдота — перее^W научил нас отказоустойчивости на свой манер, я написал бесчисленное количество костылей, чтобы действительно отказоустойчивый (а главное, долгоживущий) код продолжал нормально работать в условиях, где сброс горячего кэша из-за внезапного перезапуска контейнера, вызванного близостью Андромеды к Меркурию, — норма.

Потом какому-то гению из соседнего отдела пришла в голову блистательная мысль использовать consul в качестве единого конфигурационного хранилища, некоторые ошметки локальных конфигов по-прежнему валялись в редисе, каждый микросервис выдумывал свою систему легкой раскатки и предпочитал автономно управлять конфигурацией из локальных переменных среды, и в этом зоопарке, разумеется, начали возникать конфликты на почве видово́й борьбы за выживание (ласково именуемой в народе «кто первый встал — того и тапки»).

С этим надо было что-то делать, и я написал библиотеку на обоих используемых тогда в компании языках (руби и эликсире), позволяющую поддерживать общую конфигурацию приложения из нескольких источников, обновлять её в режиме реального времени через изменение этих самых источников (поменял значение в консуле/редисе/локальном джейсоне — и оно автоматически обновилось в конфиге, а уведомления разослались всем заинтересованным).

Вот как это было

Создаем свой RAG: введение в LangGraph

Level of difficultyMedium
Reading time7 min
Views6.5K

Привет, Хабр! В этой статье мы рассмотрим LangGraph — инструмент для построения сложных RAG-систем. Разберём его ключевые концепции и архитектурные принципы. В следующей части перейдём к практической реализации: изучим компоненты RAG-систем и способы их интеграции

Читать далее

Моноколесо? — дайте два! И почему для меня это идеальный транспорт

Level of difficultyEasy
Reading time5 min
Views11K

Привет, Хабр!

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

Читать далее

Как Duolingo юзает машинное обучение для прокачки английского: кратко и по делу

Level of difficultyEasy
Reading time4 min
Views8.3K

Теперь всё, что раньше делали люди — создание курсов, проверку ответов, адаптацию персонализированных заданий — почти полностью взял на себя ИИ.

Duolingo — это уже давно не просто приложение с разноцветными совами и скучными заданиями. В 2025-м генеративный ИИ позволил Duolingo быстро создавать новые курсы, и за год почти удвоить число языковых курсов! Как им это удалось и что это значит лично для тебя — рассказываем подробнее...

Читать далее

Skype всё! Преходим на p2p обмен файлами с Tuna

Level of difficultyEasy
Reading time3 min
Views3.2K

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

Читать далее

Гарантийный профиль разгона Intel Core Ultra 200S: бесплатный буст производительности для игр

Level of difficultyEasy
Reading time4 min
Views2.1K

Знаете, как бывает — купишь новый процессор для игр, а он не оправдывает ожиданий. Особенно обидно, когда речь идет о флагманской линейке, за которую отдал немалые деньги. Именно такая ситуация сложилась с процессорами Intel Core Ultra 200S, которые многих разочаровали своей производительностью. Но похоже, Intel нашла способ исправить ситуацию, причем весьма нестандартным образом.

Читать далее

MySQL репликация: проблемы, решения, практические рекомендации

Level of difficultyMedium
Reading time10 min
Views2.2K

Вопрос "какая репликация MySQL лучшая?" звучит часто. Ответ, как водится в сложных системах, – "зависит от ситуации". Нет универсального решения. Выбор оптимального метода репликации всегда компромисс. Приходится искать золотую середину между тем, насколько данные должны быть одинаковыми везде, скоростью работы, бесперебойностью и тем, насколько сложно все это настроить. Посмотрим внимательнее на главные способы. Это поможет сделать осознанный выбор.

Читать далее

Information

Rating
Does not participate
Registered
Activity