Pull to refresh
4
afi@afi

User

0,1
Rating
Send message

AmneziaWG: от 2.0 к 3.1, и что творится у вас под капотом

Level of difficultyMedium
Reading time15 min
Reach and readers110K

AmneziaWG 3.0 зашифровал заголовки пакетов, 3.1 добавил случайные хвосты — и оба раза «просто обновить бинарники» оказалось недостаточно. Это конспект двух обновлений, прогнанных через собственную панель: кто в связке awg-quick / awg / amneziawg-go за что отвечает, какие параметры обязаны совпасть на сервере и клиенте побайтово, а какие каждая сторона ставит себе сама, почему S1S4 больше не могут быть меньше 12 и в каком порядке мигрировать живой сервер, чтобы не отключить разом всех клиентов.

Главная особенность всех этих граблей одна: о любой ошибке протокол сообщает вам молчанием. Ни строчки в логе — просто никогда не появляется latest handshake. Ниже карта тех мест, где стоит искать.

Читать далее

Тропа хиппи: утраченный маршрут

Reading time20 min
Reach and readers22K

С середины 1950-х и вплоть до конца 1970-х годов тысячи молодых людей из западных стран отправлялись по одному и тому же маршруту: из Америки и Западной Европы через Балканы, Турцию, Иран и Афганистан в Индию, Непал и ещё дальше — в Таиланд.

Этот маршрут стал символом целой эпохи: эпохи свободной любви, лёгкого доступа к веществам, дешёвых авиабилетов (нет, это не рекламная интеграция) и духовных поисков целого поколения.Что это были за люди? Куда и зачем они ехали? Где останавливались по пути? С какими опасностями сталкивались? Как маршрут менял людей, и как люди меняли маршрут? Ну и, наконец, что они находили в конце долгого пути?

Поговорим про тропу хиппи.

Читать далее

Docker Fundamentals: что внутри compose.yaml и как там всё устроено

Level of difficultyMedium
Reading time31 min
Reach and readers16K

Третья часть серии статей по Docker. Подробный справочник по структуре compose-файла — top-level разделы, services, build, deploy, networks, volumes, configs, secrets, интерполяция переменных, merge-правила и YAML-фрагменты.

Читать далее

B4 — сетевой мультитул по обходу блокировок

Level of difficultyMedium
Reading time13 min
Reach and readers77K

С момента написания первой статьи о B4 прошло полгода. Казалось бы, не очень много времени, но софтина получила ну очень большое количество фич, о которых хочется рассказать подробно. Не буду скрывать: хабраэффект сделал своё дело, и благодаря большому интересу после первой статьи очень многие не разочаровались в отсутствии какого-то функционала, а активно помогали - коммуникацией, запросами, тестированием, - благодаря чему все эти фичи в B4 и появились.

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

Читать далее

Я больше не объясняю нейросети контекст. Вот что я сделал вместо этого…

Level of difficultyEasy
Reading time12 min
Reach and readers25K

Я попробовал собрать LLM Wiki: workflow, где нейросеть не просто отвечает на вопросы по документам, а постепенно поддерживает базу знаний. Взял Obsidian, Codex и несколько статей с Хабра, сделал ingest, query и lint, а затем посмотрел, чем такой подход отличается от обычного RAG. В статье показываю структуру vault, примеры wiki-слоя, стоимость ingest на Yandex Foundation Models и риски, которые быстро всплывают на практике.

Читать далее

Пишем gRPC сервис на Go — сервис авторизации

Level of difficultyMedium
Reading time63 min
Reach and readers148K

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Исходный код проекта: https://github.com/GolangLessons/sso


Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

На выходе мы получим полноценный рабочий сервис авторизации, который вы сможете по аналогии подключать к своим пет-проектам.


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →

Как починить блокировку легальных сайтов РКН ТСПУ одной строчкой в Chrome

Level of difficultyEasy
Reading time2 min
Reach and readers95K

Мне очень хотелось разобраться в этой ситуации с блокировками..
Не мог с Chrome зайти на beget.com - там CDN блокировался. Тыкался тыкался..

Вставляете в строку браузера chrome://flags/

Ищите Cryptography Compliance (CNSA) (#cryptography-compliance-cnsa)

Читать далее

Основы информатики для всех

Level of difficultyEasy
Reading time3 min
Reach and readers30K

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

Читать далее

Оживляем дешевый Smart TV: обход вырезанного ADB, деблоат Яндекс.ТВ и сборка легкого медиацентра

Reading time6 min
Reach and readers46K

Купил я тут по дешевке 43-дюймовый телевизор Hartens (модель HTY-43FHD06B‑HK22, панель BOE HV430FHB‑F91) под проект умного гостевого дома. Железо внутри скромное: чипсет MediaTek MT5867, 32-битная архитектура (armeabi‑v7a), 1.5 ГБ оперативной памяти и вишенка на торте — фирменная оболочка Яндекс.ТВ на базе AOSP Android 11.

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

План по исправлению созрел быстро, но на первом же шаге я уперся в стену: производитель полностью вырезал пункт «Отладка по USB» (USB Debugging) из меню разработчика. USB‑порты у телевизора работают только в режиме хоста (подключить ПК напрямую кабелем нельзя), а сетевой ADB по умолчанию закрыт.

Ниже я расскажу, как удалось обойти это ограничение, залезть «под капот» телевизора и превратить тормозящий яндекс‑комбайн в чистый и шустрый Android TV.

Читать далее

Дорожная карта домашнего мини-ПК в 2026: что развернуть, в каком порядке, и зачем — план апгрейда от инфраструктурщика

Level of difficultyMedium
Reading time20 min
Reach and readers29K

Каждый месяц с карты списываются деньги за подписки. Spotify, Яндекс Плюс, Notion, Obsidian Sync, Google One — суммы небольшие по отдельности, в сумме набегает заметно. Параллельно с этим у меня работает VPS с несколькими проектами, на роутере крутится OpenWrt с AdGuard Home, в ноутбуке стоит Docker. Инфраструктурный опыт есть. Дома при этом — никакого сервера, всё в облаке.

Это начинает раздражать не только из-за денег. Сервисы меняют каталоги без предупреждения, поднимают цены, требуют доплат за объём, периодически ломают регионы. Контроль над собственными фотографиями, заметками и медиатекой постепенно перестал быть моим.

Решил спланировать переезд на свой мини-ПК. Пока разбирался с железом и стеком, обнаружил, что нормальной системной дорожной карты «бери и иди» в 2026 году нет. Есть каталоги «50 self-hosted сервисов», восторженные посты про конкретные приложения, треды на Reddit. Структурированного маршрута для нового человека — нет.

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

Читать далее

Claude Code — полный гайд и обучение для новичков с нуля

Level of difficultyEasy
Reading time40 min
Reach and readers239K

В этой статье ты получишь полный гайд по Claude Code.. В одной этой статье вся информация, которая тебе нужна.

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

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

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

Читать далее

Когда пет-проект выходит из-под контроля: пишем свой tun2socks и закрываем дыры в Android VPN

Level of difficultyEasy
Reading time4 min
Reach and readers28K

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

Уязвимость была тривиальной — ядро клиента открывает локальный SOCKS-прокси, который никак не защищен. Любая софтина на устройстве может постучаться в этот локальный порт и отправить пакет наружу. Ради академического интереса я написал Android-приложение TeapodStream, под капотом которого связал xray-core и tun2socks. Локальный прокси я посадил на случайный порт и закрыл динамическим паролем (подробнее об этом писал в прошлой статье).

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

Но... я сам не заметил, как меня затянуло.

Читать далее

Работаем с Claude Code на десктопе из России

Level of difficultyMedium
Reading time12 min
Reach and readers86K

Недавно я, не выдержав микроскопических лимитов Cursor (в остальном прекрасный инструмент!) по доступу к передовым моделям Anthropic, захотел получить их по плоским тарифам от фирмы-разработчика. Это такие тарифы с помесячной/годовой оплатой, а не с оплатой за каждый запрос к API.

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

В итоге я всё настроил: Claude работает как родной, и в этой статье — мой опыт, а также тесты разных VPS-локаций.

Я опишу настройку под Linux-десктоп, но в конце в качестве бонуса будет настройка и под Windows.

Читать далее

Мой VPN пережил белые списки. Архитектура из 4 уровней за 265₽ в месяц

Level of difficultyEasy
Reading time6 min
Reach and readers217K

Сделал себе VPN, который:

— работает через VLESS Reality, неотличимый от обычного HTTPS

— пробивает белые списки мобильных операторов через relay на Yandex Cloud

— имеет готовый код для аварийного канала через WebRTC и Яндекс.Телемост (пока не понадобился) — автоматически переключается между 4 уровнями защиты

— пропускает российские сайты (Яндекс, Госуслуги, банки) напрямую, без VPN

Весь код, конфиги, скрипты деплоя — всё написал Claude Code. Я только описал проблему и дал ему почитать несколько статей с Хабра про блокировки. Ну и бил его кнутом, пока всё не заработает.

Расскажу, как это устроено и как повторить.

Читать далее

Как я поднял AmneziaWG 2.0 на роутере ASUS: DPI, GeoIP и веб-интерфейс

Level of difficultyMedium
Reading time6 min
Reach and readers35K

Когда VPN на телефоне уже не спасает, а DPI провайдера научился резать WireGuard за секунды, приходит время переносить обфускацию на роутер. В этой статье расскажу, как я сделал полноценный аддон для Asuswrt-Merlin с веб-интерфейсом, выборочной маршрутизацией и поддержкой AmneziaWG 2.0. И почему пришлось отказаться от kernel module.

Проблема:

У меня ASUS GT-AX11000 с прошивкой Asuswrt-Merlin. Обычный WireGuard на роутере через встроенный клиент Merlin работает, но провайдер его видит и режет. AmneziaWG решает эту проблему за счёт обфускации, DPI не может отличить трафик от обычного UDP.

На телефоне и ПК есть клиент Amnezia VPN, и там всё работает. Но есть нюанс...

Читать далее

Практический расчет и изготовление преобразователя типа Joule Thief

Reading time8 min
Reach and readers29K

Практический расчет и изготовление повышающего преобразователя Joule Thief для питания светодиода от разряженной батарейки

В данной статье показано, как самостоятельно рассчитать и изготовить простой преобразователь Joule Thief, способный питать светодиод от одной батарейки AA или AAA.

Основное назначение устройства — экономичная навигационная подсветка в тёмном помещении, где требуется минимальный ток потребления и длительная работа от батарейки. 

Главная особенность этой схемы — возможность работы при очень низком напряжении питания. В некоторых случаях устройство продолжает работать даже тогда, когда напряжение батарейки падает до 0,3–0,6 В. 

Это позволяет эффективно использовать батарейки, которые уже считаются разряженными для большинства устройств

Читать далее

ApiKit — чистый REST API в Symfony без шаблонного кода

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

REST API на Symfony писать удобно, но есть одна скучная особенность: контроллеры быстро начинают обрастать повторяющимся кодом. Парсинг запроса, валидация, однотипная JSON‑обёртка, try/catch с преобразованием исключений в HTTP‑ответы. Всё это несложно, но со временем размазывается по десяткам эндпоинтов и отвлекает от основной задачи.

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

Читать далее

UseCase или как описывать бизнес-процессы в коде

Level of difficultyMedium
Reading time7 min
Reach and readers11K

UseCase - как организовать своё приложение с точки зрения бизнес-процессов, чтобы не погрязнуть в хаосе сервисов, контроллеров и разрозненной логики.

Узнать как это

TOTP без смартфона

Level of difficultyEasy
Reading time5 min
Reach and readers37K

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

Читать далее

3000+ часов в Claude Code: как я сконцентрировал весь опыт в трёх плагинах

Level of difficultyHard
Reading time10 min
Reach and readers66K

Я работаю в Claude Code каждый день. Не «попробовал пару раз и написал статью» — а реально каждый день, минимум 8 часов, иногда значительно больше. Больше года. Если грубо посчитать — это 3000+ часов в терминале. За это время я успел построить собственную систему оркестрации из 39 агентов, опубликовать её как open-source, набрать звёзды на GitHub — и эволюционировать дальше.

Сейчас весь мой опыт сконцентрирован в трёх плагинах.

Полгода назад я написал на Хабре про Claude Code Orchestrator Kit — 39 агентов, 38 скиллов, 25 слеш-команд. Серьёзная система, реально работавшая. И я ей горжусь — это был важный этап.

Но когда сидишь в инструменте по 8 часов в день — быстро видишь, что можно сделать лучше. Экосистема Claude Code развивается быстрее, чем один человек способен обновлять свой кит. Каждые две-три недели Anthropic что-то меняет — новые API для плагинов, новые возможности агентов, новые паттерны. И каждый раз нужно лезть в 39 файлов агентов, проверять, не сломалось ли что-то, не устарел ли паттерн.

В какой-то момент я понял: пора эволюционировать. При моём объёме работы с Claude Code часы в неделю уходили не на продукт, а на починку инфраструктуры. Значит, нужен другой подход.

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

Information

Rating
3,527-th
Location
Россия
Date of birth
Registered
Activity