HNHacker News
TopNewBestAskShowJobs

zb

1,803 karma · joined August 27, 2007

submissionscomments
zb··on I added a non-wi-fi Mitsubishi AC to Home Assistant
Even for ducted systems, these proprietary controllers are the only thing you can get in Japan, and by extension places like Australia/NZ where the systems are all imported from Japan. (Europe is still largely yet to discover heat pumps, judging by reports from this past summer.)
zb··on Letter from the Duke of Wellington to the British Foreign Office (1809)
In 1812 he was the Earl of Wellington. https://en.wikipedia.org/wiki/List_of_titles_and_honours_of_...
zb··on Magnifica Humanitas
CFC refrigerants are the canonical example.
zb··on Show HN: Build the habit of writing meaningful commit messages
Commit messages are immutable. Linking them to a bug ticket gives you a mutable place to record any new information about the bug that you discover in the future. (For example, that it affected more cases than you originally thought, or that the fix caused another bug.) This new information will be discoverable when starting from the original commit (found e.g. by doing a blame on a particular line of source).

To fail to do so is a gigantic missed opportunity in my opinion. You never know when you will need it.

zb··on Advice for new principal tech ICs (i.e., notes to myself)
It’s a lot better than the reverse.
zb··on Advice for new principal tech ICs (i.e., notes to myself)
Another way to look at it is that you’re getting to do all of the fulfilling parts of management roles (helping your team(s) to grow and develop) without the less fulfilling parts (endless meetings, budget spreadsheets, unpleasant conversations, having to give up writing code).

> These are not rookies if they reached Principal IC, but the most experienced team members ever, yet the author still feels the need to say this.

At this level the job is qualitatively different from what went before - you do start as a rookie in this role, and if you only try to keep doing what you’ve done before only better then you’re not setting yourself up for success.

> Do we need to move up or out?

Not to this extent, no. If you are still a Junior after 15 years, that’s a problem and questions will be asked. But if you want to stay in a role where you keep doing what you’ve done before only better, then that’s generally completely fine and the right choice for many people.

zb··on Apple typewriter memo (2020)
The ink ribbon contains a record of every word you type, and I believe hoovering them up was a common espionage tactic back in the day.
zb··on The Grug Brained Developer (2022)
Debuggers allow you inspect stuff forward in time, while print statements allow you to debug backwards. (There was a lot of academic work on reversible debuggers at one point; to be honest I haven’t kept up on how that turned out.)

If you can detect a problematic condition and you want to know what will happen next, a debugger is a great tool.

If you can detect a problematic condition and you need to find out what caused it, it’s printf all the way.

My theory is that different types of programming encounter these two types of problems at different relative rates, and that this explains why many people strongly prefer one over the other but don’t agree on which.

zb··on Inheritance was invented as a performance hack (2021)
A city is not a tree: https://www.patternlanguage.com/archive/cityisnotatree.html

Even trees are not trees: https://en.wikipedia.org/wiki/Anastomosis

Evolution is most definitely not a tree.

Nature also tends towards practicality, even more so than programming. Trees aren’t a fundamental truth, they’re a made-up oversimplified abstraction.

zb··on Ask for no, don't ask for yes (2022)
I’m reminded of an infamous occasion when this technique was used: https://en.m.wikipedia.org/wiki/Cable_243#Preparation
zb··on Title drops in movies
The one that sprang to mind for me was The Name of the Rose. Oddly it doesn’t show up as a title drop in the data.
zb··on Why does FM sound better than AM?
> This in turn is why air traffic still use AM where you can hear both overlapping transmissions at once (possibly garbled if carrier wave was off), and react accordingly rather than being unaware that it happened.

I’m not convinced this is the reason. The carrier wave is always off by a little. While you’re transmitting you hear nothing anyway. And when two parties are transmitting simultaneously, any third parties just hear very loud screeching. A 0.001% difference in carrier frequency would be more than enough to cause this effect in a VHF radio. Notably, this exact problem was a major contributing cause to the worst accident in aviation history. Using FM would have prevented it.

https://archive.ph/2013.02.01-162840/http://www.salon.com/20...

zb··on Air Con: $1697 for an on/off switch
You must be American.

In Australia there are exactly zero heat pumps on the market that you can use an ecobee with. It just isn’t an option. There are no off-the-shelf options.

You don’t have to pay $1700 for this garbage $50 tablet, but it is the default that every installer will offer you without mentioning any other options (and the only options are the manufacturer’s proprietary controllers). In this case his builder procured it for him without even telling him the price. He may not even have been given a choice. You have to be extremely motivated to stay on top of every decision like this along with the thousands of other decisions involved in building.

zb··on Why is the mouse cursor slightly tilted and not straight?
The arrow has a white outline around it, so the hotspot is at the tip of the black arrow, at (1,1).
zb··on Prefer table driven tests (2019)
> this can’t possibly be how you write tests in Golang?!

Only for very simple functions like in the example. Most of the time it’s much worse.

zb··on Toyota plug-in hybrids to offer 124-mile electric-only range
AIUI the Hybrid Synergy Drive combines aspects of a series and parallel hybrid, for efficiency at both high and low speeds. I think this is the main reason that pure series hybrids are not more popular.
zb··on Toyota plug-in hybrids to offer 124-mile electric-only range
This is called a series hybrid and there are lots of them on the market.
zb··on Tell HN: Thanks and hats off to all the non software engineers
It’s a quote from Newton, so that’s obviously why we say it.

The reason he said ‘giants’ is supposedly that it was a dig at Robert Hooke, who was famously short. Impressively, if true then he both managed to get this dig in and to be remembered for his humility as a result of it.

zb··on Ask HN: Reading material on how to be a better software engineer?
I’m currently reading The Staff Engineer's Path by Tanya Reilly and it’s really good (so far). It’s a great thing to read at the point it sounds like you have reached, where programming a little better is no longer going to move the needle, even if you aren’t in a position to apply everything in it yet.
zb··on Senior engineers are living in the future
Exactly, but also that it's quite often experience you had this morning, not e.g. over the last 5 years, that makes the difference.
zb··on This Program is Illegally Packaged in 14 Distributions
Lawyers make a distinction between "illegal" (crimes) and "unlawful" (torts) that is mostly lost on the general public.
zb··on John Cage Organ Project in Halberstadt
Any thread about this is incomplete without mentioning the article about a note change in this performance by John Darnielle (of the band the Mountain Goats, who is also a novelist): https://harpers.org/archive/2016/01/there-are-other-forces-a...
zb··on Feynman on group decision-making at Los Alamos (1985)
No, because he’s clearly describing an engineering problem, not a physics problem.
zb··on GPS
Cloud infrastructure - so basically I have gone right from one end of the scale spectrum (tiny GPS receivers) to the very opposite extreme :D
zb··on GPS
Yes, I was working for a company making standalone car navigation devices (remember those?), amongst other GPS-related things - I also worked on a lot of OEM GPS receivers. There was even a guy (not me!) who had written the firmware for a GPS receiver basically from scratch, so I got a look at everything from the very low level up to the navigation UI.

At this point the iPhone hadn’t come out yet, but building data was just starting to show up the maps we used for navigation.

zb··on GPS
Fun fact: when I was looking into patenting this concept in c. 2007, the prior art search revealed that it had already been patented by someone in Japan in c. 1997.

Amazing to think that ideas people had back when Selective Availability was on for the foreseeable future are just now becoming available to consumers. Congrats on getting it done!

zb··on I'm sorry
I don't know anything about the .NET Foundation or much about this particular situation, but I know a little about open source governance.

It appears that Novotny believed she was acting in her capacity as a (long-dormant) maintainer of the project when she merged the PR in question. It was clearly wrong to do so without following the process set down by the other maintainers, and she was right to apologise.

However, as the Executive Director of the Foundation, she also had the power (perhaps indirectly) to force a merge of a patch in any project controlled by the Foundation. All Foundations must reserve this power to themselves (you can't take on legal liability for something you have no control over), but they also must never use it. To do so is the nuclear option, to be invoked only after all trust and goodwill has been irretrievably lost anyway, because it certainly will be once you use it.

When you wear multiple hats and one of those hats is very powerful, it is critically important to make clear when you are doing stuff but not wearing that hat. Sometimes even that doesn't help, and it's better to just refrain from doing that stuff until you have handed the hat on to someone else.

In this case she failed to make it clear that she was wearing her maintainer hat and not her ED hat. In fact, she accidentally invited speculation that she was wearing the ED hat by referring to the change as a requirement of the Foundation. I'd imagine this is why things blew up.

Note that this probably indicates a problem with the structure of the Foundation. It's more or less inevitable that at the board level these things are pay-for-play, and that the ED's continued employment is at the discretion of the board. But technical decisions should be delegated to a neutral body, preferably elected by the project maintainers. It doesn't sound like that exists, but had it done this situation might have been avoided.

The other issue seems to be a fundamental disconnect between the Foundation and the maintainers of various projects in it about the purpose of the Foundation. For example, I saw one where a maintainer politely declined to give the Foundation access privileges required to enforce the Code of Conduct, instead saying that the maintainers would enforce it themselves. Sorry, but I don't think any foundation could accept that. One of many reasons for joining a foundation is that it gives contributors confidence that there is a CoC backed up by an independent organisation, and that can be enforced even (especially) against powerful members of the community such as project maintainers - potentially even all of a project's maintainers. This is one of many ways that Foundations help build contributor confidence, which is one of the major benefits for a project of joining a foundation, and all of them rest on the credibility of the foundation to act as a circuit breaker and assert some kind of control should dire circumstances crop up. To allow individual projects - even historically well-behaved ones - to opt out of that control would be to effectively render those guarantees meaningless, and in fact reduce the foundation to what would be effectively just a giant fraud against contributors.

It appears that many projects signed up without being made aware of this, and that is an absolute disaster for which only the Foundation can be responsible, and again they are right to apologise for failing to communicate it. However, what many people wanted was an apology for having technical measures in place that would allow them to exert control over projects, which the Foundation cannot really apologise for because it would effectively be an apology for existing. Inevitably people who wanted that will see this response as a non-apology apology.

It looks like a long, hard road back from here to rebuild trust. I'd suggest that the board needs to work collaboratively with the community to clearly document the rights and responsibilities of both the Foundation and the individual projects, that they consider establishing an independent governance body for technical oversight, and that any project that feels this isn't what they signed up for be given the opportunity to leave on good terms.

zb··on Remembering Allan McDonald, who refused to approve the Challenger launch
He had no idea whether it was a risk worth taking or not, because they rejected any evidence short of certainty that the O-rings would fail on a given flight. The results of the Rogers Commission make this abundantly clear to anybody who cares to pay attention, yet he professes to have learned nothing.
zb··on Remembering Allan McDonald, who refused to approve the Challenger launch
The film “Challenger: The Final Flight” on Netflix includes interviews with the most important participants in the launch decision, including McDonald. (It also has interviews with many of the astronauts’ families and does a great job at putting their experience front and centre.)

The guy whose job it was to send the fax because he happened to be the one who knew how to operate the fax machine is to this day utterly devastated; weeping.

The MTI VP who signed off (although the decision was made above his head) admits that he agreed with it at the time, but acknowledges it was a mistake. He’s being interviewed in a large room full of very expensive furniture.

The NASA manager who bullied them into agreeing to launch because they couldn’t prove that it was unsafe basically says that if he had his time over he would kill all of the astronauts again. Truly terrifying.

zb··on Python Concurrency From the Ground Up (2015) [video]
> Python's "threads" are actually fibers.

They’re actually not. They are native threads with high lock contention.

Async is arguably fibers, as are greenthreads in libraries like gevent or eventlet.

> But if you want to use real threads, multiprocessing's "processes" are actually system threads.

They’re system threads running in separate memory spaces. Also known as… processes.

Page 1 of 15Next →