Рубрика «golang»

В нашем тестовом стенде p95 latency снизилась с 579 до 108 мс, а Random Forest на выбранных признаках показал ROC‑AUC 0,500. Рассказываю об архитектуре, методике и ограничениях результата.

В статье разбираю архитектуру ghostmux, проверки устойчивости и исправления, подготовленные для REALITY

Небольшая оговорка о результатах ML‑ классификации: ROC‑AIC = 0,500 означает что, конкретная модель на конкретных признаках не показала качества выше случайного угадывания. Это не доказывает универсальную неразличимость трафика для любых моделей и методов анализа.

НазваниеЧитать полностью »

Про defer в Go до сих пор ходит миф: «он медленный, в горячем коде лучше не использовать». Когда-то это было правдой. До Go 1.13 каждый defer означал аллокацию в куче. Сейчас, в большинстве случаев, он стоит почти ничего. Но «в большинстве» — это не «всегда», и граница проходит по довольно конкретным правилам.

Компилятор Go умеет реализовывать defer тремя способами:

  1. open-coded — никакой runtime-структуры, вызов вставляется прямо в код функции;

  2. stack defer — runtime используется, но запись о defer лежит на стеке;

  3. heap defer — запись аллоцируется в куче.

Читать полностью »

Как я сделал «Свою игру», где телефоны друзей становятся кнопками

Свояк без установки: телевизор — табло, телефоны — кнопки. Как это устроено внутри - 1

Читать полностью »

О чём статья

Недавно я познакомился с golang и в качестве практики решил реализовать алгоритмы rate limiting'а из статьи c arxiv. В этой статье мы рассмотрим написание rate-limiter'а в виде отдельно стоящего сервиса и в виде middleware, используя in-memory кэш или Redis, добавим поддержку REST и gRPC, подключим Prometheus и поймём как добиться атомарности операций с минимальными задержками.

Кому полезно

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

Предисловие

Читать полностью »

Привет.

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

Читать полностью »

Много лет я пользовался Volume²: переключал колонки и наушники хоткеем, крутил громкость с оверлеем. На Windows 11 он у меня начал подлагивать — оверлей появляется с задержкой, — а в %APPDATA%Volume2Errors.log периодически появляются падения:

ShowOSDWindow: Access violation at address 006E0F69 in module 'Volume2.exe'. Read of address 00000000

Я завёл issue, но ждать не стал и написал себе замену под свои сценарии. Получилась утилита volume_switch: один exe в трее, ~2000 строк на Go в одном файле.

Код: https://github.com/des1roer/volume_switchЧитать полностью »

Всем привет. Меня зовут Алексей, пишу тут впервые. Работаю в небольшом рекламном агентстве, в основном backend и всякое смежное. По вечерам реверс‑инжиниринг, чисто для удовольствия. Стек у меня был максимально предсказуемый. PHP, немного JS с TS, Python. Скучно. Захотелось нового, и я полез в Go.

Читать полностью »

Сервер стоит дома или в филиале, провайдер время от времени меняет внешний адрес, а домен в зоне .ru обслуживает REG.RU, Selectel или Yandex Cloud. Популярные DDNS-клиенты эти DNS-хостинги почти не поддерживают, поэтому запись обновляют самописными скриптами на curl. Ломаются такие скрипты молча. Selectel в 2026 году отключил старый DNS API, и скрипты, которые в него ходили, перестали обновлять записи. Я разобрал API этих хостингов, собрал их подводные камни и написал на Go DDNS-демон dnspatch, который их учитывает.

Читать полностью »

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

Warpnet — Twitter без сервера - 1

Читать полностью »

Кто тут любит коммерческие прокси-сервисы? Я не вижу ваши руки? Да, я тоже не особый фанат. Но приходится признавать, что как только домашний Xray с вручную вписанными в JSON ключами выходит за пределы узкого круга непосредственных родственников, приходится разбираться в том же спектре проблем: гео-блоки со стороны сервисов, маршрутизация, слив и слишком обширное использование подписки, из-за чего пользователи начинают мешать друг-другу, а машины блокируются по превышению квоты.

Торопитесь? Вот код

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js