I have raspberry pi where I store movies, podcasts, audiobooks, other media. How to stream all this media to other devices? FTP won’t do because it requires to download the whole file first. So, there are 2 protocols: proprietary AirDrop used by Apple devices and DLNA used by everyone else. Apparently, we’ll go with DLNA.

If you google how to set up a DLNA server, you’ll find tons of articles on using MiniDLNA. It was hard as hell to set up: create a user, make a cache dir, write a config, write a server, troubleshoot why it doesn’t work, troubleshoot why it doesn’t see new files and so on. And after all that, at some point it just stopped working. Ugh…

And then I stumbled across dms. I’ve built a binary, sent it onto raspberry, run, and it just works! So, use dms.

cd dms
GOOS=linux GOARCH=arm GOARM=5 go build
scp ./dms root@raspberry:/usr/local/bin/```

I noticed that when I have too many troubles with something, I search for an alternative written on Go because it just works. Partially, because of amazing tooling, amazing backward compatibility (I just compile everything I find with the latest Go release and never had any issues), and cross-compilation (like above we've built a binary for raspberry in one command). Partially, because of the language simplicity and the gophers' mindset. So, doesn't matter how the language itself is controversial and in some places immature, the tooling (first of all, CLI tools) is definitely benefits from it. See also: [Why GitHub's CLI team switched from Ruby to Go](https://www.youtube.com/watch?v=fuYwyQllMpE).