Привет, Хабр!В main.go почти любого Go-сервиса, который живёт в Kubernetes, — вполне типичного стека для микросервисной архитектуры — лежит пустой импорт go.uber.org/automaxprocs. Его давно никто не трогал, и половина команды уже не помнит, зачем он там. Попал он туда по делу.Рантайм Go считал GOMAXPROCS по числу логических процессоров машины и про лимит пода ничего не знал, так что сервис с limits.cpu: 2 на 64-ядерной ноде:поднимал 64 планировщика;раскладывал горутины по 64 очередям;пытался з…
Всем доброго времени суток! Хочу поделиться историей о том, как решение одной бытовой проблемы постепенно вылилось в разработку отдельного open‑source проекта.TL;DRВ ходе экспериментов постепенно сформировалась архитектура с отдельными proxy, broker и worker‑компонентами. Она позволила отделить клиентское подключение от транспортного канала и добавить маршрутизацию трафика через удалённые узлы.В итоге получилась система, в которой трафик может передаваться напрямую либо через один из удалённых …
Synkflow — наш голосовой мессенджер (бэкенд на Go, фронтенд на React/TypeScript, а для медиапотоков WebRTC под капотом крутится LiveKit). С самого начала разработки одной из самых неприятных проблем стал именно LiveKit. На первый взгляд он казался простым: в документации всё вроде понятно написано — поднял комнату, выдал токен, пошёл звук. А по факту всё упёрлось в протухание токена.Из‑за этого нас выкидывало из звонка, потом само переподключало, часто прямо перед тем, как токен должен был зату…
Любимый термин современного разработчикаTL;DR: В этой статье расскажу, как за полдня с помощью Antigravity и подписки Google AI Pro я собрал полноценную Go-библиотеку для работы с конфигурацией: несколько форматов, переменные окружения, каскадная загрузка, валидация, кастомные провайдеры и всё остальное, что обычно начинает появляться в проекте после нескольких недель жизни микросервиса. А ещё поделюсь, почему после первых нескольких часов восторга мне всё-таки пришлось открыть исходники и вним…
Всё началось с очень простой проблемы: я хотел перестать брать телефон в руки сразу после пробуждения. Обычно я открывал его с вполне невинной целью — посмотреть данные сна с фитнес‑браслета, а потом как‑то незаметно оказывался в сообщениях, почте и новостях. Тогда я и подумал: а что, если вообще не открывать приложение, а получать эти данные по факту пробуждения без телефона. Физически. Например, на бумаге? Так начала зарождаться идея поставить рядом с кроватью чековый принтер, который утром с…
Всем привет. Меня зовут Алексей, пишу тут впервые. Работаю в небольшом рекламном агентстве, в основном backend и всякое смежное. По вечерам реверс‑инжиниринг, чисто для удовольствия. Стек у меня был максимально предсказуемый. PHP, немного JS с TS, Python. Скучно. Захотелось нового, и я полез в Go.Пару лет назад, когда ElevenLabs только появился, я на коленке собрал питоновский скрипт: он гонял записи моих созвонов через их API и отдавал текст. Поигрался неделю и забросил, как это обычно и бывае…
Я пришёл в Go из Ruby, и первое время больше всего не хватало одного инструмента, который в Rails есть из коробки: консоли, где любую непонятную ситуацию на проде можно посмотреть руками. bundle exec rails c, Order.find(42), и перед тобой не строка в таблице, а объект приложения со всеми его методами. В моих Go-проектах такой консоли не было, оставался psql, и то если он добавлен в образ. Данные посмотреть можно, запустить операцию приложения нельзя. А вопрос обычно именно такой: почему для это…
Сервер стоит дома или в филиале, провайдер время от времени меняет внешний адрес, а домен в зоне .ru обслуживает REG.RU, Selectel или Yandex Cloud. Популярные DDNS-клиенты эти DNS-хостинги почти не поддерживают, поэтому запись обновляют самописными скриптами на curl. Ломаются такие скрипты молча. Selectel в 2026 году отключил старый DNS API, и скрипты, которые в него ходили, перестали обновлять записи. Я разобрал API этих хостингов, собрал их подводные камни и написал на Go DDNS-демон dnspatch,…
Привет! На связи Boost for Java. Развиваем DBML Diagram — open source плагин для IntelliJ IDEA и других совместимых IDE на платформе IntelliJ. Он строит ER-диаграмму рядом с открытым .dbml-файлом: меняете описание таблиц и связей — превью обновляется прямо в редакторе. Построение диаграммы работает локально, без отправки схемы во внешний сервис.В этой статье покажем возможности версии 0.1.0, пользу работы со схемами прямо в IntelliJ IDEA и устройство плагина. Отдельно расскажем о планах интегра…