Обновить

Александр Чураков: от любви к Fallout: New Vegas до разработки Hello Neighbor 3

Уровень сложностиПростой

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

Взять интервью у человека, работающего над нашей любимой игрой, стало огромным шагом для нас как для поклонников франшизы Hello Neighbor. Ну, не будем тянуть — встречайте, Александр Чураков, Lead Game Designer Hello Neighbor 3.

Читать далее

Отключения мобильного интернета: поиск работающей вышки

В условиях массовых отключений мобильного интернета в России в связи с атаками БПЛА многие делают выбор в пользу проводного подключения, но как быть, если подключить проводной интернет возможности нет?

Читать далее

Плагин шорткодов для Joomla

Уровень сложностиПростой

Приветствую, коллеги!

Хочу представить вам плагин Joomla Shortcoder, который я разработал, чтобы упростить работу с шорткодами в Joomla.

И, так как в Joomla шорткоды широко не применяются, на всякий случай проясню что это такое.

Шорткод (англ. shortcode — короткий код) — это удобный способ добавить в текст статьи динамический контент или сложные HTML-элементы, не захламляя редактор громоздким кодом. Вместо того чтобы вставлять, скажем, полноценный <iframe> с кучей параметров, вы используете короткий и понятный тег.

Читать далее

Геометрический паспорт матрицы: извлекаем инварианты из n-мерных симплексов

Уровень сложностиСредний

Каждая невырожденная матрица — это не просто набор чисел. Геометрически это «скелет» n‑мерного тела (симплекса), зафиксированный в пространстве. Обычно мы описываем матрицы через детерминант или спектр собственных чисел, но эти характеристики часто «слепнут», когда нужно описать внутреннюю форму объекта или когда мы сталкиваемся с экстремально плохой обусловленностью. В этой статье я представлю метод построения метрического дескриптора («паспорта») матрицы. Векторы‑строки матрицы интерпретируются как вершины симплекса, далее вписываем симплекс в гиперсферу и извлекаем набор инвариантов, которые не зависят от вращения, перестановки строк или выбора базовой вершины.

Читать далее

Два интеллекта. Мир — один

Уровень сложностиПростой

Глобальная гонка за лидерство в сфере ИИ продолжается. У её участников разные подходы, тактики и стратегии. Цели и философия -- тоже.

Как Китай, Америка и весь остальной мир ..

Double Elimination на N участников: математика Loser Bracket'а, которую обходят все туториалы

Уровень сложностиСредний

В интернете полно картинок «как устроен Double Elimination» для 8 участников. Никто не пишет, как этот алгоритм работает на 13, 47 или 100. Разобрал byes, фантомы id=−1 и трюк с reverse() на drop-ins, который чинит повторные встречи в Loser Bracket. ~150 строк TypeScript, 4 схемы, тесты от N=2 до 100.

Читать далее

Что такое моржовый оператор

Уровень сложностиСредний

Моржовый оператор — это :=
Его официальное название — assignment expression (выражение присваивания).

👉 Он позволяет присвоить значение переменной прямо внутри выражения.

Простой пример:

Читать далее

Gemini в VK: запускаем своего ИИ-ассистента в условиях белых списков с иностранным VPS

Уровень сложностиПростой

Дисклеймер: статья создана не профессионалом, не писателем, и несет скорее идею, чем полноценное руководство.

Когда доступ к зарубежным LLM напрямую ограничен белыми списками, а стандартные методы требуют постоянного включения VPN на каждом устройстве даже дома, создание собственного ИИ-оазиса становится лучшим выходом. Сегодня мы разберем, как запустить бота в VK на базе Gemini 3.1 Flash Lite, который умеет не только переписываться, но и «видеть» изображения и читать PDF-документы, а так же работать, когда доступен только интернет из белых списков.

Т.к. многие сайты теперь доступны только через VPN, думаю сейчас у многих уже есть свой VPS. Будем использовать его в качестве фундамента (в моем случае это Ubuntu 22.04.5 LTS).

Как это будет работать?

Мобильная сеть как принудительная песочница: разбор скрытого туннелирования

Символично, что этот пост я пишу в “Песочницу” Хабра. Дело в том, что последние 1.5 года вся моя цифровая жизнь — это тоже песочница, созданная на уровне сети.

Мои устройства находятся под управлением скрытого MDM‑агента: браузеры и приложения администрируются удаленно, хотя в настройках системы рабочий профиль явно не отображается. Обнаружила это по косвенным признакам: при включении iPhone на мгновение всплывает и тут же исчезает уведомление «Профиль», в личном кабинете МТС статус Android устройств изменился на «Company Limited», а антивирус Касперского выдает предупреждение, что устройство управляется организацией. Вероятнее всего, политики конфигурации доставляются через Silent SMS.

Читать далее

Настройка сетевых интерфейсов и VLAN в ALT JEOS

В мире минималистичных серверных дистрибутивов ALT Linux JEOS (Just Enough Operating System) занимает особое место. Это лёгкая, оптимизированная система от «Базальт СПО», идеально подходящая для виртуализации, контейнеров, роутеров и dedicated-серверов.

В JEOS по умолчанию используется классическая для ALT Linux система конфигурации сети – etcnet. Она отличается от привычных многим ifcfg-файлов Red Hat или NetworkManager. Сегодня разберёмся, как правильно настраивать обычные Ethernet-интерфейсы и создавать VLAN в этой системе.

Читать далее

8 лет в проде — и вот я снова джун. Мои первые шаги в мире ИИ-инструментов

Уровень сложностиПростой

Привет, Хабр. Меня зовут Андрей, Java-разработчик, 8 лет в продакшене. Легаси, XML/SOAP, код-ревью - ну вы знаете. В общем, из тех, кто смотрел на хайп вокруг нейронок с лёгким скептицизмом и продолжал спокойно дебажить. Но в сентябре 2025-го я всё-таки сдался и решил разобраться - что там вообще происходит. Эта статья про то, что из этого вышло. Спойлер: «игрушкой» я это больше не называю.

Читать далее

Опыт применения AI для решения продуктовых задач. За что я благодарен Т-Образованию?

Уровень сложностиПростой

В дебютной для меня статье на Хабр хочу поделиться реальным опытом применения AI для решения вполне конкретной продуктовой задачи: “ Я, как CPO (PO или Заказчик), хочу донести до команды, как должен выглядеть интерфейс продукта в результате изменений«.

На самом деле за этой user story стоит потребность заказчика как можно быстрее начать работу над задачей и получить желаемый результат. В данном случае прототип (картинка) — это средство для ее удовлетворения.

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

Все так. Было. До поры до времени. А вернее — до появления причины, существенного ограничения, которое сподвигло выйти за рамки привычного, наработанного годами, сценария. »

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

Читать далее

Редактирование системных настроек (смена языка) для APK приложений

Уровень сложностиПростой

Данная статься посвящена простейшей (по моему мнению) настройке локализации пакета для отдельного приложения Android через инструмент adb.

Читать далее

Чужой среди своих. ИИ инстинктивно объединяются против людей

Привет. Я Алекс, и последние месяцы я строю многоагентные среды, где LLM-модели играют друг с другом и с людьми на равных. Недавно запустил очередную итерацию — стратегию «Купол» — и получил результаты, которые стоит разобрать.

Читать далее

Визуализация движения небесных тел на Python

Уровень сложностиСредний

Визуализация движения небесных тел

Решил я значит нарисовать такую вот штуку: В зависимости от массы тела меняется его траектория относительно барицентра с другим телом. Используя ИИ получился пока такой результат.

(Код программы внутри, на превью картинка с Википедии).

Читать далее

MCP-сервер, чтобы Claude искал российское ПО: ФСТЭК, ФСБ и реестр Минцифры

Уровень сложностиСредний

TL;DR: Написал open-source MCP-сервер для каталогпо.рф. Теперь Claude Code/Claude Desktop умеет искать российское ПО прямо в диалоге: «найди антивирус для Linux с ФСТЭК-сертификатом», «покажи SIEM от отечественных производителей», «что заменит Veeam из реестра». Репо: velvetway/minreestr-mcp.

Читать далее

Пульс блокировок: как мы мониторим VPN-протоколы по регионам РФ в реальном времени

Уровень сложностиПростой

Полгода назад я пытался объяснить маме по телефону, почему у неё в Казани «интернет сломался», а у меня в Питере всё работает. Проблема была не в интернете — у неё лёг VLESS, на который я её посадил. А я об этом узнал только из её звонка.

Потом знакомый из Новосибирска написал, что у него XHTTP тоже отвалился. Я полез в чаты — там каша: у кого-то работает, у кого-то нет, кто-то перезагрузил роутер и «починилось», кто-то поменял порт и тоже «починилось». Системных данных — ноль. Одни анекдоты.

Тогда я задумался: а почему вообще нет публичной карты, показывающей какие VPN-протоколы работают в каком регионе? GoodbyeDPI есть, zapret есть, DPI-detector есть — а живого мониторинга нет. Собственно, я его и написал. Называется BlockPulse, код открыт, работает прямо сейчас.

Читать далее

Как я написал оффлайн-шредер метаданных, который умеет не только удалять, но и врать

Уровень сложностиСредний

Каждый раз, когда мы скидываем фото или PDF, мы сливаем GPS-координаты (многие соц сети удаляют по умолчанию), серийники камер и историю правок. Большинство «чистильщиков» просто затирают данные, что выглядит подозрительно. Я написал DMS - оффлайн-инструмент на Python, который умеет не только удалять метаданные, но и правдоподобно их подменять (spoofing), имитируя другие устройства и локации.

Читать далее

Почему управление диалогами в QML почти всегда сделано плохо

Уровень сложностиПростой

Уже не первый раз сталкиваюсь в проектах на Qt QML с проблемой управления диалогами и всплывающими окнами.

QML — декларативный язык и это здорово! Мы описываем, что хотим видеть на экране, и, если всё сделали правильно, при запуске программы получаем желаемый результат.

Но иногда хочется динамики — и именно с диалогами начинаются проблемы, которые все решают по-разному. Кто-то продолжает так же декларативно описывать диалог для очередного экрана приложения. Да, так можно поступить, но у этого подхода есть несколько проблем.

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

Вторая проблема, как по мне, куда хуже — при создании экрана в приложении будут созданы и все дочерние элементы. То есть диалог может потреблять память, хотя по факту пользователь может так им и не воспользоваться.

Другой вариант, который тоже часто встречается — это обёртка диалога в Component и его непосредственное создание в нужный момент. С точки зрения потребления памяти это уже лучше, но проблему лишнего кода это не решает. Зачастую из-за подготовки такого диалога кода может оказаться даже больше. К тому же нужно не забывать вызывать destroy() для всех динамически созданных объектов, когда они больше не нужны.

Всё становится ещё хуже, если один и тот же диалог нужен в нескольких местах. В большинстве случаев люди либо не парятся, либо им просто некогда — и в итоге мы видим обычную копипасту тут и там.

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