Yves Junqueira’s blog

I've built something: stardew.farm

I’ve built something called stardew.farm. It helps Stardew Valley players to share screenshots of their pretty farms. It’s a bunch of open-source software written in Go. A Windows client watches the player’s save files and uploads them to a RabbitMQ server whenever the game saves state (once a day in the game). Then there’s a Go program that parses every new save game and renders a screenshot using the image/draw and github.…
Read more ⟶

sync.Pool is coming soon

I predict that sync.Pool, an upcoming Go 1.3 feature, will be everywhere. Everyone will know how to use it and will change their existing programs to use it. sync.Pool is a nice way to save allocations. In one example, I’ve replaced the buffer in bencode-go (used by Taipei Torrent) with a sync.Pool and it lead to massive savings in allocations. And the resulting code isn’t ugly. Readable and fast code == WIN.…
Read more ⟶

Caveats about Linux connection tracking and high traffic servers

Dear Internet, whenever you’re setting up a high-performance TCP or specially a UDP server on Linux, don’t be stupid like me, and do remember to pay attention to connection tracking on your server. What is connection tracking? Connection tracking is normally used by Linux for certain firewall rules, like those that depend on connection state such as NEW, ESTABLISHED, RELATED, etc. Even UDP connection can have pseudo-state tracked by Linux.…
Read more ⟶