Обновить

Я использовала Claude Code неправильно. 6 неочевидных фишек, которые изменили мой воркфлоу

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

Несколько недель я использовала Claude Code неправильно. Не то чтобы что‑то не работало — всё было нормально. Описываешь задачу, Claude пишет код, правишь, идёшь дальше. Разумный воркфлоу. Только я использовала мощный инструмент как калькулятор. Потом начала копать. Оказалось, в Claude Code есть целый слой который никак себя не анонсирует — его просто надо найти. Часть есть в документации, часть обнаруживаешь случайно. Вот, что я нашла для себя:

Читать далее

AI-агент слишком рано уходит в код: как не принять diff за понимание задачи

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

Я перестал радоваться моменту, когда AI-агент слишком быстро уходит в код.

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

Проблема начинается раньше: когда факт "агент начал менять файлы" слишком легко повышают до вывода "агент понял задачу".

Сигнал настоящий.

Вывод - нет.

Под AI-агентом здесь я имею в виду не абстрактную автономную систему, а практический инструмент разработки: он читает файлы, строит план, меняет код, запускает проверки и возвращает summary по задаче.

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

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

Читать далее

Как запустить Trilium Notes Server на Android через Termux

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

Несколько лет я пытался организовать удобную систему заметок в Obsidian.
Сначала всё нравилось: markdown, плагины, локальные файлы. Но со временем появилась другая проблема — я начал тратить больше времени на настройку системы, чем на сами заметки.

Плагины конфликтовали между собой, структура постоянно менялась, а вопрос синхронизации между устройствами так и не удалось решить «идеально».
Официальный Obsidian Sync платный, а варианты через Git, Syncthing или облака всё равно требовали дополнительных костылей.

В какой‑то момент я решил посмотреть в сторону self‑hosted решений и наткнулся на Trilium Notes.

Читать далее

Нахождение коэффициентов линейной зависимости методом наименьших квадратов

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

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

Читать далее

TCP-S: прозрачное шифрование TCP-сокетов на хосте через модуль ядра Linux

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

Я давно озадачивался вопросом: как избавить себя от трудозатрат на внедрение систем централизованного управления сертификатами и при этом дополнить существующий транспорт TCP/IP шифрованием? Представьте: весь маршрут анализируется враждебной средой, где каждый может просматривать содержимое трафика, и для каждой единицы нужны методы сокрытия. Хотелось получить прозрачный, автоматический TLS, но без возни с сертификатами, ALPN и модификацией приложений.

В итоге получилось решение в виде модуля ядра Linux — надстройки прямо над протоколом TCP. Он цепляется за netfilter-хуки LOCAL_OUT и PRE_ROUTING и прозрачно шифрует вообще все TCP-сокеты на хосте. Если модуль установлен на клиенте и сервере, весь трафик между ними автоматически идёт в криптованном виде. Это даёт колоссальный выигрыш по времени внедрения, когда нужно быстро скрыть содержимое соединений от систем анализа и демаскирования.

Читать далее

makc — кроссплатформенное управление мышью и клавиатурой на Go без cgo

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

makc — кроссплатформенная Go-библиотека для управления мышью и клавиатурой. Без cgo, без обёрток. Внутри статьи: как я переписал её с C на чистый Go и какие подводные камни нашёл на Win32, CoreGraphics и evdev/Wayland.

Читать далее

Запуск WebStorm из Git Bash: как открыть проект одной командой

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

Если вы работаете на Windows с веб-стеком, скорее всего, ваш терминал - это Git Bash. А если вы используете WebStorm как основную IDE, то наверняка ловили себя на мысли: «Почему я не могу просто написать webstorm . в терминале, как это делают коллеги на macOS и Linux?».

В этой статье разберём, как настроить чистый и быстрый запуск WebStorm из Git Bash.

Читать далее

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

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

Привет. Я программист (со скидкой на самоучку), который в 2021 году решил, что открыть две шаурмичные — хорошая идея. Спойлер: идея была так себе. Но из этого вышла полезная CRM, которой сейчас пользуются 15+ заведений. Расскажу, как я её писал, на чём сломался и почему мой код до сих пор не идеален.

Если вам нужна только техническая часть — листайте к разделу «Архитектура». Если интересна драма с бумажками и комиссиями — читайте по порядку.

Читать далее

Паузы убивающие интерес

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

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

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

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

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

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

Если при этом не делаются акценты (жирный шрифт, подчеркивание и др.) — текст превращается в однотонный хаос, где маркеры расставлены за счет расфокусировки внимания. 

Как это выглядит на практике

Давайте сравним два варианта подачи одного и того же текста и отследим собственную реакцию при прочтении.

Читать далее

Секреты Вселенной в разрядах арифмометра. Часть 2

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

Продолжаем разбирать микромеханику Арифмометра Натурального. В этой части мы проведем проведем физико-математический анализ переноса разряда с точки зрения математической формулы и физического носителя.

Читать далее

Альтернативные сторы и платежи в iOS: что реально изменилось в ЕС и США

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

Apple формально открыла iOS для альтернативных сторов и сторонних платежей в Европе, но сделала это так, что без калькулятора и юриста разбираться уже больно. В ЕС появилась целая матрица режимов дистрибуции и монетизации, а в США по‑прежнему нельзя поднять свой стор, но можно честно поставить кнопку «оплатите на сайте» без отдельной комиссии за сам факт ссылки.

Ниже — разбор, когда всё началось, какие есть варианты дистрибуции и монетизации в ЕС, что поменялось с 1 января 2026 года и что именно разрешили (и не разрешили) в США.

Читать далее

Асинхронность vs синхронность и как Redis и Celery спасают бэкенд

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

Начнем с того, что асинхронность — это конкурентное выполнение задач (мультизадачность, как если бы человек готовил обед и переключался на прочтение книги в перерывах), а синхронность — это последовательное выполнение задач (человек сначала приготовил обед, а потом уже читал книгу). Эти понятия часто путают. Теперь к делу!

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

🧩 Здесь мы подключаем Celery и Redis. Теперь если бэкенду попадается сложный процесс, он не нагружает себя, а создает в Redis задачу (в данном случае мы Redis используем как брокера задач, но у него есть больше возможностей). Теперь бэкенд ставит задачу, отправленную Redis, в состояние ожидания. Celery видит невыполненную задачу в Redis, добавляет в свою очередь новую задачу, последовательно выполняя задачи из очереди и возвращая результат. После выполнения Celery отмечает в Redis задачу выполненной, а в бэкенде запрос снимается с режима ожидания и получает ответ. Теперь быстрые запросы сразу получают ответ, а сложные задачи через Redis и Celery решаются последовательно, и даже если будут тормозить мы сможем подключить больше модулей Celery.

Читать далее

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.

Читать далее