Category : golang

golang
Туннелирование трафика: простое решение на Go

Так сложилось, что периодами по несколько дней я нахожусь в двух разных локациях с двумя разными провайдерами. В одной, приходиться "пробивать окно" в штаты в стене на той стороне. Изначально, чтобы обойти ограничения со стороны google/gemini, необходимо выглядеть настоящим нью-йоркцем. Другим провайдером пользуюсь меньше и в основном не для работы, но ситуация с ним печальнее: как у всех, закручено всё, до чего смогли дотянуться. В том числе не могу достучаться до своего сервера по квн…

  • пятница, 13 марта 2026 г. в 00:00:17
golang
Anthropic и Open AI поддержали мой open source проект Databasus в рамках поддержки OSS проектов

За прошедшие две недели я узнал, что сначала Anthropic, а потом Open AI запустили программы поддержки open source проектов: Claude for Open Source и Codex for Open Source. Я подал заявку в обе программы со своим open source проектом и мои заявки одобрили.Какие были требования, что это даёт и как я буду применять новые инструменты — ниже.Содержание:Что за проект?Что за программы поддержки open source проектов и как я на них подавался?Дисклеймер про использование AI в разработкеКак я буду применя…

  • пятница, 13 марта 2026 г. в 00:00:17
golang
Цифровая капсула времени на чистом Go: почему для вечности не нужны базы данных и фреймворки

А что, если современные технологии для большинства вещей избыточны? В проекте «ЭХО» я решил проверить это на практике, создав цифровую капсулу времени для потомков. Цель — позволить людям оставить память о себе (фото и мысли) в максимально простом и «вечном» формате.Технически это эксперимент по созданию системы на 250 млн анкет без баз данных, фреймворков и лишних слоев — только чистый Go и минималистичный Linux. В этой статье я поделюсь опытом, как заставить обычный ПК работать с такой нагруз…

  • четверг, 12 марта 2026 г. в 00:00:06
golang
Миграция с Polling на Debezium

ВступлениеПривет, Хабр! Меня зовут Ибрагим и я бэкенд-разработчик в команде, которая разрабатывает C2C-площадку в Wildberries — раздел, где пользователи могут продавать друг другу товары через объявления. За каждым объявлением и заказом стоит набор данных, который аналитики используют для отслеживания метрик платформы: жизненный цикл объявлений, конверсии, статусы заказов.Чтобы эти данные попадали в ClickHouse к аналитикам, нам нужна была надёжная синхронизация из PostgreSQL. Долгое время она р…

  • четверг, 12 марта 2026 г. в 00:00:06
golang
Как защититься от удаления в S3 с помощью Object Lock / WORM

Хранение данных в S3 часто воспринимается как нечто простое: загрузили объект, при необходимости обновили или удалили. Но на практике это хранилище обычно используется в сценариях, в которых цена ошибки слишком высока. Вы же хотите случайно удалить или перезаписать бэкапы, логи, артефакты сборки или данные, подпадающие под регуляторные требования. Чтобы защититься от подобных ситуаций, в S3 есть механизм Object Lock.Всем привет! Меня зовут Клюев Алексей, я старший разработчик S3-совместимого об…

  • среда, 11 марта 2026 г. в 00:00:08
golang
Решение задачи с собеседования используя технику Sliding Window на Go

P.SДа, в интернете существует множество решений подобных задач, но, по моим ощущениям, они написаны сложным языком для начинающего программиста. Особенно мало материалов с примерами на Go. Когда я обучался алгоритмам, мне казалось, что данные темы можно объяснить куда проще существующих.В этой статье я пошагово разберу технику "Sliding Window" ("Скользящее окно") и покажу, как с её помощью решить задачу Longest Substring Without Repeating Characters на Go.Задача на Longest Subst…

  • понедельник, 9 марта 2026 г. в 00:00:10
golang
Sing-Box Launcher: как собрать VPN + WireGuard + split-tunneling без JSON-конфигов

Рассказываю про развитие своего проекта — мультиплатформенного десктопного клиента Sing-Box Launcher.GitHub проекта: https://github.com/Leadaxe/singbox-launcherДумаю многие хотели сделать конфигурацию, где:рабочие сайты открываются через корпоративную сетьгосуслуги работают даже из аэропорта Стамбулалокальная домашняя сеть доступнаYouTube тоже не ломаетсяИ желательно всё это настроить без танцев с JSON-конфигами, стабильно и прозрачно. Покажу по шагам, как это можно собрать и как именно это реа…

  • воскресенье, 8 марта 2026 г. в 00:00:13
golang
Микросервисная трансформация в Купере. Часть II: Как выносить функциональность

Всем привет! С вами Федор Засечкин, и это моя вторая статья из цикла о том, как мы в Купере распиливали монолит. Если хотите максимально погрузиться в контекст, перед чтением этого текста загляните по ссылке:Микросервисная трансформация в Купере — как это было. Часть I: Начинаем распил монолитовА в продолжение темы я хочу поговорить о том, с чего начинается вынос функциональности в сервисы. Будут и вопросы чисто технического характера, и организационные — потому что в нашем случае вынос состоял…

  • пятница, 6 марта 2026 г. в 00:00:08
golang
Выделение памяти в Go

Эта статья посвящена языку программирования Go 1.24, работающему на Linux на архитектуре ARM. Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.В этой статье подробно рассматриваются следующие вопросы:Отображение виртуальной памяти Арена и страницаКлассы Span и SizeКласс спанаМножество спановБиты кучи и заголовок mallocУправление кучей Выделение спана: mheap.allocЦентрализованный менеджер спанов: mcentralРаспределитель памяти процессора: …

  • четверг, 5 марта 2026 г. в 00:00:09