Сборщик RSS-лент

VPN на Go засыпает вместе со смартфоном: дебажим таймеры, Android и CLOCK_BOOTTIME

Habr.com - пн, 01/19/2026 - 23:15

Вы подняли свой прокси-сервер, настроили навороченный 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 секунд:

Читать далее

Prisma ORM на скорости чистого SQL? Конвертация JSON-запросов в SQL-строку

Habr.com - пн, 01/19/2026 - 23:06

В 1974 году, когда SQL только вышел из исследовательских лабораторий IBM, работа с базами данных выглядела просто: разработчик писал запрос и получал результат. Без слоёв, абстракций и фреймворков — только строки, описывающие нужные данные.

Эта прямота дорого обходилась. Переименование колонки превращалось в поиск по тысячам строк кода в надежде отловить все упоминания. Неаккуратная работа с пользовательским вводом приводила к SQL-инъекциям. Миграция с Oracle на PostgreSQL часто означала переписывание значительной части запросов из-за различий диалектов.

К середине 1990-х проблема стала настолько заметной, что начали появляться Object-Relational Mapper’ы (ORM). Идея выглядела привлекательно: работать с таблицами как с объектами, писать код на «родном» языке программирования вместо SQL-строк, а перевод на SQL оставлять фреймворку.

Читать далее

Об ассемблере EuroAssembler, о котором вы, возможно, не слышали

Habr.com - пн, 01/19/2026 - 22:30

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

Читать далее

Языковая среда и носители. Неочевидные моменты

Habr.com - пн, 01/19/2026 - 22:18

Периодически читаю комментарии в духе «Разница между Past Simple и Present Perfect – простая грамматическая тема, в школьной программе нормально даётся, или у вас школы какие-то не такие были». Это неправда. Тема тяжелейшая. Не бывает людей, которым она даётся легко. Нередко в ней путаются даже выпускники ИнЯзов. Например, в ситуациях, когда оба времени возможны. Пока есть слова-маркеры (when, just, already) – всё более-менее. Без них плывут, потому что плохо понимают саму суть.

Есть мнение, что занятия по иностранному языку на русском ведут только преподаватели с низкой квалификацией. Английский надо преподавать на английском!

Вести на иностранном языке – хорошая идея, если цель урока – развитие именно устной речи. А вот ставить произношение, объяснять внутреннюю логику сложных идиом тяжело даже на русском. Некоторые грамматические темы «объяснить» практически невозможно – преподаватель должен ставить задачи в правильной последовательности и направлять их решение. Это ювелирная работа – многие учителя не справляются, не могут вскрыть моменты, которые ученик понял неправильно. Добровольно усложнять этот процесс, делая то же самое на иностранном языке, – это зачем??

У меня была студентка, которая каталась на велосипеде не держась руками за руль и при этом вязала. Это не так уж сложно: она любит ездить на велосипеде, часто отпускает руль, вяжет с детства. А представьте учить кого-то СРАЗУ ездить на велосипеде не держась за руль, и чтобы он при этом ещё вязал! Научится, конечно, в конце концов, если не свернёт себе шею в процессе. При изучении языка шею сворачивают редко, зато часто приходят к твёрдому убеждению, что «языки – не моё». По мне, это такая же нелепость, как «я не способен осилить химию в объёме школьного курса – не дано».

___Произношение

Считается, что у преподавателя оно должно быть хорошее, а то «у студента неправильное произношение закрепляется». Это кажется невероятно логичным до тех пор, пока на сотнях примеров не столкнёшься с результатом работы учителей-носителей и с людьми, которые живут 24/7 в языковой среде. Произношение у них часто такое же дубовое, как если бы их учил человек с таким же дубовым произношением.

Читать далее

Он тратит $4600 долларов на подписки Claude Max и вайб-кодит с помощью педалей. Знакомимся с Джеффом Эмануэлем

Habr.com - пн, 01/19/2026 - 22:17

Джеффри Эмануэль — бывший квантовый аналитик с Уолл-стрит, автор эссе про NVIDIA, которое год назад связывали с падением рынка на $2 трлн. Сейчас он руководит блокчейн-компанией Lumera Network, а в свободное время строит открытые инструменты для ИИ-кодинга, используя 20+ ИИ-агентов параллельно.

Читать далее

PostgreSQL 19: Часть 2 или Коммитфест 2025-09

Habr.com - пн, 01/19/2026 - 21:55

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

Самое интересное из первого июльского коммитфеста можно прочитать здесь: 2025-07.

Читать далее

Обзор книги «Критическое мышление: анализируй, сомневайся, формируй собственное мнение», Том Чэтфилд

Habr.com - пн, 01/19/2026 - 21:41

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

Что ж, попробуем в этом разобраться.

Меня зовут Костя Дубровин. Я веду канал про книги.

Разобраться

[Перевод] Релиз Capacitor 8

Habr.com - пн, 01/19/2026 - 21:39

8 декабря 2025 года вышел релиз Capacitor 8. О нововведениях и миграции со старых версий читайте в статье

Читать далее

Perplexity AI: Как превратить ИИ-поисковик в инструмент для работы и учёбы

Habr.com - пн, 01/19/2026 - 21:34

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

Для доступа к Perplexity из России не нужен VPN, есть мобильное приложение и собственный браузер Comet. В наличии много популярных AI-моделей. Базовые функции - бесплатны. Для студентов есть скидка 75% на версию Pro.

В этой статье я постарался систематизировать свой опыт работы с Perplexity.
Мы разберем, как превратить Perplexity из «умного чата» в интерактивную базу знаний, используя Spaces, Tasks, Comet Assistant и другие функции.

Читать далее

Наблюдаемое нагрузочное тестирование: Locust + OpenTelemetry

Habr.com - пн, 01/19/2026 - 21:03

Нагрузочный тест показывает «в среднем 800 мс», а распределённый трейс приложения упорно говорит «300 мс» — и начинается традиционная игра в ручную корреляцию. В этой статье разбираем, как связать нагрузку и наблюдаемость: запускать Locust с OpenTelemetry так, чтобы каждый запрос теста оставлял трейсы и метрики, продолжал Trace ID в сервисах и давал картину транзакции «от генератора до базы». А заодно, почему самый важный кусок времени часто прячется ещё до входа в приложение.

Открыть разбор

Нейросети и трейдинг, и новый способ тестирования стратегий

Habr.com - пн, 01/19/2026 - 20:23

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

Всем, кто имеет большой опыт в торговле, знаком такой термин, как «тестирование стратегии на истории», а что, если я скажу, что с приходом к нам нейросетей мы можем тестировать наши стратегии на будущем?

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

Например, таким образом я узнал, что RSI индикатор совершенно бесполезен в техническом анализе. Сильное заявление? :-)

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

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

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

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

Поэтому индикатор не может давать гарантированный результат. Он лишь немного смещает распределение вероятностей: в одних состояниях рынка вероятность исхода становится выше, в других — ниже.

Работа индикатора — не «предсказать», а слабым сигналом подсветить контекст: перегрев, инерцию, отсутствие направления, смену режима.

Читать далее

Billing Platform: внедрение Temporal и переход к предметно-ориентированной микросервисной архитектуре

Habr.com - пн, 01/19/2026 - 20:18

Привет! Меня зовут Александр Тарасов, я тимлид команды Billing.Arch в Авито. В этой статье я рассказываю, как мы решили проблему высокой зависимости систем платежей и финансового учёта с помощью изменения архитектуры и внедрения новой технологии управления бизнес-процессами.

Читать далее

ТОП-5 Российских SCADA-систем 2026

Habr.com - пн, 01/19/2026 - 20:06

В мае 2025 года на Хабре вышел рейтинг российских SCADA-систем. Его можно приветствовать как первый опыт систематизации рынка, однако он обладал существенными недостатками – в него почему-то не попали ведущие российские SCADA и наоборот, были включены малоизвестные новички. Так например, рейтинг 2025 года проигнорировал старейшие российские SCADA КРУГ, TRACE MODE а первое место отдано КАСКАДУ, на тот момент исключенному из реестра отечественного ПО в 2025.

Поэтому представляю рейтинг российских SCADA 2026, представляющий 5 основных SCADA-систем.

Читать далее

На «вы» к собаке и на «ты» к Богу: почему обращения в английском такие странные

Habr.com - пн, 01/19/2026 - 19:40

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

Когда-то английский был таким же адекватным, как и другие европейские языки, и имел разделение на вежливое “вы” и неформальное "ты”. В немецком для этого есть Sie и du, во французском — vous и tu, в испанском — usted и , в русском — вы и ты, а в английском еще во времена Шекспира использовались you и thou /ðaʊ/. Кстати, если эти местоимения из разных языков показались вам похожими, то это неслучайно – они все произошли из прото-индоевропейского языка и являются близкими родственниками.

Читать далее

RLM-Toolkit v1.2.1: Теоретические основы и оригинальные разработки

Habr.com - пн, 01/19/2026 - 19:27

От теоремы Шеннона 1948 года до pip install rlm-toolkit 2026 года. 78 лет фундаментальной науки в одной библиотеке.

Читать далее

Удалил сервер из мессенджера. Как общаться по P2P в 2026 году без метаданных и Google Services. Личный опыт и KMP

Habr.com - пн, 01/19/2026 - 19:23

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

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

В чем реальная уязвимость сигнальных серверов

Многие мессенджеры гордятся стойкостью шифрования - AES-ключи, обфускация трафика и борьба с DPI выглядят солидно. Но остается один критический нюанс: у них всё равно есть сервер.

Даже если его называют «сигнальным» и говорят, что он нужен только для установления связи, это всё равно точка сбора данных. Если данные где-то собираются, за ними рано или поздно придут. Будь то хакерская атака или официальный запрос - метаданные (кто, когда и с кем общался) могут рассказать о вас больше, чем само содержание сообщений.

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

Читать далее

Полное расследование атаки APT-группировки Charming Kitten с марафона Standoff Defend

Habr.com - пн, 01/19/2026 - 19:15

Всем привет! Недавно закрылось расследование атаки APT-группировки Charming Kitten с онлайн марафона, который проходил на онлайн-полигоне Standoff Defend, созданный для тренировки синих команд. Сейчас я бы хотел показать решение и полную цепочку, которую нужно было составить

Читать далее

5 лет назад я открыл столовую, делаю 200к в месяц, но посмотрел в бездну

Habr.com - пн, 01/19/2026 - 19:02

Главная проблема столовой – это люди.

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

Изначально у меня было производство пельменей, а постоянно есть пельмени надоедает. 

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

Читать далее

Потенциал оптогенетики в применении на людях. Возможности, риски и как именно можно использовать технологию?

Habr.com - пн, 01/19/2026 - 19:02

До недавнего времени оптогенетика использовалась преимущественно в экспериментах. Отследить активность в конкретной части мозга, проследить связь между стимуляцией участка мозга и поведением субъекта. Главное её преимущество: точечный контроль отдельных цепей нейронных связей. Но насколько реально перепрошить геном человеческих нейронов, а потом стимулировать их светом, через вживленное или внешнее оптоволокно? Вот этому и посвящен новый материал!

Да будет свет!

Что нового в Go 1.26

Habr.com - пн, 01/19/2026 - 18:59

Go 1.26 выходит в феврале, и на мой взгляд это один из самых насыщенных релизов за всю историю языка. Давай разберёмся что нас ждёт, от изменений в языке до оптимизаций runtime и новых инструментов. Статья основана на официальных release notes и исходном коде Go. Это не исчерпывающий список, за полной информацией обращайся к официальной документации.

Читать далее

Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.
Ленты новостей