Pull to refresh

Technotext

Дроун-эмбиент-нойз синтезатор на Javascript: когда нестабильность работы это фича, а не баг

Level of difficultyMedium
Reading time18 min
Reach and readers6.9K

Речь пойдёт о нюансах использования Web Audio API и Web MIDI API для синтеза звука в браузере, методах датабендинга и сонификации, UX при использовании клавиатуры и мыши в музыкальных целях, а также почему браузер ungoogled-chromium лучше Google Chrome

Читать далее

Прощай, Ingress. Здравствуй, Gateway API

Level of difficultyEasy
Reading time13 min
Reach and readers18K

Когда проект Kubernetes только начинал свой путь, вопрос как пустить трафик в кластер решался просто: как-нибудь. Сервисы торчали наружу через NodePort, потом появился LoadBalancer, а чуть позже — объект Ingress, который на долгие годы стал стандартной точкой входа в HTTP-мир Kubernetes.

Ingress был своевременным решением. Он дал декларативный способ описывать маршрутизацию, TLS и виртуальные хосты, не заставляя инженеров напрямую настраивать nginx-конфиги или HAProxy руками. Для своего времени — шаг вперёд, и весьма заметный. Проблема в том, что Kubernetes рос быстрее, чем сам Ingress.

Со временем выяснилось, что спецификация Ingress намеренно минималистична. В ней нет ни чёткого разделения ответственности, ни расширяемой модели, ни нормального способа описывать сложные сценарии маршрутизации. Всё, что выходило за рамки базового use case, уезжало в аннотации ingress-контроллеров. В результате у нас появился единый стандарт, который на практике вёл себя по-разному в зависимости от того, какой контроллер стоял в кластере. Формально — Ingress, фактически — vendor-specific конфигурация с YAML-обвязкой.

Читать далее

Как я воевал с китайским умным туалетом для котов

Level of difficultyEasy
Reading time7 min
Reach and readers36K

В очередной раз листая озон я наткнулся на девайс который привлек мое внимание, самоочищающийся лоток для котов Petkit Pura Max, вещь весьма интересная, особенно если у тебя три кота. Пушистые бандиты у меня крупные, потребляют много калорий и соответственно часто ходят в лоток.

Читать далее

Как мы строили своего AI-агента для генерации тестовой документации — опыт QA-команды мобильных секретарей

Level of difficultyMedium
Reading time8 min
Reach and readers5.8K

Привет, Хабр! На связи QA-команда мобильных секретарей — Настя и Ксюша.

Как и многие в QA, мы постоянно работаем с документацией. Ее много, она лежит в Confluence, постоянно меняется, что-то прилетает от партнеров, что-то дописывают аналитики и разработчики. 

В итоге на то, чтобы собрать все воедино, проанализировать и написать качественные чек-листы или тест-кейсы, уходит много времени. В какой-то момент мы подумали: «А что, если создать AI-агента, заточенного под наши процессы, который будет делать это за нас?». Так и родился наш проект.

Рассказываем, как это было.

Читать далее

Как мы автоматизировали сеть в облаке и как нам с этим помогла Аннушка

Level of difficultyMedium
Reading time15 min
Reach and readers9K

Меня зовут Саша Шилкин, я работаю в Yandex Infrastructure и занимаюсь автоматизацией сети. Сегодня расскажу про обновление конфигурации сетевых устройств и про то, как мы его делаем в нашей команде: как начинали, как менялась конфигурация, какие для этого были предпосылки. 

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

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

Статья написана по материалам моего выступления на nexthop, конференции по сетевым технологиям, — с небольшими дополнениями, которые произошли за год.

В этом году на nexthop 2025 я также расскажу об автоматизации масштабируемой сети для BareMetal‑серверов — так что, если эта тема интересна, заглядывайте к нам 19 ноября.

Читать далее

Как мы построили систему видеоаналитики на open source и довели её до продакшена

Level of difficultyEasy
Reading time6 min
Reach and readers8.5K

Всем привет В этой статье разберём практический опыт построения системы видеоаналитики на базе open source-инструментов: от выбора библиотек и архитектуры до проблем с производительностью и масштабированием под десятки видеопотоков.

Материал будет полезен инженерам, тимлидам и продакт-менеджерам и всем тем, кто рассматривает open source как основу для production-ready CV-систем.

Читать далее

Per aspera ad astra. Как построить космолет, не привлекая внимания санитаров

Level of difficultyEasy
Reading time10 min
Reach and readers8.5K

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

Читать далее

Проклятие легких побед: как вайбкодинг убивает волю к решению проблем

Level of difficultyMedium
Reading time9 min
Reach and readers20K

«Вайбкодинг» ‑ это просто ролевая игра для парней, которые хотят чувствовать себя хакерами, не делая сложной работы, или это мощный инструмент, меняющий процессы даже ML‑инженера? Я думал, что это просто игрушка, пока не попробовал.

Привет, меня зовут Марк, я ML-инженер уже более 4-х лет и за несколько дней я навайбкодил приложение не зная ни языка ни технологий. А еще я навайбкодил кучу техдолга и получил неочевидные трансформации личности.

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

Читать далее

Транслятор РПГ М-220. Рукописи не горят

Level of difficultyMedium
Reading time4 min
Reach and readers17K

Со мной опять произошла какая-то мистика.

С тех пор как начал писать  серию статей под названием «Пятьдесят лет по стезе программирования», особенно когда готовил третью статью, мне хотелось найти рукопись с исходными кодами, написанного мною транслятора с языка РПГ (RPG) для ЭВМ М-220:

Читать далее

ML и инфобез: три подхода для поиска аномалий во временных рядах

Level of difficultyMedium
Reading time12 min
Reach and readers10K

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

Использование машинного обучения — один из эффективных способов автоматизации поиска таких угроз. В этой статье мы рассмотрим, как одну и ту же задачу можно решать разными ML алгоритмами: Isolation Forest, Catboost, Autoncoder. В чём особенности, преимущества и ограничения каждого подхода?

Читать далее

Испанский в кармане: Архитектура Telegram-бота с локальным Whisper.cpp, AI-диалогами и оценкой произношения

Reading time5 min
Reach and readers7.5K

Привет, Хабр! Меня зовут Vlad, я начинающий Python‑разработчик и энтузиаст изучения языков.

Недавно я столкнулся с классической проблемой полиглота‑самоучки: учебники дают теорию, аудиокурсы — пассивное восприятие, но нет главного — обратной связи по произношению. Репетиторы дороги, а разговорные клубы требуют уровня, которого у меня еще не было.

Я решил закрыть эту боль кодом. Моя цель была амбициозной: создать Telegram‑бота, который:

1. Слушает голосовые сообщения и распознает речь без дорогих облачных API.
2. Оценивает точность произношения в процентах, сравнивая с эталоном.
3. Поддерживает живой диалог через LLM, исправляя ошибки на лету.
4. Работает быстро и экономно на слабом VPS.

В этой статье я подробно разберу архитектуру проекта, покажу, как интегрировать бинарный whisper.cpp в асинхронный aiogram 3.x, реализую алгоритм оценки речи и расскажу про управление состояниями (FSM). Под капотом — Python, нейросети и немного магии.

Читать далее

Enovia умерла, да здравствует JMatrixPlatform: пересобираю легендарную платформу на Java и Vue

Level of difficultyMedium
Reading time17 min
Reach and readers6.5K

В прошлой статье я познакомил вас с существованием малоизвестных "суперплатформ" управления данными. На абстрактном примере реализации показал как легко кастомизируется платформа - от идеи, к готовому UI. У кого-то это вызвало отвращение, у кого-то просто шок, а кто-то увидел возможность.

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

В общем расскажу про импортозамещение Dassault Systèmes 3DExperience, далее Enoviaа точнее - той её части, которая на протяжении многих лет востребована многими крупными предприятиями: гибкого движка для построения бизнес-приложений, с возможностями управления жизненным циклом (без привязки к тяжелому САПР).

Читать далее

Что российский рынок труда хочет от тебя в 2026 году: анализ более 100 тысяч вакансий hh.ru за первый квартал

Level of difficultyEasy
Reading time9 min
Reach and readers12K

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

А потом данных накопилось столько, что стало жалко держать их только внутри. Получился большой побочный продукт — анализ рынка труда в IT и около-IT сферах по данным hh.ru. Делимся.

Читать далее

Пишем декларативный Package.swift: DSL для модульной архитектуры iOS проекта

Level of difficultyMedium
Reading time8 min
Reach and readers5.4K

Swift Package Manager отлично подходит для модульной архитектуры, но по мере роста проекта Package.swift быстро превращается в длинный список строковых зависимостей.

В статье показываю, как превратить Package.swift в типобезопасный DSL на Swift:

убрать строковые зависимости
автоматически генерировать feature-модули
зафиксировать архитектурные правила на уровне компиляции

Читать далее

Именно эти умения и навыки делают меня аналитиком

Level of difficultyMedium
Reading time7 min
Reach and readers30K

4 000 часов в роли системного аналитика или обзор навыков, умений и личных качеств, которые превращают человека в аналитика.

Читать далее

Как сделать полезный дашборд: советы и идеи

Level of difficultyEasy
Reading time8 min
Reach and readers52K

Привет! Меня зовут Роман, и я уже больше 10 лет занимаюсь мониторингом: использовал множество систем, часто приходилось работать с дашбордами. За это время скопилось несколько советов, самыми полезными хочу поделиться в этой статье.

Читать далее

Управление вентиляционной установкой Minibox GTC через Алису

Level of difficultyMedium
Reading time11 min
Reach and readers11K

Практический опыт интеграции приточной вентиляционной установки Minibox Home 350 с автоматикой GTC в умный дом Home Assistant и организации голосового управления через Яндекс Алису.

Описывается получение значений температуры и скорости вентилятора, управление ими из интерфейса Home Assistant и синхронизация изменений с физическим пультом управления. Также показано, как реализовать приём голосовых команд от Алисы. В заключение приведены идеи дальнейшего развития системы: автоматическое управление вентиляцией по уровню CO₂, ночные и дневные сценарии, а также согласование работы приточной и вытяжной вентиляции.

Материал ориентирован на пользователей, которые уже работают с Home Assistant или планируют интеграцию вентиляционной установки в систему умного дома.

Читать далее

Квест на выживание: Настраиваем плагин Госуслуг и КриптоПро на Ubuntu 24.04 (Noble Numbat)

Level of difficultyMedium
Reading time4 min
Reach and readers10K

Настройка электронной подписи (ЭП) в Linux — это всегда приключение. Но попытка завести плагин Госуслуг на свежей Ubuntu 24.04 LTS превращается в настоящий хардкорный квест. Официальные инструкции безнадежно устарели, инсталляторы выдают ошибки, а техническая поддержка обычно разводит руками.

В этой статье я пошагово разберу, как заставить всё это работать, когда «всё против вас»: от конфликтов OpenSSL 3.0 до капризов Wayland и Native Messaging.

Читать далее

Новый язык от 1С: Зачем? Кому? Стоит ли лезть?

Reading time5 min
Reach and readers130K

Привет, Хабр (и просто случайные читатели, зашедшие сюда в поисках истины или интересной статейки на пару минут)!

Так вышло, что последние полгода я провёл в тесных объятиях «Личного кабинета сотрудника» на Элементе — новом языке программирования от 1С. За это время я успел его изучить, полюбить, возненавидеть, снова полюбить и, наконец, написать эту статью, чтобы поделиться своими впечатлениями, страданиями и неожиданными открытиями.

Читать далее

Чистый код на TypeScript: практические советы

Level of difficultyEasy
Reading time6 min
Reach and readers18K

Тема чистого кода — одна из самых обсуждаемых в сообществе разработчиков. Это не удивительно: от качества кода напрямую зависят скорость разработки, легкость поддержки и масштабирования проекта. В мире JavaScript и TypeScript, с их гибкостью и динамической природой, следование принципам чистого кода становится особенно важным.

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

Читать далее