Not blocking the caller is usually bad, the program can run out of memory if the producer is much faster than the consumers.
Also, in more realistic scenarios "process" can error, one would want to use the errgroup package.
I presented both solutions because "it depends". Though I agree with "usually".
Yes, if in doubt then block the caller. I mainly provided it as an example because the article had it as an explicit requirement.
You're right about errgroup. One can fit only so much in a HN comment. And I didn't want to distract by making it look like "no, you should use my favourite library instead".
But again it depends. If an error is handled by doing log.Fatal(), then there's no point in using errgroup.
I'm also not passing ctx, which much (most?) nontrivial code should pass.
Unity provides best UX on Linux so far, or have other desktops catched on? Last time I checked Cinnamon (tried it on Arch Linux though) and Gnome Shell both lacked the depth of design compared to Unity.
I prefer KDE. Unity has a mix of in-house, mac-style and Gnome design. I can't say it provides the best UX. It does provide consistency which makes it the most popular distribution and desktop environment.
On the other hand KDE is much more versatile and perceptive of user's choice. It has a rich set of software which includes a full productivity suite of KDE PIM (personal information management) and all Qt apps fit pretty well in KDE. KDE heavily uses widgets which makes your overall experience better.
You should give OpenSUSE 13.1 or Fedora 20 KDE a try.
The ppa repositories are an Ubuntu thing I've heard, there seem to be slightly more packages for Ubuntu-based distributions, and lots of things are just pre-packaged. Instead of having to apt-get a filemanager and everything, things are compiled by people that probably know more about it than me. Like with laptops, I'm pretty sure I could assemble one if manufacturers let us, but the real experts can probably do it better (with heat management and whatnot).
That said, Debian works perfectly fine for me on my phone. It runs lxde chrooted in userspace (Android is the booted OS), and I have no trouble using and operating Debian as far as things are available for ARM. Even compiling new things for ARM is usually no issue, though things like compiling Firefox are probably beyond what I would want to try on my phone :P
This is a good point. In Linux Mint, Unity is in the repositories, but not mandatory - there are plenty of supported DEs. Wheras in Ubuntu, Unity is in the repositories, but not mandatory - there are plenty of supported DEs. So that's a big advantage of Linux Mint then.
wrong, they use mate, which is a sort of fork of gnome 2. debian is already committed to gnome 3... which has all the usability issues "solved"if you want to download tons of JavaScript to run locally... but all the system tools are still a train wreck. eg, just added my printer, can't even see the protocol I'm using via the gui, and since my net printer has a few, I only see it's model listed several times and have to guess, check elsewhere, repeat...