home.social

#golang — Public Fediverse posts

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

  1. We're hiring a Senior Platform Engineer (Go / MySQL).

    You’ll work on the infrastructure behind Slumber and Deep Sleep Sounds, helping keep our systems reliable for millions of listeners and building the next phase of our audio platform. slumberstudios.com/

    We’re looking for someone with strong production experience in Go, MySQL, and operating reliable systems at scale.

    Private reply me! Contractors / Freelancers only please.

    #hiring #golang #mysql

  2. Падающая сборка, и это я её просил

    Три способа тихо сломать приложение сборкой зависимостей: два пула к базе, не тот кэш, разъехавшиеся ветки конфигурации. Компилятор их не ловит — типы верные. Рантайм-контейнеры ловят половину и приносят свои отказы. Про diogen — compile-time DI для Go: внедрение зависимостей на этапе компиляции, обычный Go-код на выходе, без рантайм-контейнера и без рефлексии.

    habr.com/ru/articles/1082060/

    #dependency_injection #внедрение_зависимостей #di #go #golang #кодогенерация #wire #fx #diogen #gorib

  3. I've been neck deep in the PNG spec writing the metadata decoder/encoder for EXIF, XMP, IPTC, and native text. I do enjoy me some byte-level work.

  4. Валидатор не нашёл поле is_admin, а Go его нашёл: пять ошибок при работе с JSON

    Один и тот же JSON может привести систему к разным выводам. Валидатор пропустит поле, которое Go‑сервис спокойно прочитает, nil ‑слайс превратится в неожиданный для клиента null , а ошибка в имени параметра останется незамеченной до самого продакшена. Разбираем пять случаев, где поведение encoding/json в Go способно создать расхождение между компонентами системы, и смотрим, что меняет переход на encoding/json/v2 . Узнать детали

    habr.com/ru/companies/otus/art

    #Go #Golang #JSON #API #backend #микросервисы #валидация_данных #сериализация #безопасность_приложений #разработка_ПО

  5. NginXplorer: Because Spinning Up a 2GB Grafana Stack Just to Watch Nginx Logs is Madness

    It usually starts with an innocent thought on a Friday evening. You’re logged into a low-powered VPS or your homelab machine, and you notice your blog is feeling a bit sluggish. Or maybe you noticed a suspicious spike in inbound network bandwidth and you just want to know: Who is hammering my web server right now, what URLs are they hitting, and how badly is my upstream PHP-FPM or reverse proxy sweating? Naturally, you look at your options in 2026: The “Modern Cloud-Native” […]

    schulz.dk/2026/09/14/nginxplor

  6. Most guides I found on Go backend services cover the code inside the service, with little on the production problems around it: configuration, lifecycle, observability, packaging, deployment.
    My new guide, Building a Production REST API in Go, covers all of these alongside a working example service: tecnick.com/guides/go-rest-api/
    #golang #restapi #backend #softwareengineering

  7. Hey #golang folks, I have a service listening on some port (say 4321) and the #systemd service file has
    ```
    SocketBindAllow=tcp:4321
    SocketBindDeny=any
    ```

    When my service makes an _outgoing_ connection by calling
    ```
    var dialer net.Dialer
    dialer.DialContext(ctx, "tcp", "somehost.example.com:5678")
    ```
    the service gets a permission error for violating the SocketBind* systemd restrictions.

    But only when using the cgo resolver. Setting `GODEBUG=netdns=go` fixes the error. So what is the cgo resolver doing that requires binding a socket?

  8. Hey folks, I have a service listening on some port (say 4321) and the service file has
    ```
    SocketBindAllow=tcp:4321
    SocketBindDeny=any
    ```

    When my service makes an _outgoing_ connection by calling
    ```
    var dialer net.Dialer
    dialer.DialContext(ctx, "tcp", "somehost.example.com:5678")
    ```
    the service gets a permission error for violating the SocketBind* systemd restrictions.

    But only when using the cgo resolver. Setting `GODEBUG=netdns=go` fixes the error. So what is the cgo resolver doing that requires binding a socket?

  9. Hey #golang folks, I have a service listening on some port (say 4321) and the #systemd service file has
    ```
    SocketBindAllow=tcp:4321
    SocketBindDeny=any
    ```

    When my service makes an _outgoing_ connection by calling
    ```
    var dialer net.Dialer
    dialer.DialContext(ctx, "tcp", "somehost.example.com:5678")
    ```
    the service gets a permission error for violating the SocketBind* systemd restrictions.

    But only when using the cgo resolver. Setting `GODEBUG=netdns=go` fixes the error. So what is the cgo resolver doing that requires binding a socket?

  10. Hey #golang folks, I have a service listening on some port (say 4321) and the #systemd service file has
    ```
    SocketBindAllow=tcp:4321
    SocketBindDeny=any
    ```

    When my service makes an _outgoing_ connection by calling
    ```
    var dialer net.Dialer
    dialer.DialContext(ctx, "tcp", "somehost.example.com:5678")
    ```
    the service gets a permission error for violating the SocketBind* systemd restrictions.

    But only when using the cgo resolver. Setting `GODEBUG=netdns=go` fixes the error. So what is the cgo resolver doing that requires binding a socket?

  11. Hey #golang folks, I have a service listening on some port (say 4321) and the #systemd service file has
    ```
    SocketBindAllow=tcp:4321
    SocketBindDeny=any
    ```

    When my service makes an _outgoing_ connection by calling
    ```
    var dialer net.Dialer
    dialer.DialContext(ctx, "tcp", "somehost.example.com:5678")
    ```
    the service gets a permission error for violating the SocketBind* systemd restrictions.

    But only when using the cgo resolver. Setting `GODEBUG=netdns=go` fixes the error. So what is the cgo resolver doing that requires binding a socket?

  12. Trying to understand #golang. It seems to have quite some "implicit (and short) is better than explicit (and longer)"-features 🙄

  13. WGX is now ihasvpn, and it's been rewritten from scratch.

    The old WGX was a Bash installer that assembled a VPN on your host. The new one is a WireGuard server of its own: one static Go binary in one container, driving kernel WireGuard over netlink, with a web console built in.

    Free software, AGPL-3.0.

    jcoffey.dev/articles/wgx-is-no

    #WireGuard #SelfHosted #Golang #OpenSource #VPN

  14. WGX is now ihasvpn, and it's been rewritten from scratch.

    The old WGX was a Bash installer that assembled a VPN on your host. The new one is a WireGuard server of its own: one static Go binary in one container, driving kernel WireGuard over netlink, with a web console built in.

    Free software, AGPL-3.0.

    jcoffey.dev/articles/wgx-is-no

    #WireGuard #SelfHosted #Golang #OpenSource #VPN

  15. WGX is now ihasvpn, and it's been rewritten from scratch.

    The old WGX was a Bash installer that assembled a VPN on your host. The new one is a WireGuard server of its own: one static Go binary in one container, driving kernel WireGuard over netlink, with a web console built in.

    Free software, AGPL-3.0.

    jcoffey.dev/articles/wgx-is-no

    #WireGuard #SelfHosted #Golang #OpenSource #VPN

  16. stalwart-migrator is out — an in-place upgrade tool for Stalwart Mail Server (0.15.5 → latest).

    Successfully used in production on 1 x86_64 VPS, 2x x86_64 Docker, and 1 ARM64 Docker migration so far. Checkpoints at every step so an interrupted run resumes instead of restarting, plus automated validation afterward. Go, stdlib only, GPLv3.

    github.com/LINUXexpert-org/sta

    #Stalwart #SelfHosted #Golang #Mail #FOSS

  17. So I needed a WebP encoder for a Go project where I had disabled. I found there is an option using compiled to running on , but that's pretty slow and uses lots of memory.

    So I made a pure encoder, ported from a Rust encoder then optimized: github.com/SeriousBug/webp-go-

    I managed to get better performance than the WASM version! Both encoding speed and memory use, although compression rate and quality is a bit worse.

  18. Shout out to @TinyGo team member Patricio Whittingslow's amazing "lneto" network stack used by both TamaGo and TinyGo!
    #gopherconEU #golang #tinygo #tamago

  19. Shout out to @TinyGo team member Patricio Whittingslow's amazing "lneto" network stack used by both TamaGo and TinyGo!
    #gopherconEU #golang #tinygo #tamago

  20. Shout out to @TinyGo team member Patricio Whittingslow's amazing "lneto" network stack used by both TamaGo and TinyGo!
    #gopherconEU #golang #tinygo #tamago

  21. Shout out to @TinyGo team member Patricio Whittingslow's amazing "lneto" network stack used by both TamaGo and TinyGo!
    #gopherconEU #golang #tinygo #tamago

  22. Shout out to @TinyGo team member Patricio Whittingslow's amazing "lneto" network stack used by both TamaGo and TinyGo!
    #gopherconEU #golang #tinygo #tamago

  23. TamaGo and TinyGo together at last! Hanging with Andrea Barisani here at @gopherconEU
    #golang #gopherconEU #tamago #tinygo

  24. TamaGo and TinyGo together at last! Hanging with Andrea Barisani here at @gopherconEU
    #golang #gopherconEU #tamago #tinygo

  25. TamaGo and TinyGo together at last! Hanging with Andrea Barisani here at @gopherconEU
    #golang #gopherconEU #tamago #tinygo

  26. TamaGo and TinyGo together at last! Hanging with Andrea Barisani here at @gopherconEU
    #golang #gopherconEU #tamago #tinygo

  27. TamaGo and TinyGo together at last! Hanging with Andrea Barisani here at @gopherconEU
    #golang #gopherconEU #tamago #tinygo

  28. we just cut #wazero 1.12.0! your favorite #wasm runtime for #golang now supports more specs than ever! getting closer to WasmGC!

    github.com/wazero/wazero/relea

  29. Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе

    Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.

    habr.com/ru/companies/otus/art

    #Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go

  30. In 2026, the most expensive tech stack can’t fix a "Trust Gap."

    We are entering an era where AI can write code, generate images, and manage schedules in seconds. But here is the 2026 reality: As AI becomes a commodity, Human Trust becomes a premium.

    If your digital presence feels like it was built by a machine, for a machine, you are losing.

    #Innovation #Management #PersonalBranding #FutureOfWork #HumanCentric #BusinessPsychology #enterprisesoftware #Leadership2026 #BackendEngineering #Golang

  31. go-simd-softmax

    Is a Go-oriented SIMD/avx softmax implementation with optimisations in amd64 / x64 assembler.

    Up to 3.5x faster than equivalent function written using stdlib only. See benchmarks.

    github.com/ha1tch/go-simd-soft

    #go #foss #softmax #asm #assembler #x86_64 #x64 #amd64 #assembly #golang

  32. bim assembly detection

    The barely improved editor now adds better heuristics to detect what flavour of assembly language you're using and what architecture you're working on, so it can provide better highlighting appropriate for the platform you're writing code for. It's not perfect, but it now computes a score if it can't tell right away, and decides based on that combination of factors.

    It mostly works for x86/64, Z80, and ARM. I probably should get around to adding 6502, 68000, MIPS, and a few others next. 🙂

    #bim #asm #assembly #assembler #retrocomputing #z80 #foss #golang #x86 #x86assembly #x86_64 #arm #arm64

  33. guiscii

    Draw UI in plain text → get working Deluxe UI widgets.

    Introducing guiscii: Look mum, no XML!!! Refocusing now to improve the GUI code so I can ship proper UIs in my tools.

    #gui #deluxedraw #deluxeui #foss #golang #guiscii