Hacker Newsnew | past | comments | ask | show | jobs | submit | heads's commentslogin

What I realized after 25 years is that configuration comes in three parts:

1/ the defaults, either built in or read from /etc;

2/ my defaults, included in each file (or with ssh, at the bottom) with that particular config’s native version of #include; and

3/ local specifics that are rarely if ever used anywhere else, or trivially short as to be copy-paste-able.

Almost everything I want to customize goes into (2) so I wrote a single Python function that manages a block at the top (or with ssh, at the bottom) of each config file:

  # BEGIN my foo stuff
  include = /my/repo/foo/config
  # END my foo stuff
That way foo starts out with (1) the system defaults; then adds (2) my personal foo defaults as defined in a working copy at /my/repo; (3) anything else I insert in the file after that which isn’t centrally managed and that’s ok.

I haven’t ever needed anything more complicated. I do not have any work specific configs that I need to gate. I no longer have to manage different configs based on whether I am using Debian, Debian (old), Debian (very old), SunOS (very very old), or AIX (very very very old) because those days are behind me.

If you do still need to manage slightly different but ethereally different configs on different hosts then I’m sorry to hear that. Rationalising my computing life so that I use the latest version of some Linux distribution everywhere has been very helpful!


North America has lots of land and oil. Timber (Canada), plastics, and corn fertilised by nitrates that were made using fossil fuel energy. Corn probably doesn’t ship in containers but corn-fed beef and poultry do?


In the sense that violence is coercion they have a lot of purely electronic means of persuasion:

  update account
  set balance = 0
  where user = ‘steve1977’;


That‘s why I keep some physical gold.


We used to have an ecosystem like this. In our case it reflected an entrenched set of divisions between warring teams. In some ways it may have then enhanced those positions and we still bear a few of the scars today.

A lot of the old guard have left the company though and our main product moved from four repos to just one. The threat from the legal team to have enforced OWNERS files — essentially replicating the divisive politics of the old repos but in the monorepo — thankfully withered on the vine. We still audit what goes into each release but it’s no longer part of any active permissions thing. We trust our developers but verify, for legal reasons, that nothing went wrong.

You either want one engineering team to act in unison behind your company’s mission, or you want to live a divisive narrative that you are actually multiple teams “working” together with none of the advantages of living under one roof and all the disadvantages of hard repository boundaries crisscrossing your intellectual property.

So many factors threaten to curdle your team dynamic: multiple offices, multiple floors, work from home hermits, bad management, etc. It’s simply org entropy and it takes much effort to keep the weeds out of the garden. Multiple repositories is one less bullet you can keep out of your feet while fighting all the other battles that threaten to turn your team from 1990s Sun Microsystems into 2010 Sun Microsystems.


Put wings on it and go up sideways. It solves the thrust/weight issue the same way a hill climber does: instead of going directly up they zig zag.

You need the lateral velocity anyway, for orbit.


Now your rocket needs to be strong horizontally and vertically, rather than just vertically. You have a much heavier rocket.


Why would you choose to lose fuel/acceleration to changing direction?


And at the command line: headers to stderr, body to stdout.

Without it you get this behavior:

  > heights | sort -k2 -nr
  George  186
  Wally   173
  NAME    HEIGHT
But if the headers bypass stdout then you get this instead:

  > heights | sort -k2 -nr
  NAME    HEIGHT
  George  186
  Wally   173


> heights | (sed -u 1q; sort -k2 -nr)

does the right thing.

(from https://stackoverflow.com/a/56151840)


...unless you're writing to a file, in which case you'll require a couple tries and a higher quantum of shell comprehension.

This is a persistent limitation of the in-band text-only model. But I think this misuse of STDERR would be more confusing than helpful.

If `heights` was a file, you could do this:

  % head -1 heights ; sed 1,1d heights | sort -k2 -nr
If `heights` is an executable that would be expensive to call twice:

  % heights > /tmp/heights ; head -1 /tmp/heights ; sed 1,1d /tmp/heights | sort -k2 -nr
Or you could pipe to `awk`, etc.

Granted, these other options are less convenient, but they are also less surprising, and they work even if the executable creator has different ideas.

Sometimes you gotta do what you gotta do.


Which one works best here ? Headers to stderr, or headers only if stdout is a tty ?


I’m sure this is real but just for fun I’m entertaining the idea that someone is trolling — either with a fun dialog title or the app name.

I worked at a company in the late 2000s that moved to an office with automatic urinals. These were fairly novel at the time and had a matte black plastic unit with a flush handle that also had a shiny window made of dark, IR transparent plastic. It was clearly some kind of proximity sensor for the autoflush but some joker made an official “do not touch the cameras” sign that wound a few people up.


I feel like my memory (and that article) aren’t very clear on this, but Backbone in spirit felt quite different to the series of high bandwidth towers of which Telecom Tower was one part.

Regular lets-call-grandma telecommunications would be handled by your well know, friendly, cuddly round towers like Telecom Tower and Stokenchurch just next to the Chiltern cutting on the M40.

Sinister everyone-has-died communications would be handled by the mysterious, dangerous looking towers like Highgate and Kelvedon Hatch. These towers resemble high tension power lines and growl at you if you look at them for too long.

This site has a lot more detail on how the two ended up as one, over the years:

https://www.subbrit.org.uk/features/backbone-microwave-relay...


Parliament is all the players from all 12 teams including all those on the bench who never even played.

Government is the members of the winning team who were on the field when the whistle blew. They get to lift the trophy.

In real competitions the subs get to lift the trophy too so maybe a better analogy is that the UK Parliament is 12 teams, all their subs, the coaching staff, club management, and the people who run the official fan club. A subset of these from the winning club get to lift the “I am the government now” trophy but not all of them do.

Oh, and of course while the Commons are playing [association] football, the Lords are playing charity match celebrity cricket, and yet some of them (e.g David Lord Cameron) get their hands on the FA Cup too.

In the US, by contrast, it’s more like the guy who owns the team is the one who lifts the trophy. They do so by winning a “whose team do you like the most?” competition, all while a separate match with actual players is going on, none of whom will win the executive trophy.

There are also only two official USA Sports League teams but they split into cliques that play together behind the scenes. Kind of like the midfield caucus doing a deal with the forward caucus to give them the ball in exchange for extra oranges at half time.


What a fun read! Your “how to get shot in the airport” caption nearly made me spit out my coffee.


Thanks, I'm glad you liked it!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: