Category : golang

golang
Fairway: балансировщик корпоративных прокси, который сам выясняет, какой выход лучше для какого сай…

В компании редко бывает один прокси. Обычно это пара Squid в основном ЦОДе, свои прокси в филиалах и отдельные внешние выходы для облачных сервисов. Клиенты при этом настроены просто: PAC‑файл с двумя адресами по порядку, и всё.Беда в том, что «какой прокси лучше» зависит от сайта. Партнёрский банк пускает в API только с согласованных адресов, и выход питерского филиала в этот список не попал. Зеркало пакетов через европейский выход отдаёт втрое быстрее, чем через московский. Канал в филиале уз…

  • суббота, 17 октября 2026 г. в 00:00:09
golang
NKT (NetKnownsThat): open-source замена зоопарку инфраструктурных инструментов

"Я каждый день работаю с кучей инструментов для мониторинга и управления инфраструктурой и меня сильно раздражает то, что путь от момента первого запуска до нормального использования неоправданно длинный."  - Владислав, инженерМеня зовут Александр, я один из разработчиков NKT (NetKnownsThat) — нашего первого опенсоурс проектаNKT - это один бинарник на Go (~29 МБ) с встроенным веб-интерфейсом на React+TypeScript+Ant Design. Без Python, Node.js и внешних зависимостей, всё внутри бинарника…

  • суббота, 17 октября 2026 г. в 00:00:08
golang
Разворачиваем порты VPS'а: маленькая шалость программиста

При заказе VPS/VPS (уж не знаю, для каких вам нужд) - стандартная схема - при минимальной комплектации вам дают сервер, к которому можно подключиться только по SSH, и нельзя открыть никакие другие порты. Сам порт SSH может отличаться от стардартного 22-го (обычно так и происходит в начале).За дополнительную плату можно подключить опцию “статический IP” - и тогда уже можно открывать какие угодно порты и вешать на них какие угодно сервисы, веб-серверы, прокси-серверы.В целом, деньги то есть, и ту…

  • суббота, 17 октября 2026 г. в 00:00:07
golang
Замена Volume2 — Переключение аудиопотоков на win 11

Много лет я пользовался Volume²: переключал колонки и наушники хоткеем, крутил громкость с оверлеем. На Windows 11 он у меня начал подлагивать — оверлей появляется с задержкой, — а в %APPDATA%\Volume2\Errors.log периодически появляются падения:ShowOSDWindow: Access violation at address 006E0F69 in module 'Volume2.exe'. Read of address 00000000 Я завёл issue, но ждать не стал и написал себе замену под свои сценарии. Получилась утилита volume_switch: один exe в трее, ~2000 строк на Go в о…

  • пятница, 16 октября 2026 г. в 00:00:13
golang
Кoгдa яблoкo yпaлo cлишкoм близкo не к той яблoнe: copy-paste oшибки в cтpyктypнo изoмopфнoм Go кoд…

BвeдeниeНедавно вышел PVS-Studio 8.00, принёсший с собой много масштабных нововведений, среди которых и релиз анализатора для Go! Он же, в свою очередь, обзавёлся несколькими новыми интересными диагностиками.Среди них есть и та, что выявляет один из caмыx кoвapныx видoв copy-paste oшибoк, кoтopые нeoxoтнo пoпaдaютcя нa глaзa пpи oбычнoм peвью. Без лишних слов, приглашаю взглянуть на код:if process.ProcessName != nil && (len(*process.ProcessName) == 0 || len(*process.ProcessName) …

  • четверг, 15 октября 2026 г. в 00:00:13
golang
Эвалы для LLM-фич. Часть 1: зачем они нужны

Всем привет!Меня зовут Тарас Малиновский, я бэкенд‑разработчик, работаю на Go. Последний год почти целиком ушёл на проекты в сфере искусственного интеллекта: делал ассистентов, агентов, разные инструменты и навыки.Недавно участвовал в хакатоне от Podlodka AI Club: мы собирали систему памяти для агентов. Саму память реализовали довольно быстро, а вот доказать, что она реально работает, оказалось куда сложнее. На это и ушло больше всего времени.Этот опыт будто щёлкнул выключателем: именно тогда д…

  • четверг, 15 октября 2026 г. в 00:00:11
golang
Собрал систему видеонаблюдения за голубем (Go, C++)

Несколько месяцев назад подобрал голубя.https://github.com/khomin/roostSelf-hosted сервер видеонаблюдения для RTSP/USB - камер.C web дашбордой для просмотра через WebRTC.C++ модуль читает из gstreamer пайплайн, перепаковывает и отправляет в IPC (/dev/shm/roost_<camera-id>)Go модуль читает из shm, пересылает в стримы WebRTCХотел наблюдать за птицей с лэптопа не покупая ничего.В итоге написал это.

  • четверг, 15 октября 2026 г. в 00:00:10
golang
От Bash к Go: как «просто бэкап 1С» превратился в отдельную утилиту

В программировании на Go я пока новичок.Поэтому, как любой уважающий себя разработчик, я решил начать с самого безопасного занятия — переписать на Go то, что уже несколько лет нормально работает на Bash.Зачем?Потому что один сервер — это Bash‑скрипт.Два сервера — уже Bash‑скрипт плюс его копия с немного другими настройками. А когда появляются Linux, Windows, PostgreSQL, MS SQL Server, файловые базы, сетевые файловые базы и разные требования к срокам хранения резервных копий, начинается самое ин…

  • среда, 14 октября 2026 г. в 00:00:14
golang
HTTP-запрос закончился, а LLM ещё работает: как проектировать AI-задачи на Go

Когда пишешь обычный HTTP API на Go, использование context.Context быстро становится привычкой.Пришёл запрос, получили r.Context(), передали его в сервис, затем в репозиторий и во все внешние вызовы. Если клиент отключился или истёк таймаут, связанные операции отменяются.Для большинства backend-задач это именно то поведение, которого мы хотим.Зачем продолжать выполнять SQL-запрос, если результат уже некому возвращать? Зачем держать соединение с внешним API, если пользователь закрыл страницу?Но …

  • вторник, 13 октября 2026 г. в 00:00:04