HNHacker News
TopNewBestAskShowJobs

magiconair

55 karma · joined March 21, 2014

[ my public key: https://keybase.io/magiconair; my proof: https://keybase.io/magiconair/sigs/dbT5YPhcYjlnv_4u68isxFK2p400B5SAY0w1NA-wIbk ]
submissionscomments
magiconair··on Go func: Reducing cognitive load
I think this is example is too simple and misses the point of a config package. If you have config options being read from several different sources (files, args, env) and need to initialize subsystems which need more than one or two parameters (think server with several timeouts, paths, handlers) then you want to pass this as a struct and you need to manage that struct somewhere.

Configuration is also an external contract since you don't want to break installations because you want to rename a variable. Therefore, you have to distinguish between argument parsing and the actual runtime configuration and it makes a lot of sense to have that in a single package since you can then test it properly.

Configuration is a complex issue for non-trivial projects. Managing this in one place allows to have one source of truth.

magiconair··on Nginx 1.12.0 stable
Glad you like it. :)

Disclaimer: I'm the author.

magiconair··on Ask HN: How do you deal with loss of motivation?
If you have the luxury to pick your job then the most important thing IMO is that you find something which interests you since you will derive your motivation from that. Everything else is secondary.

If you're doing something that doesn't interest you then it doesn't matter how good the other benefits are since you constantly have to use energy to motivate yourself. Then you won't produce something you're proud of which helps neither you or the company.

magiconair··on Belgium and the Netherlands Swap Land, and Remain Friends
My kids have both German and Dutch passports but that's because their parents are from these countries.
magiconair··on Consul 0.7
The general setup seems to be that you have a public facing LB which just forwards all incoming traffic to any available fabio instance which handles the dynamic routing. fabio does not solve the public VIP problem for you.

Disclaimer: I'm the author.

magiconair··on Why Americans don't take sick days
Not trusting your employees is usually a bad sign.
magiconair··on Why Americans don't take sick days
Yes, because your holidays are for recreation not for recuperation. When you're sick, you're sick. Go home, get rest, forget about work. Makes happier and more productive employees since you treat them as human beings.
magiconair··on HAproxy in the era of Microservices
https://github.com/eBay/fabio might also be an option for you.

Disclosure: I'm the author.

magiconair··on HAproxy in the era of Microservices
I'm curious whether https://github.com/eBay/fabio would meet your needs. It picks up the routing table from consul changes and service registrations and reloads it without restart. All the services have to do is to register their routes in consul. It is meant as a replacement for consul-template+HAproxy.

Disclosure: I'm the author

magiconair··on Ask HN: Why is it so hard to find remote jobs in Europe?
I am one of these managers in Amsterdam with an international team of 10 people from 8 different countries who still writes code. My desire is to have a team that gets the job done. The most effective way for them to do this IMO is to have them sit together so that they can discuss issues they have immediately.

We are seeing effects of less effective communication of teams sitting just a few desks apart.

Remote work has great benefits for the remote worker - and having been one I know them as well. The downside is that when you're building something complex the communication overhead is too big.

Another thing is that remote workers in vastly different timezones provide a time window for architectural discussions which can be too short. So they are never there when you need them and can only work alone.

I prefer to give my team members flexibility to run their personal errands and family issues but to have them on-site to have the shortest group communication paths possible.

magiconair··on iGo: a new Syntax for GoLang
I think one of the reasons for developing Go were some hard-to-find bugs with the indentation of python code. AFAIR, the Go authors specifically didn't want this.

Found it: (http://talks.golang.org/2012/splash.article)

"As a simple, self-contained example, consider the representation of program structure. Some observers objected to Go's C-like block structure with braces, preferring the use of spaces for indentation, in the style of Python or Haskell. However, we have had extensive experience tracking down build and test failures caused by cross-language builds where a Python snippet embedded in another language, for instance through a SWIG invocation, is subtly and invisibly broken by a change in the indentation of the surrounding code. Our position is therefore that, although spaces for indentation is nice for small programs, it doesn't scale well, and the bigger and more heterogeneous the code base, the more trouble it can cause. It is better to forgo convenience for safety and dependability, so Go has brace-bounded blocks. "