home.social

#golang — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #golang, aggregated by home.social.

  1. Надёжная асинхронная коммуникация: повторы, дубликаты и dead letter queues

    Представим обычную обработку заказа. Сервис заказов публикует событие order.created . Сервис склада получает его и резервирует товар в PostgreSQL. После успешной транзакции обработчик должен отправить RabbitMQ подтверждение ( Ack ), чтобы broker удалил сообщение из queue. Но процесс может остановиться после записи в PostgreSQL и до отправки Ack . RabbitMQ не знает, успел ли сервис зарезервировать товар. Broker видит только неподтверждённое сообщение, поэтому доставляет его ещё раз. С точки зрения доставки это правильное поведение. С точки зрения бизнеса один заказ теперь может зарезервировать товар дважды. Другой сбой возникает раньше: PostgreSQL временно недоступен, и обработчик не может начать работу. Если сразу вернуть сообщение в queue через отрицательное подтверждение Nack(requeue=true) , RabbitMQ почти немедленно доставит его снова. Пока база не восстановилась, все попытки будут бесполезными. Нужны задержка и ограничение числа повторов. При этом отложенное сообщение может пропустить вперёд более новые события, поэтому отдельно придётся решить вопрос порядка. Так одна операция превращается в несколько независимых участков: запись события, публикация, хранение в broker, обработка и подтверждение. Между соседними участками остаются моменты, когда одна сторона уже выполнила действие, а другая ещё не получила подтверждение. В статье разберём эти моменты по всему пути сообщения. Затем построим практическую схему для RabbitMQ и Go: добавим ограниченные повторы через retry queues, время жизни сообщения ( TTL ) и dead letter exchange, сделаем обработчик идемпотентным и определим, куда отправлять сообщения, которые не удалось обработать автоматически. В конце сравним этот подход с Kafka, NATS JetStream и Amazon SQS.

    habr.com/ru/articles/1062002/

    #rabbitmq #golang #go #kafka #архитектура #асинхронность #микросервисы #broker #queue #resilience

  2. The Go "context deadline exceeded" bug when fuzzing with fuzztime is SUPER frustrating and breaks workflows. Anyone know someone that can move the existing fix CL along?

    Go change: go-review.googlesource.com/c/g

    GH bug tracking and reproducer:
    github.com/golang/go/issues/75

    #Go #Golang #fuzzer

  3. The Go "context deadline exceeded" bug when fuzzing with fuzztime is SUPER frustrating and breaks workflows. Anyone know someone that can move the existing fix CL along?

    Go change: go-review.googlesource.com/c/g

    GH bug tracking and reproducer:
    github.com/golang/go/issues/75

    #Go #Golang #fuzzer

  4. Теперь вы можете защититься от утечки данных при работе с любыми языковыми моделями

    Пару дней назад Cloud.ru

    habr.com/ru/companies/cloud_ru

    #guardrails #маскирование_данных #пдн #152фз #go #golang #утечки_данных #llmмодели

  5. 📚 libgen-mcp — a Go MCP server that lets your AI assistant search & download from Library Genesis: books, papers, comics, magazines & standards.

    ✅ No account, no API key
    ✅ Self-hosted: one binary or Docker (Win/Linux/macOS)
    ✅ Works with Claude, Cursor, VS Code
    ✅ Just ~1.9k context tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  6. 📚 libgen-mcp — a Go MCP server that lets your AI assistant search & download from Library Genesis: books, papers, comics, magazines & standards.

    ✅ No account, no API key
    ✅ Self-hosted: one binary or Docker (Win/Linux/macOS)
    ✅ Works with Claude, Cursor, VS Code
    ✅ Just ~1.9k context tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  7. 📚 libgen-mcp — a Go MCP server that lets your AI assistant search & download from Library Genesis: books, papers, comics, magazines & standards.

    ✅ No account, no API key
    ✅ Self-hosted: one binary or Docker (Win/Linux/macOS)
    ✅ Works with Claude, Cursor, VS Code
    ✅ Just ~1.9k context tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  8. 📚 libgen-mcp — a Go MCP server that lets your AI assistant search & download from Library Genesis: books, papers, comics, magazines & standards.

    ✅ No account, no API key
    ✅ Self-hosted: one binary or Docker (Win/Linux/macOS)
    ✅ Works with Claude, Cursor, VS Code
    ✅ Just ~1.9k context tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  9. 📚 libgen-mcp — a Go MCP server that lets your AI assistant search & download from Library Genesis: books, papers, comics, magazines & standards.

    ✅ No account, no API key
    ✅ Self-hosted: one binary or Docker (Win/Linux/macOS)
    ✅ Works with Claude, Cursor, VS Code
    ✅ Just ~1.9k context tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  10. 📚 libgen-mcp — un servidor MCP en Go que deja a tu asistente de IA buscar y descargar de Library Genesis: libros, papers, cómics, revistas y normas.

    ✅ Sin cuenta ni API key
    ✅ Self-hosted: 1 binario o Docker (Win/Linux/macOS)
    ✅ Con Claude, Cursor, VS Code
    ✅ Solo ~1.9k tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #IA #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  11. 📚 libgen-mcp — un servidor MCP en Go que deja a tu asistente de IA buscar y descargar de Library Genesis: libros, papers, cómics, revistas y normas.

    ✅ Sin cuenta ni API key
    ✅ Self-hosted: 1 binario o Docker (Win/Linux/macOS)
    ✅ Con Claude, Cursor, VS Code
    ✅ Solo ~1.9k tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #IA #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  12. 📚 libgen-mcp — un servidor MCP en Go que deja a tu asistente de IA buscar y descargar de Library Genesis: libros, papers, cómics, revistas y normas.

    ✅ Sin cuenta ni API key
    ✅ Self-hosted: 1 binario o Docker (Win/Linux/macOS)
    ✅ Con Claude, Cursor, VS Code
    ✅ Solo ~1.9k tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #IA #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  13. 📚 libgen-mcp — un servidor MCP en Go que deja a tu asistente de IA buscar y descargar de Library Genesis: libros, papers, cómics, revistas y normas.

    ✅ Sin cuenta ni API key
    ✅ Self-hosted: 1 binario o Docker (Win/Linux/macOS)
    ✅ Con Claude, Cursor, VS Code
    ✅ Solo ~1.9k tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #IA #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  14. 📚 libgen-mcp — un servidor MCP en Go que deja a tu asistente de IA buscar y descargar de Library Genesis: libros, papers, cómics, revistas y normas.

    ✅ Sin cuenta ni API key
    ✅ Self-hosted: 1 binario o Docker (Win/Linux/macOS)
    ✅ Con Claude, Cursor, VS Code
    ✅ Solo ~1.9k tokens · MIT

    👉 github.com/jmrplens/libgen-mcp

    #IA #AI #MCP #ModelContextProtocol #SelfHosted #OpenSource #Golang #LLM #Claude #LibraryGenesis #scihub

  15. 🖥️ NanoKVM-Go: Control hardware bazat pe AI într-un dispozitiv compact USB-C!

    Accesul remote la nivel de BIOS/bootloader și administrarea hardware devin mult mai inteligente. NanoKVM-Go aduce o soluție KVM over IP extrem de compactă, alimentată de un sistem portabil USB-C și îmbunătățită cu capabilități de inteligență artificială pentru administrare pe Linux.

    ✨ Ce oferă NanoKVM-Go:

    🔌 Format ultra-compact USB-C:
    • Se conectează direct la dispozitivul țintă prin USB-C, oferind acces remote complet la nivel hardware (KVM - Keyboard, Video, Mouse) direct de pe orice calculator sau browser.

    🤖 Asistență AI integrată:
    • Include funcții inteligente capabile să analizeze ieșirea video (de la erori de boot până la configurări BIOS) și să ajute administratorii la diagnosticarea rapidă a problemelor.

    🐧 Pachet software în Go (Go-based architecture):
    • Serverul web și logica de control sunt scrise în Go, asigurând un consum minim de resurse, latență foarte mică și o rulare extrem de rapidă pe Linux.

    🛠️ Acces Out-of-Band (OOB) complet:
    • Îți permite să repornești, să configurezi BIOS-ul, să reinstalezi sistemul de operare sau să montezi imagini ISO de la distanță, chiar și atunci când sistemul țintă nu are rețea sau sistemul de operare este picat.

    #NanoKVM #Linux #KVM #Hardware #SysAdmin #GoLang #AI #SelfHosted #TechNews #OpenSource

  16. 🖥️ NanoKVM-Go: Control hardware bazat pe AI într-un dispozitiv compact USB-C!

    Accesul remote la nivel de BIOS/bootloader și administrarea hardware devin mult mai inteligente. NanoKVM-Go aduce o soluție KVM over IP extrem de compactă, alimentată de un sistem portabil USB-C și îmbunătățită cu capabilități de inteligență artificială pentru administrare pe Linux.

    ✨ Ce oferă NanoKVM-Go:

    🔌 Format ultra-compact USB-C:
    • Se conectează direct la dispozitivul țintă prin USB-C, oferind acces remote complet la nivel hardware (KVM - Keyboard, Video, Mouse) direct de pe orice calculator sau browser.

    🤖 Asistență AI integrată:
    • Include funcții inteligente capabile să analizeze ieșirea video (de la erori de boot până la configurări BIOS) și să ajute administratorii la diagnosticarea rapidă a problemelor.

    🐧 Pachet software în Go (Go-based architecture):
    • Serverul web și logica de control sunt scrise în Go, asigurând un consum minim de resurse, latență foarte mică și o rulare extrem de rapidă pe Linux.

    🛠️ Acces Out-of-Band (OOB) complet:
    • Îți permite să repornești, să configurezi BIOS-ul, să reinstalezi sistemul de operare sau să montezi imagini ISO de la distanță, chiar și atunci când sistemul țintă nu are rețea sau sistemul de operare este picat.

    #NanoKVM #Linux #KVM #Hardware #SysAdmin #GoLang #AI #SelfHosted #TechNews #OpenSource

  17. Как мы заменили Teradata RTIM: миграция правил с использованием AST

    Меня зовут Сигида Алексей, я старший архитектор по развитию технологий CVM (Customer Value Management) в компании Мегафон. Много лет решения о том, что показать клиенту, у нас принимал Teradata RTIM (Real-Time Interaction Manager) - движок real-time маркетинга. Если вы когда-нибудь получали смс-сообщение от Мегафона или заходили в личный кабинет в 99% случаев сообщение для вас было подобрано этой системой. Вы заходите на сайт или в приложение, и за миллисекунды решается, какое предложение показать. Логика выбора описывается деревьями принятия решений: запрос проходит по веткам дерева, а условия переходов в узлах - критерии - определяют, к какому сегменту отнести клиента и какое предложение ему подобрать. В какой-то момент перед командой встала задача перейти на собственное решение. Стало ясно, что RTIM превратился из удобного инструмента в тяжелую гирю на наших ногах. Оставаться на больше нельзя, накопилась критическая масса причин: закрытая архитектура приложения без возможности кастомизации, тотальная зависимость от вендора, стоимость лицензии. В моменты инцидентов оказывались связаны руки, ожидая помощи извне. Фундаментом нового движка стал Go. Нужен был инструмент, стабильно работающий под хайлоад, быстрый, достаточно распространённый, чтобы не было проблем ни с экспертизой ни с экосистемой.

    habr.com/ru/companies/megafon/

    #MegaRITM #Teradata #ast #python #golang

  18. Resurrecting an old post from last year just because. I might keep doing this from time to time.

    How I Write HTTP Servers

    blainsmith.com/articles/how-i-

  19. Resurrecting an old post from last year just because. I might keep doing this from time to time.

    How I Write HTTP Servers

    blainsmith.com/articles/how-i-

    #GoLang #HTTP #API

  20. Resurrecting an old post from last year just because. I might keep doing this from time to time.

    How I Write HTTP Servers

    blainsmith.com/articles/how-i-

    #GoLang #HTTP #API

  21. Resurrecting an old post from last year just because. I might keep doing this from time to time.

    How I Write HTTP Servers

    blainsmith.com/articles/how-i-

    #GoLang #HTTP #API

  22. Resurrecting an old post from last year just because. I might keep doing this from time to time.

    How I Write HTTP Servers

    blainsmith.com/articles/how-i-

    #GoLang #HTTP #API

  23. Some bugs pick their moment. A flaw that needs dozens of consecutive failures to surface stays hidden through ordinary operation and appears mid-outage, when the retry loop is the only code still running. Delay arithmetic is that kind of code, so the backoff package in nurago keeps it boring: a small, pure calculator for jittered, bounded delays, written and tested once, reused by every retry path in the library.

    tecnick.com/articles/nurago-ba

    #golang

  24. The one straight-up mistake on gofmt:

    f := Fund{
    < Id: values[0],
    < Title: values[1],
    > Id: values[0],
    > Name: values[1],
    }

    Renaming "Title" to "Name" requires a whitespace change to the "Id" line, which in reality is unchanged, because of alignment requirements.

    #GoLang

  25. The one straight-up mistake on gofmt:

    f := Fund{
    < Id: values[0],
    < Title: values[1],
    > Id: values[0],
    > Name: values[1],
    }

    Renaming "Title" to "Name" requires a whitespace change to the "Id" line, which in reality is unchanged, because of alignment requirements.

    #GoLang

  26. What is Inference? How LLMs run, explained in a gentle introduction

    The mental model of inference: nextToken(input, frozenWeights) -> token, called in a for loop

    Also I explore the GGUF file that carries the ENTIRE model inside it

    internals-for-interns.com/post

    #golang #AI #LLM

  27. What is Inference? How LLMs run, explained in a gentle introduction

    The mental model of inference: nextToken(input, frozenWeights) -> token, called in a for loop

    Also I explore the GGUF file that carries the ENTIRE model inside it

    internals-for-interns.com/post

    #golang #AI #LLM