Вы подняли свой прокси-сервер, настроили навороченный sing-box на Android, всё летает, 4K видео грузится мгновенно. Но стоит положить телефон в карман на пять минут и магия исчезает. Соединение залипает, SSH-сессии рвутся, а WhatsApp-звонки превращаются в тишину
Как только вы включаете экран сеть оживает. Казалось бы, типичный агрессивный энергосберегатор Android, но всё гораздо глубже. Я обнаружил там проблему на стыке рантайма Go, логики ядра Linux
Улика №1: conntrack и чистка сети
Первое, что бросается в глаза при анализе логов это странное поведение системы при событиях Pause и Wake. В Android-клиенте sing-box при выключении экрана срабатывает механизм приостановки
DEBUG inbound/hysteria2[hy2-in]: connection failed: timeout: no recent network activity
panic: runtime error: index out of range [0] with length 0
goroutine 615 [running]:
github.com/sagernet/sing/common/bufio.(*SyscallVectorisedWriter).WriteVectorised(...)
В современных сборках sing-box включен флаг with_conntrack. Когда Android сообщает приложению, что пора уходить в спячку (Pause), срабатывает метод ResetNetwork(). Внутри он вызывает conntrack.Close()
Разработчики хотели как лучше: очистить таблицу состояний, чтобы при смене сети (например, переход с Wi-Fi на LTE) не оставалось мертвых записей.
К чему это приводит? На мобилке это буквально рубит все активные TCP-сессии при каждом засыпании экрана. Если ваше приложение не умеет мгновенно переподнимать сессию, вы получаете обрыв
Улика №2: Проблема замершего времени
Почему WireGuard в официальном приложении работает стабильно, а в Go-клиентах (вроде sing-box или других форков) постоянно отваливается?
Всё дело в том, как Go считает время. По умолчанию рантайм Go для всех таймеров и time.Sleep использует системные часы CLOCK_MONOTONIC
В режиме глубокого сна на Android часы CLOCK_MONOTONIC останавливаются
Если вы настроили WireGuard на отправку keepalive каждые 20 секунд:
В 1974 году, когда SQL только вышел из исследовательских лабораторий IBM, работа с базами данных выглядела просто: разработчик писал запрос и получал результат. Без слоёв, абстракций и фреймворков — только строки, описывающие нужные данные.
Эта прямота дорого обходилась. Переименование колонки превращалось в поиск по тысячам строк кода в надежде отловить все упоминания. Неаккуратная работа с пользовательским вводом приводила к SQL-инъекциям. Миграция с Oracle на PostgreSQL часто означала переписывание значительной части запросов из-за различий диалектов.
К середине 1990-х проблема стала настолько заметной, что начали появляться Object-Relational Mapper’ы (ORM). Идея выглядела привлекательно: работать с таблицами как с объектами, писать код на «родном» языке программирования вместо SQL-строк, а перевод на SQL оставлять фреймворку.
Читать далееВ конце прошлого года обновился EuroAssembler, известный лишь в узких кругах, с чем хотелось бы поделиться с любителями низкоуровнего программирования. Он может быть интересен как новичкам, лишь делающим первые шаги в мире ассемблера, так и профессионалам для расширения кругозора. Под катом мы напишем несколько несложных этюдов на этом ассемблере.
Читать далееПериодически читаю комментарии в духе «Разница между Past Simple и Present Perfect – простая грамматическая тема, в школьной программе нормально даётся, или у вас школы какие-то не такие были». Это неправда. Тема тяжелейшая. Не бывает людей, которым она даётся легко. Нередко в ней путаются даже выпускники ИнЯзов. Например, в ситуациях, когда оба времени возможны. Пока есть слова-маркеры (when, just, already) – всё более-менее. Без них плывут, потому что плохо понимают саму суть.
Есть мнение, что занятия по иностранному языку на русском ведут только преподаватели с низкой квалификацией. Английский надо преподавать на английском!
Вести на иностранном языке – хорошая идея, если цель урока – развитие именно устной речи. А вот ставить произношение, объяснять внутреннюю логику сложных идиом тяжело даже на русском. Некоторые грамматические темы «объяснить» практически невозможно – преподаватель должен ставить задачи в правильной последовательности и направлять их решение. Это ювелирная работа – многие учителя не справляются, не могут вскрыть моменты, которые ученик понял неправильно. Добровольно усложнять этот процесс, делая то же самое на иностранном языке, – это зачем??
У меня была студентка, которая каталась на велосипеде не держась руками за руль и при этом вязала. Это не так уж сложно: она любит ездить на велосипеде, часто отпускает руль, вяжет с детства. А представьте учить кого-то СРАЗУ ездить на велосипеде не держась за руль, и чтобы он при этом ещё вязал! Научится, конечно, в конце концов, если не свернёт себе шею в процессе. При изучении языка шею сворачивают редко, зато часто приходят к твёрдому убеждению, что «языки – не моё». По мне, это такая же нелепость, как «я не способен осилить химию в объёме школьного курса – не дано».
___Произношение
Считается, что у преподавателя оно должно быть хорошее, а то «у студента неправильное произношение закрепляется». Это кажется невероятно логичным до тех пор, пока на сотнях примеров не столкнёшься с результатом работы учителей-носителей и с людьми, которые живут 24/7 в языковой среде. Произношение у них часто такое же дубовое, как если бы их учил человек с таким же дубовым произношением.
Читать далееДжеффри Эмануэль — бывший квантовый аналитик с Уолл-стрит, автор эссе про NVIDIA, которое год назад связывали с падением рынка на $2 трлн. Сейчас он руководит блокчейн-компанией Lumera Network, а в свободное время строит открытые инструменты для ИИ-кодинга, используя 20+ ИИ-агентов параллельно.
Читать далееПродолжаем цикл статей с обзором изменений 19-й версии. На этот раз рассмотрим что появилось в рамках сентябрьского коммитфеста 2025 года.
Самое интересное из первого июльского коммитфеста можно прочитать здесь: 2025-07.
Читать далееЧеловек тем успешнее, чем ближе к реальности. Но мысль о том, что она рядом, говорит скорее об обратном. Поэтому мистер Чэтфилд ни на что не претендует, а просто излагает факты и результаты исследований. Честно, открыто, и в большинстве случаев не лестно для среднестатистического человека.
Что ж, попробуем в этом разобраться.
Меня зовут Костя Дубровин. Я веду канал про книги.
Разобраться8 декабря 2025 года вышел релиз Capacitor 8. О нововведениях и миграции со старых версий читайте в статье
Читать далееУже более полутора лет Perplexity почти полностью заменяет мне классический поиск, помогая в работе, учёбе и бытовых вопросах.
Для доступа к Perplexity из России не нужен VPN, есть мобильное приложение и собственный браузер Comet. В наличии много популярных AI-моделей. Базовые функции - бесплатны. Для студентов есть скидка 75% на версию Pro.
В этой статье я постарался систематизировать свой опыт работы с Perplexity.
Мы разберем, как превратить Perplexity из «умного чата» в интерактивную базу знаний, используя Spaces, Tasks, Comet Assistant и другие функции.
Нагрузочный тест показывает «в среднем 800 мс», а распределённый трейс приложения упорно говорит «300 мс» — и начинается традиционная игра в ручную корреляцию. В этой статье разбираем, как связать нагрузку и наблюдаемость: запускать Locust с OpenTelemetry так, чтобы каждый запрос теста оставлял трейсы и метрики, продолжал Trace ID в сервисах и давал картину транзакции «от генератора до базы». А заодно, почему самый важный кусок времени часто прячется ещё до входа в приложение.
Открыть разборРанее видел много публикаций и скептических комментариев на тему использования нейросетей в трейдинге, и хотелось бы поделиться своими наработками и мнением.
Всем, кто имеет большой опыт в торговле, знаком такой термин, как «тестирование стратегии на истории», а что, если я скажу, что с приходом к нам нейросетей мы можем тестировать наши стратегии на будущем?
То есть на будущем для нейросети и прошлом для нас. Такой метод будет наиболее эффективен для результатов, кроме того, мы можем использовать неограниченное количество индикаторов и выявлять те из них, которые бесполезны.
Например, таким образом я узнал, что RSI индикатор совершенно бесполезен в техническом анализе. Сильное заявление? :-)
Многие из вас, оцифровав и обучив нейросеть своей стратегией, могут сильно разочароваться, когда увидят, что результаты оставляют желать лучшего.
А какие-то индикаторы, которыми мы даже не пользовались, отнюдь покажут ошеломляющие результаты в обучении.
Для всех ищущих в индикаторах, в том числе нейросетевых, панацею и кнопку «бабло» отвечу сразу, что это всего лишь способы улучшить свое статистическое преимущество.
Любой индикатор не добавляет информации. Он берёт уже известные данные — цену, объём, диапазон — и пересчитывает их с задержкой, сглаживанием или нелинейным преобразованием.
Поэтому индикатор не может давать гарантированный результат. Он лишь немного смещает распределение вероятностей: в одних состояниях рынка вероятность исхода становится выше, в других — ниже.
Работа индикатора — не «предсказать», а слабым сигналом подсветить контекст: перегрев, инерцию, отсутствие направления, смену режима.
Читать далееПривет! Меня зовут Александр Тарасов, я тимлид команды Billing.Arch в Авито. В этой статье я рассказываю, как мы решили проблему высокой зависимости систем платежей и финансового учёта с помощью изменения архитектуры и внедрения новой технологии управления бизнес-процессами.
Читать далееВ мае 2025 года на Хабре вышел рейтинг российских SCADA-систем. Его можно приветствовать как первый опыт систематизации рынка, однако он обладал существенными недостатками – в него почему-то не попали ведущие российские SCADA и наоборот, были включены малоизвестные новички. Так например, рейтинг 2025 года проигнорировал старейшие российские SCADA КРУГ, TRACE MODE а первое место отдано КАСКАДУ, на тот момент исключенному из реестра отечественного ПО в 2025.
Поэтому представляю рейтинг российских SCADA 2026, представляющий 5 основных SCADA-систем.
Читать далееВозможно, когда вы начинали учить английский, вы задавались вопросом – почему в английском “ты” и “вы” – это одно и то же местоимение? Этот вопрос долго меня мучил, пока я не узнала, что так было не всегда. В статье я расскажу о том, как использовалось английское “ты”, как и почему оно исчезло и где его до сих пор можно встретить.
Когда-то английский был таким же адекватным, как и другие европейские языки, и имел разделение на вежливое “вы” и неформальное "ты”. В немецком для этого есть Sie и du, во французском — vous и tu, в испанском — usted и tú, в русском — вы и ты, а в английском еще во времена Шекспира использовались you и thou /ðaʊ/. Кстати, если эти местоимения из разных языков показались вам похожими, то это неслучайно – они все произошли из прото-индоевропейского языка и являются близкими родственниками.
Читать далееОт теоремы Шеннона 1948 года до pip install rlm-toolkit 2026 года. 78 лет фундаментальной науки в одной библиотеке.
Читать далееПомните обещания об «абсолютной приватности»? Марк клялся, Павел обещал, но в 2025-м новости о мессенджерах всё больше напоминали сводки с фронта: утечки сотен гигабайт переписки, найденные бэкдоры и данные, внезапно ставшие доступными «третьим лицам».
Пока большинство проектов пытается защитить серверную часть или внедрить еще более сложные протоколы шифрования, я решил пойти другим путем: просто убрать сервер из этой цепочки.
В чем реальная уязвимость сигнальных серверов
Многие мессенджеры гордятся стойкостью шифрования - AES-ключи, обфускация трафика и борьба с DPI выглядят солидно. Но остается один критический нюанс: у них всё равно есть сервер.
Даже если его называют «сигнальным» и говорят, что он нужен только для установления связи, это всё равно точка сбора данных. Если данные где-то собираются, за ними рано или поздно придут. Будь то хакерская атака или официальный запрос - метаданные (кто, когда и с кем общался) могут рассказать о вас больше, чем само содержание сообщений.
Ну и наконец в серверную могут просто прийти уполномоченные люди которые потребуют предоставить доступ ко всему ).
Читать далееВсем привет! Недавно закрылось расследование атаки APT-группировки Charming Kitten с онлайн марафона, который проходил на онлайн-полигоне Standoff Defend, созданный для тренировки синих команд. Сейчас я бы хотел показать решение и полную цепочку, которую нужно было составить
Читать далееГлавная проблема столовой – это люди.
Повара мечтают работать в ресторане Мишлен, но никто не мечтал стать поваром в столовой. Люди оказываются там, потому что так получилось. Надо было кормить семью, не хватало денег, была только эта работа рядом с домом.
Изначально у меня было производство пельменей, а постоянно есть пельмени надоедает.
За стенкой пельменного цеха было помещение советской столовой. Хозяин площади жаловался, что поесть негде, а мои пельмени ему нравились. И он натолкнул на мысль покормить людей самому.
Читать далееДо недавнего времени оптогенетика использовалась преимущественно в экспериментах. Отследить активность в конкретной части мозга, проследить связь между стимуляцией участка мозга и поведением субъекта. Главное её преимущество: точечный контроль отдельных цепей нейронных связей. Но насколько реально перепрошить геном человеческих нейронов, а потом стимулировать их светом, через вживленное или внешнее оптоволокно? Вот этому и посвящен новый материал!
Да будет свет!Go 1.26 выходит в феврале, и на мой взгляд это один из самых насыщенных релизов за всю историю языка. Давай разберёмся что нас ждёт, от изменений в языке до оптимизаций runtime и новых инструментов. Статья основана на официальных release notes и исходном коде Go. Это не исчерпывающий список, за полной информацией обращайся к официальной документации.
Читать далее