Многие полагают, что с внедрением ИИ агентов, бизнес получает в свое распоряжение «волшубную палочку», способную дешево выполнять любые поставленные задачи «под ключ». К сожалению, наша реальность все еще далека от этой прекрасной мечты. Архитектура, отладка, интеграция, безопасность, эксплуатация, понимание предметной области и способность определить, что вообще надо сделать, никуда не делись.
Читать далееВ Ptah 0.13.0 появилась нативная поддержка YDB. Ptah умеет читать текущую схему базы, сравнивать её с декларативным описанием и на основе разницы строить план изменений или генерировать версионные миграции. В статье разберём этот процесс на примере HCL-схемы, посмотрим на работу с индексами и drift detection, а также на особенности YDB, которые приходится учитывать при миграциях: разные возможности версий, feature flags и нетранзакционный DDL.
Читать далееВ очередной раз регистрируюсь на офлайн, но вместо отказа получаю письма как сильно меня ждут в онлайне и что будут слать ещё много писем. Временами проверяю UX и отвечаю, что я не проходила регистрацию на онлайн - ещё ни один организотар не отреагировал.
Но апогеем стало то, что как только я отписалась от e-mail рассылки - мне тут же пришло смс! Вот так “ага, отказалась от e-mail, начнём слать sms”. Шах и мат! От смс же сложно отписаться!
Привет! Меня зовут Маша, я Senior Product Manager и разбираю только те продукты, над которыми сама хотела бы поработать, так как ими пользуюсь, люблю и вижу, где есть потенциал роста. Мне драйвово искать для них решения, которые выводят продукт на новый уровень не только по деньгам, но и по UX и любви пользователей. Мои разборы: «Рейтинг ни на что не влияет»: Почему Яндекс.такси выбирает газлайтинг вместо честного UX и 8% рынка колонок и 15 способов сказать «не знаю»: как VK заменила развитие Маруси юмором. Но сегодня я хочу поделиться UX записи на конференции и как email-рассылки могут влиять на желание дальнейшего взаимодействия и какие психологические приёмы использует маркетинг.
Читать далееОбратный SSH-туннель позволяет опубликовать домашний видеосервис без проброса портов. Но одна доверенная строка из браузера может превратить Viewer в SSRF-прокси и открыть путь во внутреннюю сеть.
Разбираю реальную ошибку и её исправление: фиксированный upstream, авторизацию HLS, loopback на обоих концах туннеля, ограниченный SSH-ключ, единственную публичную точку HTTPS и аварийное отключение доступа.
Читать далееПолучив на этот и остальные вопросы утвердительный ответ, я принял оффер.
Каково же было мое удивление в первый день работы, когда мне дали RDP‑доступ к Windows‑тачке — вся работа организовывалась через нее. Маленькое отступление: последний раз я работал на Windows в 2011 году, еще на XP.
Для читателей (да и для меня в какой‑то момент) самым простым и логичным вариантом было бы продолжить поиск работы, но работа на непривычной для меня операционной системе по факту была единственным моментом, который показался неподходящим. После некоторых попыток обустроить быт, выяснилось, что даже WSL там сильно порезанный, с собственными репозиториями и старыми операционками. Естественно, с личных устройств до удаленной машины заблокировано примерно все.
Читать далееС весны мы ведём контекстную рекламу по запросам про удалённый доступ в Astra Linux и видим, что люди вбивают в поиск:
astra linux 1.8 remmina не подключается с уровнем конфиденциальности 1 astra linux fly-dm-rdp astra linux 1.8 локальный и удаленный rdp astra linux rdp к windows с буфером обмена установка remmina astra linux 1.7 remmina astra linux 1.4.43 скачать deb
За месяц таких запросов набирается больше сотни. Сценарий у них общий: человек берёт инструмент из мира Debian, ставит его в Astra и получает другой результат.
Мы в RuDesktop делаем ПО для удалённого доступа и управления парком компьютеров, а к самой Astra подключаемся через xrdp. Ниже — что ломается именно в Astra, как это увидеть и что поправить. Где мы пересказываем документацию, а не свой опыт, так и пишем.
Читать далееВступление.
Хабр, привет! Я Сергей Трофимов, старший инженер по автоматизированному тестированию в «Юзтех». В этой статье мы не будем говорить о том, как правильно и неправильно тестировать, на эту тему уже написано множество шпаргалок, инфографик, статей и книг, да и промышленных стандартов «правильной» разработки существует, наверное, с 10 тысяч. Вместо этого мы разберёмся, одно ли и то же – тестирование до релиза и после него. Точнее: должен ли корабль идти изначально намеченным курсом, или всё же стоит менять направление? И как научиться вовремя привносить полезное и отказываться от уже ненужного – пусть даже когда-то хорошо работавшего. Ответы на эти вопросы мы и попробуем найти.
Часть 1. Начало
Даже если вам не пришлось прийти в проект на старте активной разработки, вы наверняка уже задумывались, что было изначально. В этой части я на личном опыте попытаюсь описать, чем заняться на первом этапе, когда даже кода нет. Это важный этап, который сильно сократит работу в будущем, если вы будете успешны.
Так получилось, что я стал первым QA-инженером на новом проекте. В моем случае, речь идет не о стартапе, голого поля не было. В случае стартапа работы порой куда больше, особенно, если вам доверено право выбора инструментов. В моем случае, бизнес давно существует, идея сервиса долго назревала в недрах домена и вот пришло время собрать команду и начать разработку. Из вводных понятно, что уже есть рабочая инфраструктура и требования, нет только одного – кода, который можно протестировать. Итак, на календаре первый рабочий день.
Читать далееС 2022 года я в одиночку поддерживаю сервер World of Warcraft 3.3.5a на открытом ядре AzerothCore. Расскажу, как я закрывал главную проблему небольшого сервера ботами-компаньонами и на какие грабли при этом наступил. Если вы работаете с AzerothCore или TrinityCore, часть историй может сэкономить вам пару вечеров.
Задача: пустые очереди
Поиск подземелий (LFG) в WotLK рассчитан на тысячи игроков онлайн. На небольшом сервере очередь на героик может висеть часами: нет танка, нет хила, а то и вообще никого. Игрок заходит вечером, ждёт и уходит.
Решение напрашивалось само: если людей не хватает, группу должны добирать боты. Причём такие, которые умеют играть свою роль, а не стоят столбом у входа.
Основа: mod-playerbots
Писать всё с нуля я не стал. Для AzerothCore есть модуль mod-playerbots. Он заводит ботов на отдельных аккаунтах, сам их прокачивает и экипирует. Боты умеют вести себя в подземельях, рейдах и на полях боя.
Я работаю с собственным форком. Главные изменения — поведение ботов в очереди подземелий и на арене, ребаланс и перевод фраз ботов на русский. Сервер русскоязычный, и английские реплики в чате группы смотрелись чужеродно.
Как настраивается пул ботов
Модуль держит пул «случайных ботов». В конфиге задаются минимальная и максимальная численность пула и распределение по уровневым диапазонам: сколько ботов держать на 15–19 уровнях, сколько на 20–29 и так далее до 80-го.
Первая неочевидная вещь: сумма квот по диапазонам должна совпадать с максимальной численностью пула. Если изменить количество ботов и не пересчитать диапазоны, распределение по уровням поедет. Я поймал это, когда сокращал пул с 1550 ботов до 50.
Читать далееПривет, Хабр! Сейчас многие компании активно занимаются вопросом «импортозамещения» и мне выпала задача отвечать за поддержку и миграцию сервиса логирования. Хочу рассказать с какой проблемой я столкнулся при доработке сервиса логирования на PostgreSQL, а именно, создание индекса на высоконагруженной таблице.
Читать далееВсё началось с желания сделать ролевую игру по мотивам компьютерной игры Arcanum, в мире которой одновременно сосуществуют магия и технология, причём эти две силы принципиально конфликтуют друг с другом.
В нашей игре этот конфликт должен был существовать в том числе на уровне аур. Вокруг мага действует магическая аура, способная нарушать работу механизмов. Технология, в свою очередь, мешает магии.
Но нам хотелось, чтобы это было не просто условностью, которую игроки отыгрывают на словах. Хотелось дать этому конфликту какое-то физическое проявление в реальном мире: чтобы игрок действительно мог подойти к работающему механизму — и тот перестал работать. Или чтобы маг попытался сотворить заклинание рядом с достаточно сильным источником технологии — и обнаружил, что магия ему больше не подчиняется.
То есть игровой мир должен был сам реагировать на присутствие персонажей.
Читать далее«Вставил ссылку, вижу сериал со всеми сериями, выбрал озвучку, смотрю». С этой фразы началась Lapka, локальный аниме-плеер. Статья о решениях, из которых она сложилась, по сериям, как в аниме.
Знакомый, которому я дал её потрогать, сказал так:
>> Прикольно: нода крутится, парсит, а воспроизводит будто локальные файлы.
Код Lapka писала модель Claude Fable 5.1, и техническая сторона за ней. На мне продукт: как Lapka ведёт себя и как выглядит. Часть решений предложила модель.
Читать далееКак я добавил в QUAD 3 прямой выбор входов: реверс ARM-прошивки, бинарный патч и 64 байта здравого смысла.
Читать далееПривет, Хабр! В первой статье я разбирал внутреннее устройство real-time-конвейера на C++20: почему медленный YOLO не должен останавливать RTSP и зачем между этапами нужны ограниченные слоты последнего значения. Теперь посмотрим на ту же систему с другой стороны — глазами пользователя, который подключает камеру и должен получить не просто видео с рамками, а управляемый и проверяемый результат.
Я покажу практический порядок настройки своей платформы видеоаналитики через браузерный JavaScript Viewer: от стабильного потока и детектора движения до постоянных ID, двух контуров YOLO и истории событий в PostgreSQL. Главный вопрос статьи — не «где находится кнопка», а «какой участок конвейера меняет этот параметр и как проверить эффект».
Читать далееБудущее наступило, старик
За последние несколько десятков лет почти в каждое устройство ставили литий-ионные аккумуляторы. Высокая энергоёмкость, долговечность (в разумных пределах) и гибкость форм сделали их стандартом для большинства устройств.
Но всё чаще в новостных заголовках стали говорить про проблемы самопроизвольного возгорания смартфонов, ноутбуков и даже автомобилей, чувствительности к экстремальным погодным условиям и т. д. Инженеры стали искать другие, новейшие варианты конструкций, самым интересным из которых стало создание твердотельных аккумуляторов.
Поговорим про внутреннее устройство твердотельных аккумуляторов. В чём отличие от литий-ионных?
Нет, в статье я не буду расписывать, насколько классные твердотельные батареи, как они в один момент смогут решить все проблемы человечества и что сейчас за ними наше будущее (с чем я в принципе согласен, но не будем про это). Рассмотрим факты и практику.
Читать далееСостоялся релиз утилиты altctl 1.3.0 (проект alt-linux-toolkit), предназначенной для комплексного обслуживания, устранения типовых сбоев, диагностики и безопасного обновления дистрибутивов семейства ALT Linux (Simply Linux 10/11/11.2, Альт Рабочая станция, Альт Сервер, Sisyphus).
Инструмент спроектирован для автоматизации рутинных задач системного администрирования как на физическом оборудовании, так и в средах виртуализации (VirtualBox, KVM, VMware, Hyper-V).
Основные возможности и изменения в версии 1.3.0:
Проект написан на Bash и распространяется под свободной лицензией.
При разработке персонального цифрового ассистента здоровья «Я Здоров» мы использовали долгосрочную память — LTM (Long-Term Memory). Сервис реализован в формате мобильного приложения: он собирает медицинские данные пользователя в единый цифровой профиль, позволяет хранить и оцифровывать медицинские документы, отслеживать результаты анализов, вести дневники здоровья и общаться с AI-ассистентом в чате.
В диалогах пользователь сообщает ассистенту информацию о своем здоровье: о симптомах, принимаемых препаратах, аллергиях и других состояниях. Часть этих данных важно учитывать не только в текущем разговоре, но и при следующих обращениях. Для этого мы сохраняем их в LTM и при необходимости возвращаем в контекст модели.
На практике работа с долгосрочной памятью оказалась шире, чем просто сохранение фактов. Нужно учитывать их актуальное состояние и изменения, определять, какие данные нужны модели для конкретного запроса, и контролировать, какие операции можно оставить LLM, а какие надежнее выполнять программно.
В статье разберем, как мы с командой ASAP решали эти задачи, как менялась архитектура LTM и к какой реализации пришли сейчас.
Читать далееВ данной статье рассмотрим сложные сценарии восстановления кластера Greengage DB, в которых кластер восстанавливается на новом окружении.
Читать далееРеклама потратила две тысячи рублей и не принесла заявок.
Отключать или ждать?
Показываю, как связать допустимую цену заявки с числом переходов, откуда берётся ориентир в три цены результата и почему он работает только при определённых условиях.
Отдельно разбираю задержку конверсий, повторные клики и разницу между лимитом бюджета и статистическим порогом.
Посчитать порогJEP 491 в JDK 24 устранил закрепление виртуальных потоков за потоками-носителями при работе с мониторами. Именно из-за этого механизма переход на виртуальные потоки в Java 21 был рискованным для блокирующего кода внутри synchronized. Однако закрепление всё ещё возможно при выполнении нативного кода, загрузке классов и локальных файловых операциях в Linux. Поэтому событие JDK Flight Recorder (JFR) jdk.VirtualThreadPinned по-прежнему должно входить в контрольный список перед внедрением.
Читать далее