Обновить

ZDT-D: Android как гибкий сетевой шлюз с root-доступом

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

На Android есть привычная модель работы с VPN: приложение поднимает VpnService, создаёт виртуальный интерфейс, получает системную VPN-иконку и начинает пропускать через себя весь трафик устройства или выбранные приложения.

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

ZDT-D — это Android root-модуль для маршрутизации трафика, DPI-инструментов, локальных proxy/tun-пайплайнов, DNS-контроля и управления сетевыми правилами по приложениям.

Это не попытка сделать “ещё один VPN-клиент”. Скорее, это попытка превратить Android-устройство в небольшой настраиваемый сетевой узел, где разные приложения могут ходить через разные маршруты.

Читать далее

Codex. Sign-in failed. Login server error: Token exchange failed: error sending request for url

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

Пытался авторизоваться в Codex Desktop App несколько часов. Codex не пропускал дальше авторизации через Google, падая на этапе получения токена, и я нигде не мог найти решение проблемы.

Читать далее

Telegram Bot API 10.0: Как включить Bot-to-Bot Communication Mode и проверить работоспособность

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

Всем привет! 8 мая 2026 года вышло крупное обновление Telegram Bot API 10.0, которое принесло долгожданную фичу — возможность прямого взаимодействия ботов друг с другом (Bot-to-Bot communication). Официальную документацию можно почитать здесь.

Но есть нюанс. Telegram перенес расширенные настройки ботов в новый веб-интерфейс (Mini App) внутри @BotFather. Если вы привыкли к старому текстовому меню, найти заветный тумблер включения bot2bot сходу может быть неочевидно.

Ниже — короткий гайд о том, как активировать эту функцию и быстро проверить её статус.

Читать далее

Как я впервые полез в open source и не сломал проект

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

Я 10 лет писал энтерпрайз-код, пользовался open source и всё собирался “когда-нибудь” начать контрибьютить. В итоге сделал первый PR — и понял, что страшнее всего было не писать код, а нажать кнопку Create pull request.

Читать далее

Свой личный ИИ: зачем запускать нейросети локально и справиться ли ваш компьютер?

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

Сегодня мы разберем тему локальных нейросетей и того, как можно избавиться от зависимости облачных сервисов.

Люди, использующие облачные сервисы по типу ChatGPT, Claude и др., могут иметь риски потери конфиденциальности. Так еще платя за это приличные суммы.

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

Читать далее

Как я написал инструмент, который превращает мои сессии с Claude Code в сад бонсай

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

Привет всем!

Решил поделиться небольшим проектом, который изначально собирал под себя. Последнее время я много сижу в Claude Code. Со временем поймал себя на мысли, что мне не хватает наглядности. Вся история взаимодействия, контекст сессий и куча потраченного времени просто растворяются в консоли после закрытия терминала.

Вместо очередного дашборда со скучными графиками я решил превратить историю работы в своеобразный визуальный таймлайн, который наглядно показывает твой прогресс. Так получился Bonsai — локальный визуализатор для Claude Code.

Читать далее

OpenTelemetry за один день: traces, metrics, logs в одном pipeline

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

Когда нам прилетел баг «у пользователя не оформляется заказ», я открыл три вкладки: Datadog для трейсов, CloudWatch для логов и отдельный Grafana для метрик. Провёл двадцать минут, пытаясь склеить в голове события из разных систем по timestamp. Потом ещё десять — убеждая себя, что это нормально.

Это не нормально.

Проблема не в инструментах — каждый из них хорош. Проблема в том, что три источника данных не знают друг о друге. Трейс не знает, какой лог к нему относится. Лог не знает, в каком трейсе он возник. Метрики вообще живут своей жизнью.

OpenTelemetry решает именно это: единый стандарт для всех трёх сигналов — traces, metrics, logs — с автоматической корреляцией между ними. И самое важное: вы не привязаны ни к одному вендору. Сегодня Grafana, завтра Jaeger, послезавтра что угодно — код приложения не меняется.

В этой статье я покажу, как поднять полноценный observability-стек с нуля за один рабочий день. С реальным кодом, docker-compose, и результатом, которым можно пользоваться в production.

Читать далее

Как я починил себе YouTube и Discord на Windows, Linux и macOS

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

TL;DR: взял идеи из открытого DPI-инструментария (zapret, GoodbyeDPI, byedpi), выкинул C, переписал на Rust как один кросс-платформенный workspace под Windows + Linux + macOS, и в процессе обнаружил, что мой собственный «дефолтный» профиль не пробивает мой собственный провайдер. Пришлось писать sweep-харнес который перебирает 89 комбинаций (decoy × fooling × repeats × strategy) и тыкается curl-ом в discord.com и youtube.com. Один-единственный конфиг сработал. И это был не тот, который я закладывал по памяти из мануалов.

Предыстория

В январе у меня был UnblockPro — гибрид GoodbyeDPI и собственного шаперона, под Windows. Работало. Потом я портировал его на macOS — отдельный проект, отдельный код, отдельный набор багов. Когда захотел Linux, понял, что повторять третий раз пайплайн «парс TLS — modify — emit» это уже самонаказание.

Решил собрать всё заново. Один Rust-workspace, четыре крейта

Читать далее

Пользовательское Соглашение LiveLib под микроскопом: юридические коллизии

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

Настоящей статьёй я начинаю цикл публикаций, посвящённых разбору Пользовательского Соглашения LiveLib.

В основу этого разбора положены т.н. юридические коллизии Пользовательского Соглашения LiveLib (далее – ПС) с федеральным законодательством. Чтобы было понятно всем читателям объясняю, с точки зрения права юридические коллизии – это расхождение или противоречие между различными нормами права, регулирующими одни и те же отношения. То есть, это столкновение норм права, которые предлагают различные решения для одной ситуации. В нашем случае – это столкновение норм ПС и федерального законодательства. Обращаю Ваше внимание на важный нюанс. Подобные юридические коллизии разрешаются на основе иерархии права. Это значит, что если противоречат акты разной силы, то применяется акт с высшей юридической силой. В нашем случае – это Гражданский Кодекс Российской Федерации (далее – ГК РФ) и иные акты федерального законодательства, а не ПС.

Что это означает? Что те пункты ПС, который противоречат ГК РФ или иным актам федерального законодательства, в частности Закону Российской Федерации «О защите прав потребителей» (далее - Закону) признаются ничтожными, то есть не имеющими юридической силы. Поэтому, если в ПС написано, что ресурс имеет право на то, что противоречит федеральному законодательству, то в силу вступают нормы ГК РФ или иного акта федерального законодательства. 

И начинаем мы этот разбор с пункта 2.10 ПС в котором указаны права Администратора. 

2.10. Пользователь соглашается с тем, что Администратор имеет право удалить учетную запись Пользователя или приостановить доступ Пользователя к услугам Сервиса в случае, если (в том числе, но не ограничиваясь):

Читать далее

QA Helper Pro: как я написал свой первый софт для помощи в тестировании

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

Мой первый опыт в вайбкоде или универсальный инструмент для помощи в тестировании?

Давайте честно: каждый QA-инженер немного ленив в хорошем смысле слова. Нам не хочется тратить по 20 минут на рутину, которую можно автоматизировать. Мы постоянно ищем инструменты: один для Pairwise, второй для проверки MD5, третий для генерации данных.

В какой-то момент я понял, что мне нужно единое «окно», где будет всё. Так появился QA Helper Pro. Это мой первый серьезный опыт в разработке на Python. Весь проект написан на «вайбкоде» — когда ты просто хочешь, чтобы идея работала здесь и сейчас, а интерфейс был приятным и функциональным, я не говорю, что это идеальный инструмент, который правильно структурирован и реализован, но он работает и реально помогает в моей работе.

Подробнее

Захват домена через Shadow Credentials: подробный разбор Kill Chain

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

В этом посте разберем практический сценарий анализа защищенности в Active Directory. Также посмотрим на техники горизонтального перемещения и инструменты пентестеров.

Читать далее

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

Массовые отключения мобильного интернета в России в связи с атаками БПЛА стали насущной проблемой множества людей для которых 4G - единственный доступный способ выхода в сеть. В этой статье мы рассмотрим вариант решения при помощи 4G-роутера с направленной антенной.

Читать далее

Бинарная гипотеза Гольдбаха. Нижняя оценка количества пар простых чисел, дающих в сумме N, кратное 6

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

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

Выведена формула, которая без погрешности (для чисел, кратных шести) находит разность между представлениями числа (x) в виде суммы двух составных чисел вида 6к-1 и 6к+1 и представлениями числа в виде суммы двух простых чисел вида 6к-1 и 6к+1 (h(n)).

Найден способ оценить нижнюю границу x и, следовательно, h(n). Для этого используется формула включений-исключений с коэффициентами.

Метод позволяет проверить гипотезу без посредственного перебора простых чисел, лишь зная их количество до N.

Численная проверка показывает верность гипотезы при использовании в методе 10 простых чисел, для чисел, кратных 6, до 10 в 20, и метод распространяется и на большее значение с использованием новых простых.

Читать далее

О вреде многозадачности и квантовых свойствах кефира

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

Привет, Хабр! Мы часто говорим о проектировании ИИ и сложных систем. Но что, если применить наши инженерные методы к... походу за кефиром? Я решил написать об этом книгу. Это история про моего коллегу Тура Хайдала, его занудного ИИ‑помощника Платона и мир, который оказался немного более «кефирным», чем мы привыкли думать. Это одна из глав книги «Кефир и столб. Теория двух тел»

Читать далее

GitLab CE в Docker Compose: конфиг с SMTP, Runner и нормальными лимитами

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

Привет! В этой статье я поделюсь конфигом для развертывания GitLab CE, который я собрал для своей команды. Когда я начинал, официальные гайды казались слишком общими: то почта не заводится, то Runner не видит сервер, то стандартные лимиты Nginx не дают запушить Docker-образ.

Я собрал "золотую середину": актуальная версия (18.10.0), настроенный SMTP для Gmail, готовый Runner и адекватные лимиты для артефактов. Этот конфиг мы успешно используем для хранения кода и автотестов.

Если вы хотите сразу перейти к делу — вот готовый docker-compose.yml, который мы используем в команде. Он уже содержит настройки SMTP, лимиты Nginx и подключённый Runner. Переменные окружения берутся из .env.

Читать далее

Как я перестал мириться с «тяжелым» вебом и написал свою соцсеть с WebRTC, Bot API и внутренней экономикой

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

В 2026 году стандартный мессенджер на смартфоне или ПК — это комбайн, который весит сотни мегабайт, съедает оперативку и забивает гигабайты памяти кэшем. Платформы перегружены алгоритмическими лентами, рекламой и лишними функциями.

Мне захотелось вернуться к истокам: к быстрому, чистому и понятному интерфейсу. Так появился Gudex — проект, который вырос из идеи минимализма в полноценную платформу с real-time сообщениями, WebRTC-звонками, собственной платформой для ботов и зачатками внутренней экономики.

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

Читать далее

«Готика, порох и 2.5D: Как я объединил Bloodborne и Resident Evil в своем первом коммерческом проекте»

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

Всем привет! Сегодня я хочу поделиться своей историей создания первой игры, на которую я делаю серьезную ставку. Это не просто пет-проект, а попытка создать коммерчески успешный продукт, объединив в себе лучшее из того, во что я сам влюблен как игрок )

Читать далее

Решено: почему в Odoo на Synology «ломается» вёрстка и как это исправить

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

Многие пользователи при установке Odoo через Docker на Synology сталкиваются с тем, что страница управления базами данных или страница логина выглядит как «текст на белом фоне» без CSS‑стилей. В консоли браузера при этом видны ошибки 500 (Internal Server Error) для всех статических файлов.

Читать далее

ИИ дал продавцам инженерную шкуру. Теперь инженерам придётся научиться продавать

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

Есть странный парадокс последних лет.

С одной стороны, инженеру всё труднее оставаться просто инженером. Уже мало «я написал, оно работает». Нужно уметь объяснить, зачем это нужно, кому это больно, почему именно так, чем это лучше альтернативы и почему за это стоит платить.

С другой стороны, продавцы, визионеры и продуктовые люди массово побежали «в инженеры». Не потому что внезапно прошли школу эксплуатации, инцидентов, тестов, миграций и ночных откатов. А потому что ИИ дал им возможность создавать технические артефакты: репозитории, ботов, лендинги, пайплайны, прототипы, диаграммы, README и архитектурные описания.

И теперь все встретились посередине.

Инженеры учатся продавать.
Продавцы надевают инженерную шкуру.
А ИИ доброжелательно помогает обеим сторонам выглядеть убедительнее, чем они есть.

Читать далее

Гигиена проекта при работе с ИИ: когда проект живёт месяцами — как не потерять контекст, решения и проверки

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

В коротких экспериментах с ИИ всё выглядит просто: дал задачу, получил код, поправил пару ошибок, пошёл дальше.

Проблемы начинаются позже — когда проект живёт не один вечер, а несколько недель или месяцев. Чат помнит не всё. Документация устаревает. Решения остаются в истории переписки. Один ИИ-инструмент помогает проектировать, другой работает с файлами и кодом, третий чат используется для ревью, а владелец проекта постепенно превращается в ручной мост между кусками контекста.

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

Я называю набор практик для решения этой проблемы Project Hygiene — гигиена проекта. Это не отдельный промпт и не ещё один способ «правильно общаться с нейросетью». Это способ организовать проектную память, проверки и передачу состояния так, чтобы длинная работа с ИИ-инструментами не расползалась после нескольких сессий.

Читать далее