Pull to refresh
3
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Reactive Web Components: реактивность без фреймворка

Level of difficultyMedium
Reading time9 min
Views3.1K

После работы с React/Vue/Angular захотелось вернуться к основам, но с современными возможностями. Сделал RWC — библиотеку реактивных веб-компонентов.

Ключевые преимущества:
• Совместимость — компоненты работают в любом проекте
• Производительность (сигналы для реактивности) — точечные обновления DOM
• Простота — минимальный API, легко обучать команду
• TypeScript-first — типизация из коробки без костылей

Компоненты, написанные на RWC, можно встроить в React, Vue, Angular или даже legacy jQuery-проект. Никакого vendor lock-in.

Библиотека весит <10KB, компоненты работают в любом проекте.

Читать далее

Docker для самых маленьких: упаковываем Python-бота за 10 минут

Level of difficultyMedium
Reading time10 min
Views12K

Хватит запускать ботов кнопкой Run в PyCharm! Пора осваивать промышленные стандарты.
В этом туториале я простым языком объясняю, как работает Docker и зачем он нужен Python-разработчику. Мы возьмем простого Telegram-бота, напишем для него конфиг, настроим .dockerignore и запустим в изолированном контейнере. Идеально для тех, кто давно хотел разобраться с Докером, но боялся сложных инструкций.

Читать далее

Sipeed NanoKVM: что умеет крохотный кубик RISC-V для удаленного управления компьютером

Reading time8 min
Views9.7K

Есть такой класс гаджетов, который не нужен рядовому потребителю. Большинство, вероятно, даже не знает об их существовании. Речь, разумеется, об IP-KVM, предоставляющих доступ к устройствам ввода-вывода. Собственно, аббревиатура KVM расшифровывается как Keyboard Video Mouse. Главная задача — дать удаленный доступ по сети без использования средств операционной системы.

Подключив такой девайс, пользователь может полностью взять под контроль компьютер или сервер, получая картинку с экрана в реальном времени. В основном это используется для удаленной установки ОС и траблшутинга, но так же хорошо подойдет и для домашних условий, если специализированное ПО вам чем-то не угодило.

Читать далее

PPP-over-HTTP/2: развлекаемся с dumbproxy и pppd

Level of difficultyMedium
Reading time5 min
Views2.2K

В этой статье рассказано как подружить pppd и dumbproxy, получив в итоге PPP-тоннель внутри HTTP/2. Её можно одновременно рассматривать как руководство по настройке, журнал эксперимента, демо возможностей dumbproxy и просто пищу для удовлетворения любопытства.

Читать далее

Простой Python, автоматический Spark: минус Kubernetes, плюс продуктивность

Reading time13 min
Views1.5K

Установка и эксплуатация приложений Spark в облаке зачастую становятся препятствием для дата-инженеров (Data Engineer, DE): сложная работа с Helm-конфигурациями отвлекает внимание от анализа данных и замедляет подготовку среды. Но полностью отказываться от Spark зачастую нерационально, поэтому многие команды стремятся найти свое решение для обхода существующих сложностей.

Привет, Хабр. Меня зовут Юрий Орлов. Я руководитель команды разработки ML Platform в VK Tech. В этой статье я расскажу о том, как мы автоматизировали развертывание Spark в облаке и создали клиент на Python, который снижает требования к знаниям в области DevOps и Kubernetes, необходимым для начала работы со Spark.

Читать далее

Ищем ошибку в работе WiFi у платы ESP32-C3 SuperMini

Level of difficultyMedium
Reading time5 min
Views5K

Статья о небольшой эпопее с поиском ошибки в работе WiFi на плате ESP32-C3 SuperMini, с которой пришлось разбираться в процессе отладки кода прошивки для контроллера батареи АКБ (О контроллере батареи ИБП (вопрос к читателям Хабра) и О контроллере батареи ИБП (часть 2)).

Симптоматика проблемы с WiFi следующая: после включения питания и начала авторизации по WiFi плата ESP32-C3 SuperMini через какое-то время зависает, вплоть до срабатывания сторожевого таймера. Поиск решения проблемы в интернете не помог, но было замечено, что в эти моменты на плате очень сильно нагревается стабилизатор напряжения 3.3V, да так, что даже рука не терпит, тогда как при работе тестовых примеров (где WiFi работает нормально) такого эффекта не наблюдается.

Из-за этого решил копать именно в этом направлении.

Читать далее

SDR с высочайшим соотношением цены и качества за 75 долларов: Распаковка и всестороннее тестирование PLUTOSDR NANO

Reading time6 min
Views11K

Плата разработки программно-определяемого радио (SDR) PLUTOSDR NANO (далее именуемая SDR) является производной от ADALM-PLUTO, выпускаемой Analog Devices. Оба устройства используют комплексное проектное решение на основе радиочастотного трансивера AD9363 и ПЛИС ZYNQ7010, представляя собой мощные устройства программно-определяемого радио, которые могут предоставить пользователям широкий частотный диапазон и мощные вычислительные возможности. Ниже приведено краткое руководство по быстрому тестированию после распаковки, включающее этапы: проверка при распаковке, подключение устройства, тестирование основных функций и тестирование функций связи.

Читать далее

Как я перестал бояться GUI-тестов и научился их любить (почти)

Level of difficultyMedium
Reading time11 min
Views3.2K

В феврале этого года я [писал на Хабре](https://habr.com/ru/articles/883590/) про автоматизацию тестов для САПР. Мы делали систему с записью действий в JSON и воспроизведением через pyautogui. Работало. Но только для одного конкретного проекта.

С тех пор фреймворк вырос. Сильно. Из узкоспециализированного решения для промышленного ПО превратился в универсальный инструмент. Теперь работает с чем угодно - офисные пакеты, банковские клиенты, CAD-системы.

Что изменилось? Убрал привязку к конкретному софту. Добавил умный поиск элементов вместо тупых координат. Сделал так, чтобы QA мог записать тест без единой строки кода. Прикрутил UI-ассерты, мониторинг системы, файловые проверки.

Короче, то что начиналось как решение для одной задачи, выросло в полноценный фреймворк. И оказалось полезным не только мне.

Читать далее

Мультитул для инженера: волшебная коробочка с I2C/SPI/UART/JTAG за 1.000 рублей

Level of difficultyMedium
Reading time8 min
Views46K

Будучи творческим человеком и техногиком, я обожаю при первой возможности апгрейдить своё оборудование. Время от времени я мониторю маркетплейсы в поисках чего-то новенького и в этот раз я наткнулся на настоящий мультитул для Embedded-разработчика — контроллер I2C/SPI/UART/JTAG в одной коробочке и всё это всего за 1.000 рублей... Конечно я не смог пройти мимо этой штучки и в рамках сегодняшней статьи хочу рассказать что оно из себя представляет и как с ним работать. Жду вас под катом!

Читать далее

Настройка счетчика коммунальных услуг через веб интерфейс Home assistant (HA)

Level of difficultyEasy
Reading time4 min
Views4K


Не нашел похожей статьи в одном источнике, провел изыскания и вот результат

Общая концепция снимания показаний с счетчика коммунальных услуг:

Читать далее

Автоматизация без кода: как я собрал своих AI-агентов за пару вечеров

Reading time8 min
Views8.8K

Если вы, как и я, тратите часы на сортировку резюме или сбор задач по разным доскам — добро пожаловать. Я расскажу, как за пару вечеров собрал AI-агентов, которые делают эти, и другие задачи, за меня. Без магии — просто Make, n8n и немного здравого смысла.

Привет, Хабр! Меня зовут Василий Соломкин, я младший руководитель проектов в IBS. Управляю проектами разного профиля: 
нагрузочное тестирование, DevOps, внутренние проекты по разработке, юзабилити-тестирование и другие. Последние полгода активно изучаю искусственный интеллект, в первую очередь чтобы облегчить себе жизнь и оставить рутину за кадром. В этой статье расскажу про новое ответвление нейросетей — AI-агентов — и покажу собственные рабочие кейсы по автоматизации задач с их помощью. Сразу отмечу, что это именно мои кейсы — я разрабатывал их специально под свои задачи, и далеко не обязательно они покажутся вам актуальными именно для ваших задач. Но моя цель — показать, что ИИ можно использовать не только в формате чата, а создавать персональные автоматизации. Это просто, быстро и крайне полезно.

Читать далее

λ-исчисление в 30 строк. Реализация лямбда-исчисления

Level of difficultyMedium
Reading time3 min
Views6.1K

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

Читать далее

MQTT + MODBUS + WEB: как DRM88ER решает задачи современного IIoT

Level of difficultyMedium
Reading time7 min
Views3.4K

Любой, кто работал с промышленной автоматизацией, сталкивался с одной и той же проблемой — разные устройства общаются на разных языках. Старое железо только на MODBUS, современные облачные сервисы требуют MQTT, а пользователи хотят красивые веб-интерфейсы. В итоге простая задача превращается в интеграционный квест или танцы с бубном с множеством шлюзов и костылей.

Поэтому, мы решили создать DRM88ER – интернет-реле "Разумный дом", которое решает эту проблему довольно изящно — просто собрав MODBUS, MQTT и WEB в одном устройстве за 14 500 рублей. Посмотрим, что из этого получилось.

Читать далее

Адский эксперимент: личный сайт на нищих микросервисах

Reading time27 min
Views39K

Микросервисы тут, микросервисы там… Из каждого утюга доносится дивный сказ про прекрасный мир микросервисов. А ведь это всего лишь один вид из десятка архитектурных стилей, который имеет свои достоинства и недостатки.

В этом эксперименте мы внедрим микросервисы в личный сайт, нарушив ключевые принципы DDD. Я создам антипаттерн «бедных сервисов» (Anemic Domain Model) и покажу, чем опасен прямой доступ к данным между микросервисами.

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

Читать далее

Поднимаем внутренний мессенджер и VoIP-сервер без нарушения законодательства

Level of difficultyEasy
Reading time6 min
Views16K

Cейчас, когда связь с внешними сервисами работает с перебоями, а самым стабильным международным способом созвониться теперь является, внезапно, Steam, VoIP которого точно не блокируется, возникает резонный вопрос: а как коммуницировать хотя бы в рамках собственной компании? Особенно с учетом того, что Discord давно и надежно заблокирован, Slack с рынка ушел, а популярные публичные мессенджеры замедляются или рискуют отправиться в бан? Решение очевидно: поднимать собственные текстовые и VoIP-сервера, о чем мы и поговорим в статье на примере связки Matrix и Jitsi.

Читать далее

Почему я выбрал Warp, а не Cursor или Claude Code: мои инструменты, MCP, подход и конкретные приёмы разработки с LLM

Level of difficultyMedium
Reading time14 min
Views28K

15 лет я не писал код, полностью погрузившись в менеджмент. Но LLM вернули мне сверхспособности: в одиночку за два месяца я переписал легаси-проект с 20 тысячами юзеров, который мучил команды разработчиков годами.

Всё благодаря правильной связке инструментов, которые превращают AI в младшего разработчика, архитектора и DevOps одновременно. Делюсь конкретикой: почему терминал лучше IDE для AI-разработки, как управлять контекстом через Rules и MCP, какие модели выбирать для разных задач, и почему фреймворки — ваша защита от галлюцинаций LLM.

Читать далее

VPN для админа, а не админ для VPN: Как мы убили OpenVPN и построили всё на WireGuard

Level of difficultyMedium
Reading time6 min
Views23K

Да, я знаю. «Опять статья про WireGuard». Но это не очередное «how-to» на 5 строк. Это — история боли, паранойи и, наконец, автоматизации. Это история о том, как мы перестали «обслуживать» VPN и заставили его работать на нас...

Настроить и забыть

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 3

Level of difficultyHard
Reading time13 min
Views3.2K

Последняя часть по созданию своего starter-kit.

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

Читать далее

Интернет радио, продолжение

Level of difficultyMedium
Reading time8 min
Views14K

Всем привет! Приемник интернет-радио, собранный в предыдущей статье Интернет-радио на базе ESP32 и ЦАП UDA1334A , имел некоторые недостатки. А именно: были частые потери сигнала wifi, медленная и глючная работа в целом, случайные перезагрузки. Короче, он перестал меня устраивать и я решил продолжить тему проигрывателя интернет радио, но на базе другой аппаратной платформы.

Читать далее

Пишем свою мобильную ОС с нуля на Rust

Level of difficultyMedium
Reading time22 min
Views22K

Почему бы не запустить своё ядро прямо на смартфоне? Без Android, без Linux — только Rust, загрузчик и паяльник. В этой статье расскажу о результатах своего эксперимента, как оживить голое ARM-железо, увидеть первые символы в UART и даже вывести что-нибудь на экран.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity