HNHacker News
TopNewBestAskShowJobs

zb

1,803 karma · joined August 27, 2007

submissionscomments
zb··on Python packaging is good now
> There should be tools that help you write and update a setup.py. Or a setup.python.json or something, so you don’t actually need to write code just to ship some metadata.

There are some out there, e.g. OpenStack uses https://pypi.python.org/pypi/pbr - it was pretty painful around the 1.0 transition when no two libraries seemed to be using compatible versions, but it hasn't caused me any trouble in quite a while now.

I'm more concerned by the lack of a (non-greedy) dependency solver in pip.

zb··on We have an epidemic of bad posture
Wat.

https://www.microsoft.com/accessories/en-us/products/keyboar...

zb··on The Spanish cooking oil scandal (2001)
No, you make more money exporting value-added products (like olive oil) than raw ingredients (like olives). Basic economics says you want to move higher up the value chain, and that's what (I'm told) they did.

Of course this caused further problems for Greece and Italy, which were already not in good shape.

zb··on The Spanish cooking oil scandal (2001)
I was just in Spain, and was told that prior to the financial crisis much of the olive oil produced in Italy and Greece was made from olives grown in Spain. (Spain is a massive producer of olives.) After the crisis they stopped exporting olives and started bottling their own oil, which was the cause of the shortage in supply of extra virgin oil from e.g. Italy that led to organised crime getting into the fake olive oil business. So there's every reason to think that Spain in particular is awash in genuine olive oil.
zb··on The Brexit hangover has left UK startups drained – Are the brains next?
It was a dumb referendum because it pitted a specific, known option (remain in the EU) against a complete unknown. The unknown option won by cobbling together a coalition of several different, mutually exclusive agendas (some of which were/are based on fantasies, like the EU giving the UK free access to the common market while choosing which regulations it would follow), thus guaranteeing that there's probably no conceivable exit deal that more than 20% of the country (certainly nowhere near 52%) would be happy with, and even more than 80% will be unhappy with the one that is eventually negotiated.

You don't have to be pro-EU to see this as a bad way to run a country (although it helps).

zb··on How to Pick Your Battles on a Software Team
Jacques, please stop.

The article is unfortunately ambiguous. It's pretty clear from the comments here that there are two different camps in terms of how people interpreted it.

However, it's quite clear to me that the author defines 'winning' as reaching a consensus on one person or the other's point of view, and 'losing' as battling to a stalemate or having one person impose their solution on the other. It's about the team winning or losing (or, to put it in other words, "if we do it well we all win, and if we mess up then we all lose"). 'Picking your battles' is an English idiom that means avoiding confrontations.

It's a little light on specifics, but it's not terrible advice. In fact, it's the exact same advice you are trying to impart here.

Even if you don't agree with that interpretation, I think it behooves you as a HN-famous person to at least consider the more charitable interpretation before publicly branding the author as someone whose "advice could quickly turn a functional team into a non-functional one."

Please consider re-reading the article with a view to trying to understand how other people may have interpreted it, and the author may have intended it, differently. Failing that, at least take some of your own advice and give up your scorched-earth battle to the death with the author and every commenter who read it differently. We're all losing right now.

zb··on Charlie Brown and Franz Stigler Incident
That used to be a thing:

https://en.wikipedia.org/wiki/Parole#Prisoners_of_war

zb··on ‘Stop using paper checks,’ says agency in charge of them
It's a scale thing, I think. In NZ if you are a bank wanting to introduce new technology for payments then you have exactly 5 other banks that you need to get on board. In the US there's many thousands.

e.g. The NZ banks jointly own the company that processes EFTPOS payments. A system like that could never emerge in the US. Instead, people have debit cards, which are manageable because they go through the credit card companies and there are only a handful of those.

But yeah, it's all incredibly primitive and fraud-prone compared to NZ or Europe (I've lived in all three).

zb··on Uber's reason to block tipping? Racism
Just a heads up: you're trying to judge continental European cultural practices by Anglo-Saxon cultural norms, and that's pretty much always going to lead to nothing but misunderstandings. There are many things (like a waiter not coming to your table unless called) that are considered polite in e.g. Germany that would be considered rude in America, and vice-versa. (Source: I've lived in both of those countries.) It's part of the joy of travel to discover which parts of your culture aren't as universal as you assumed.
zb··on Agile Is Dead, Long Live Continuous Delivery
This is absolutely wrong, I have seen first-hand people seriously advocating (and actually trying to practice) it, even within the past 10 years.

The thing to remember though is that the 'pure' version of the process (in which you never return to the previous level - hence the name 'waterfall') was regarded as an ideal, not as something achievable. Nobody expected that there would be zero bugs found in testing that would require more coding work (why test otherwise?), but it was regarded as a kind moral failing, to be met with a lot of hand-wringing about why we can't be like real engineers, who never make mistakes &c. And the same applied to revisiting the design or requirements phases.

The next level of idealism held that even if avoiding returning to a previous stage was impossible, you could at least limit it to the immediately preceding stage. As Royce pointed out in the first paper to provide a convenient diagram of the established software lifecycle to cite, this never happened in practice either.

Over time the necessity of doubling back became less of a moral failing and was incorporated into the teaching of the process, without any acknowledgement that the entire concept was fatally flawed. It was also succeeded by several iterative but still waterfall-like processes (starting with Royce's paper and eventually followed by Spiral and RUP). Thus there are many folks who still believe that the pre-Agile process (they may not recognise that there was more than one) was just fine, and that the pejorative 'waterfall' was applied to something that never really existed. In a certain sense that's true, but it gives a completely misleading picture of the history.

Agile's contribution was the idea that any or all of the phases could be happening simultaneously - and, more importantly, that was OK. Plenty of people had been ignoring the orthodox methodologies and working that way, of course, but don't believe anyone who tells you that was an orthodox idea before Agile.

zb··on Poll: Apply HN Runoff – Which two startups should YCF fund?
If people don't trust their GD to convert to USD in 30 days, the only way for them to get rid of it is to spend it.

Who would accept it (at par value) under such circumstances?

zb··on The Feed Is Dying
Yeah, unchecking that was the first thing I did after updating the app, and the existence of that option was the only thing that made Twitter tolerable again. But where before I used to read every tweet in my timeline, now I regularly miss tweets because of the 'while you were gone' misfeature (I can tell because I have another device with an older version of the app), which doesn't appear to be optional. Plus everything is out of order.

It's not like I see any more ads this way, so I don't get the point. I do get a lot of stuff that isn't ads but which I didn't subscribe to and don't care about, and it's infuriating. Twitter clearly doesn't want users like me who follow only enough stuff they can actually read. Probably someone's bonus is linked to the average number of accounts followed. It's enough to make me seriously consider not bothering with Twitter any more. I wonder what that would do to their bonus? Facebook already used the same method to successfully drive down my usage of it (and therefore my viewing of ads) by at least an order of magnitude.

zb··on Ask HN: How do you review code?
I have created literally thousands of reviews with git-review, and I have never once used it to create, switch or delete a branch.

When I clone a new repo, I run "git review -s" (for setup), which installs the commit hook that ensures I never need to give even a passing thought to Change-IDs.

Then I run "git review" to push changes to review. I never have to think about where I'm pushing them because it's all configured in the .gitreview file. I generally also keep all my changes in a single branch (although I also use Stacked Git to cut down on unnecessary dependencies, and because I like it a lot better than "git rebase -i" for many purposes).

That's it. I've heard there are other flags. I've never used them. Nobody is forcing you. But by all means carry on generating Change-IDs manually if you like.

zb··on Ask HN: How do you review code?
I think you might be confused... (and if not then I certainly am). The -d flag means 'download', and the argument isn't a branch name, it's the review number from the Gerrit URL. You don't use it for reviewing code (that generally happens in the Gerrit web interface, or in gertty), you use it when you want to modify a patch submitted by somebody else. I'm not sure what a UX that lets you check out somebody else's patch without specifying which patch would look like.

FWIW I use Gerrit every day, and I don't recall ever once using the -d flag.

zb··on Ask HN: How do you review code?
All of the problems you mention are completely, 100% solved:

https://m.mediawiki.org/wiki/Gerrit/git-review

You're welcome ;)

zb··on Squash your commits
I think that GitHub's pull-request-based model is fundamentally broken. Gerrit's model, where every commit is quasi-independent (and hence must pass tests) and you can easily edit without force-pushing anything or losing review history, is superior (though not perfect) in almost all cases. (Exception: merging a long-running feature branch where all the commits in the branch have already been reviewed.)

This is GitHub's attempt to solve the problem without really changing anything. It won't really change anything. Since pull requests routinely contain a mixture of both changes that should be squashed (fixups) and changes that should not be squashed (independent changes), this just means that you get to pick your poison.

zb··on Make elites compete: Why the 1% earn so much and what to do about it
I find this idea appealing too, because it creates good incentives in the market. What I wonder about is the kind of incentives it creates in government (what do we do when pollution is eliminated but the government is broke?). Do you know of any good writing on this topic?
zb··on Make elites compete: Why the 1% earn so much and what to do about it
It's not your local doctor making $250k that is in the 1%, it's the doctor who set up a diagnostic company and ordered lots of unnecessary tests and is demanding kickbacks from other healthcare suppliers, whose rent-seeking is pulling in several million a year:

http://www.newyorker.com/magazine/2009/06/01/the-cost-conund...

If your point was that nurse practitioners won't help that siutation a lot, then I agree (although I think nurse practitioners are still a great idea for other reasons). But I believe it's wrong to suggest this is not a real problem.

Similarly, salaries for top college and hospital administrators are routinely equally and exceeding that of your $30M hedge fund manager. Perhaps even worse, they justify this based on the size of the organisations they manage, which are easily inflated by hiring lots of non-teaching, non-clinical administration staff (not to mention mergers, which also give hospitals especially more market power to extract rents). It's all financed by easy money from student loans and from insurance/Medicare that doesn't have a choice.

So I totally disagree that looking at the 1% is unhelpful, because all of the things above are real problems that need to be solved even if you think inequality doesn't matter. Anyone born after about 1980 and anyone who has medical insurance or pays taxes is getting fleeced, and they're not getting better services for their money. Fixing that will make a much bigger difference in most people's lives than confiscating a bit from the hedge fund manager (though of course there's no shortage of screwed up incentives in finance to fix either).

zb··on Letters Helped Challenger Shuttle Engineer Shed 30 Years of Guilt
> the engineers should have stressed the point long before Jan 28, 1986.

They did. They argued that the booster was unsafe at any temperature, but were overruled when NASA demanded proof that it was unsafe - a clear inversion of the correct burden of proof. It was the breakdown in the safety culture at NASA that led to this inversion, and not anything that anyone at Thiokol did or didn't do, that was the root cause of the accident. That made some sort of catastrophic failure almost inevitable.

Having lost this battle, the engineers were left the night before the launch to argue on much narrower grounds, and with an extreme paucity of data, that the launch was unsafe at the prevailing temperature even if it wasn't at a more usual temperature. (Even today it's not clear to me how big this effect was - remember that the expansion rate of the O-ring was insufficient to deal with the opening rate of the joint at any temperature.) Once again they were overruled, and the rest is history.

It's possible to argue that the engineers should have brought all the data they had to bear and attempted to relitigate the safety of the entire booster design the night before the launch. (I think Tufte's case in Visual Explanations basically boils down to this.) But it's not at all clear that this would have been successful, or even permitted.

You're correct that Challenger would likely have escaped but for the windshear. I'm almost certain, however, that recovery of a booster with the entire O-ring burned through for the first time would have have prompted some kind of action. Whether that would have lead to a complete redesign or just launch temperature restrictions that would have only delayed rather than prevented a catastrophic failure, we'll never know.

zb··on A Rational Design Process: How and Why to Fake It (1986) [pdf]
I've always found the arguments in this paper so bizarre that when reading it I have to constantly keep reminding myself that in the 80s this nonsense must have seemed like a practical way forward. (Parnas in particular was one of the giants of software engineering research.) I wrote a piece about it a few years back:

http://www.zerobanana.com/essays/rational-design/

Another good take on it:

http://www.leanessays.com/2010/11/rational-design-process-it...

zb··on How to Fix Tech’s H-1B Problem
You can, but the parent was talking about an L1, which cannot be transferred.
zb··on George-Eugène Haussmann, the man who created Paris
Albert Speer?
zb··on Philosophy of science books every computer scientist should read
In a similar vein, I highly recommend Discussion of the Method by Billy Vaughn Koen. It's a philosophy of engineering that resolves many of the unanswered questions you'll have after reading Feyerabend, and also gives an overview of the field of philosophy of science along the way.
zb··on Request: Officially oppose TPP Source Code provision
Sorry, but the headline ("TPP makes copy left licences illegal" until the mods change it as linkbait) is nonsense. The actual affect of this section is appears to be to prevent governments ("Party" here pretty clearly means a party to the treaty - read "signatory" if that helps) from making proprietary software illegal.

We can argue about whether that's a good thing, but it has no effect on copyleft, as section 3(a) makes clear.

zb··on The UK is replacing roundabouts with traffic lights; US is doing the opposite
I don't see roundabouts as a replacement for traffic lights in the US. Above a certain traffic volume, you'll almost always want to move to traffic lights anyway. They're actually a replacement for the 4-way Stop - a ridiculous type of intersection that ought not to exist.
zb··on How MacArthur Geniuses Handle Their Windfalls
> If they're smart, why haven't they found a way out of poverty yet?

It's tempting to think you're just trolling, but this view seems to be widespread enough that it's worth a serious answer.

It's because of the time value of money. Money now is worth more than money later - and it's extremely non-linear, not only with time but it also varies with the amount you have. So any money you don't have now corresponds to (literally) exponentially more money you won't have in the future, all things being equal. Even a smart person will find this hurdle very difficult, maybe even impossible, to overcome without a large dose of luck.

For example, what do you do if your car breaks down? Obviously you get it fixed and then move on with your life.

Now, what do you do if you're poor and your car breaks down? Assuming we take starving to death off the table, your choices likely boil down to losing your job because you can't travel to it or getting a payday loan at an usurious interest rate. Ironically, if you make the conscientious choice then people on internet message boards will call you lazy, whereas if you make the rational choice then people on internet message boards will call you stupid.

Whatever you choose will suffice to keep you poor for long enough for your car to break down again - which it will, because at no point would you have had enough money to invest in one that won't. Now apply this scenario to absolutely everything, large or small, that you ever have to buy and there is the answer to your question of why the poor haven't found a way out of poverty yet: because being poor is much more expensive than not being poor.

zb··on Kilogram conflict resolved at last
I was amused to read this:

"They never found the cause for the disagreement, but in late 2014 the NIST team achieved a match with the other two"

at a time when this story, also from Nature, is also on the front page: https://news.ycombinator.com/item?id=10383984

zb··on Slouchy – a small Python script that warns you if you're slouching
Nothing to do with Python, it looks like a Qt thing. Not much the author can do about that.
zb··on Understanding Infrastructure as Code
The translation into a linear flow of commands is an oversimplification - it assumes that the graph is a specific type of tree, when in fact any directed acyclic graph is valid.

Also, I personally find it way more interesting what happens when you update existing infrastructure, not just deploy new infrastructure, with an arbitrary dependency graph. But probably that's just me.

Shameless plug: you don't have to use a proprietary cloud! OpenStack provides the same thing via the Heat project.

zb··on Volkswagen's U.S. head: individuals engineered emissions cheating
> there wasn't any mention if they were a) necessary,

They were not. It is never necessary to have 10,000 global variables. If you have 10,000 global variables you are systematically Doing It Wrong. (That's not to say it's uncommon. From my experience I strongly suspect that it's a very common practice.) As one of the witnesses put it, quite correctly IMO:

"And in practice, five, ten, okay, fine. 10,000, no, we're done. It is not safe, and I don't need to see all 10,000 global variables to know that that is a problem,” Koopman testified.

Trying to justify this is like trying to justify not having a bug tracker. Which, BTW, they didn't.

> b) implemented correctly,

There's no way to check 10,000 global variables to see if they're implemented correctly, and that's the entire point.

> and c) out of how many variables in total?

That is completely irrelevant.

> they claimed that every software within the system can access them to me this sounds that your stereo or the rain sensor for the wipers can override data for the breaks,

This was the ECU, it only controls the engine, not the radio or the wipers. It has tasks for stuff like monitoring the engine and wheel speeds, the accelerator and brake pedal positions and controlling the fuel injection. And all of those tasks were only an extra header file and a typo away from stomping on one of the 10,000 global variables belonging to another task, but that isn't even the issue. The issue is that there is no way to trace the flow of data in the system because it's completely unstructured.

> but that might be true only if everything is running within a single application.

Welcome to the world of embedded RTOSs, where everything is running within a single application. It's not a PC. "Applications" aren't a thing. There's certainly no memory protection.

← PreviousPage 4 of 15Next →