С весны мы ведём контекстную рекламу по запросам про удалённый доступ в 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. Главный вопрос статьи — не «где находится кнопка», а «какой участок конвейера меняет этот параметр и как проверить эффект».
Читать далееБудущее наступило, старик
За последние несколько десятков лет почти в каждое устройство ставили литий-ионные аккумуляторы. Высокая энергоёмкость, долговечность (в разумных пределах) и гибкость форм сделали их стандартом для большинства устройств.
Но всё чаще в новостных заголовках стали говорить про проблемы самопроизвольного возгорания смартфонов, ноутбуков и даже автомобилей, чувствительности к экстремальным погодным условиям и т. д. Инженеры стали искать другие, новейшие варианты конструкций, самым интересным из которых стало создание твердотельных аккумуляторов.
Поговорим про внутреннее устройство твердотельных аккумуляторов. В чём отличие от литий-ионных?
Нет, в статье я не буду расписывать, насколько классные твердотельные батареи, как они в один момент смогут решить все проблемы человечества и что сейчас за ними наше будущее (с чем я в принципе согласен, но не будем про это). Рассмотрим факты и практику.
Читать далееПри разработке персонального цифрового ассистента здоровья «Я Здоров» мы использовали долгосрочную память — 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 по-прежнему должно входить в контрольный список перед внедрением.
Читать далееClaude считает каждую страницу отсканированного PDF как изображение — это примерно 1785 токенов на страницу. Незаметно 200-страничный документ превращается в 357 000 токенов. Если взять Claude Sonnet 5 и цену $3 за миллион токенов это около 90 рублей только за то, чтобы модель просканировала ваш документ. При прогоне 50 документов в день стоимость составит $55 в сутки, или $1 600 в месяц.
Если из того же PDF заранее извлечь текст, страница будет стоить в среднем 300–600 токенов, а 200 страниц — 60–120 тысяч токенов, то есть в 3–6 раз дешевле. Простая смена формата может сэкономить значительную часть бюджета.
Читать далееПривет, Хаброжители! Сегодня данные играют главенствующую роль в проектировании систем, и нужно обеспечить их масштабируемость, согласованность, надежность, производительность и удобство сопровождения. Необходимо учитывать огромное разнообразие систем хранения данных: реляционных баз данных, хранилищ NoSQL, складов и озер данных, а также облачных и локальных сервисов и встроенных баз данных.
С новым обновленным изданием книги вы сможете разобраться в терминологии и решить какой вариант лучше всего подойдет для вашего приложения.
Читать далееВы когда-нибудь пробовали увеличить старое фото через нейросеть и получали лицо, которое не имеет ничего общего с оригиналом? Или загружали снимок в апскейлер и видели, как он честно увеличил все царапины вместе с лицом?
Апскейл и реставрация - нетипичный кейс использования, требующий особый подход. В 2026 году на рынке есть несколько моделей, которые закрывают эти задачи с разной степенью надёжности. Мы протестировали GPT Image 2, Nano Banana 2, Grok Imagine Image 2.0, Gen4-Image, FLUX.2-Flex и Qwen-Image-2-Pro на реальных повреждённых фотографиях. Разница в результатах оказалась значительнее, чем можно было ожидать.
Читать далееПро AI в разработке/тестировании/пентесте написано и сказано немало. Постепенно он проникает во все сферы нашей жизни, и уже часто можно услышать, что мы все скоро останемся без работы. В этом есть доля правды. Но мне понравилась услышанная однажды фраза – «Не ИИ нас заменит, но те, кто смог приручить ИИ, заменит тех, кто с этим не справился».
Вот мы в команде Secware и решили проверить, как на текущий момент искусственный разум справляется с задачами пентеста.
В любом пентесте часть рутинной работы можно переложить на агентов, однако сразу встает практический вопрос: насколько такой подход эффективен в реальной работе и какие задачи по-прежнему требуют участия человека. Для тестирования мы взяли OpenCode, Metasploitable 3, 2 middle-пентестера и таймер. И вот что из этого получилось.
Читать далееВсем привет! Меня зовут Максимкин Андрей, я iOS-разработчик в hh.ru. В далеком 2023 году мы уже рассказывали про нашу мобильную аналитику в этой статье. С тех пор много воды утекло, а вместе с ней поменялся и наш флоу работы с аналитикой. И начну я как раз с того, что нас к этому подтолкнуло.
Для погружения в контекст можно перечитать старую статью, но я постараюсь изложить материал так, чтобы было понятно даже тем, кто её не читал. Рассмотрим в первую очередь технические моменты, хотя и про продуктовые не забудем. В конце будет практическая часть, в которой мы попробуем генерировать код на Swift.
Статья будет полезна разработчикам, аналитиками и вообще всем, кто так или иначе вовлечён в создание мобильных и веб-приложений.
Читать далееГуманоиды уже умеют драться, танцевать и работать на заводах, но с обычной бытовухой пока справляются плохо.
Разбираюсь, почему главный дефицит рынка может оказаться не в самом железе, а в ИИ-моделях, данных обучения и сервисах вокруг роботов.
Читать далее