Live data from Hacker News

Hyrum's Law

hyrumslaw.com

21–30 of 71 posts

Re: Hyrum's Law

#21

One thing I found surprising is how disregarding many companies are about creating and nurturing know-how transfer culture among teammates. They seem to value compartmentalisation so much that they forget they are not de-risking themselves from Bus Factor.

In times of lay offs, a bus factor of 1 is preferable.

Re: Hyrum's Law

#23
post #3

One approach to guard against Hyrum’s Law is GREASE (aka “Generate Random Extensions And Sustain Extensibility” used in the TLS 1.3 protocol) i.e. behavior randomization to avoid inadvertent dependencies on unspecified behavior: https://textslashplain.com/2020/05/18/a-bit-of-grease-keeps-... What are other approaches?

Telling people who depended on probably internal behavior that wasn’t an explicit part of your contract to fuck off when they whine about you changing something.

You don't get to decide what is and isn't an implementation detail.

And lets be real. There is no contract, and any one that is made will inevitably be broken.

Re: Hyrum's Law

#24
post #12

Earlier quoted context omitted.

At Google (long time off and on home of Hyrum), they migrated to swisstable from other hash maps. Unordered map iterates through the elements in insertion order. They explicitly couldn't support that without adding overhead to their new table so they randomized iteration order of the map The migrations to the new table were fun because you would migrate some code and then find a test that assumed the order things wer…

IIRC There's a (CppCon?) talk about this rollout where Hyrum is in the audience so that he can heckle each time they describe a change which "obviously" can't break anybody because of course Hyrum's Law did cause that to break at Google when they did it. Maybe somebody who remembers better can link it and/or correct my memory of exactly what's going on.

I believe it's this talk on swisstables from cppcon 2019:

https://youtu.be/JZE3_0qvrMg?t=1426

Re: Hyrum's Law

#25
post #7
post #2

What are some fun or unusual examples of Hyrum’s Law that you’ve run into? Were you the user, inadvertently depending on some implementation detail? Or were users depending on your implementation’s details?

I think Windows is the epitome of following Hyrum's Law decades before Hyrum's Law came into being :) https://twitter.com/pwnallthethings/status/13632600649293620... I guess the linux kernel still supprorting binaries from ages ago might be too.

> I guess the linux kernel still supprorting binaries from ages ago might be too.

Actually it's Linus making sure that kernel changes don't break old binaries from ages ago. And in fact there were many cases of undocumented behavior being relied on by apps, and Linus would send big rants about how you never break userspace, whether the behavior is documented or not.

Don't have any of them on hand right now, unfortunately.

Re: Hyrum's Law

#26

One thing I found surprising is how disregarding many companies are about creating and nurturing know-how transfer culture among teammates. They seem to value compartmentalisation so much that they forget they are not de-risking themselves from Bus Factor.

In times of lay offs, a bus factor of 1 is preferable.

Many the engineer has found solace in this, only to learn they were on a project management didn’t actually care about.

Re: Hyrum's Law

#27
post #12
post #2

What are some fun or unusual examples of Hyrum’s Law that you’ve run into? Were you the user, inadvertently depending on some implementation detail? Or were users depending on your implementation’s details?

At Google (long time off and on home of Hyrum), they migrated to swisstable from other hash maps. Unordered map iterates through the elements in insertion order. They explicitly couldn't support that without adding overhead to their new table so they randomized iteration order of the map The migrations to the new table were fun because you would migrate some code and then find a test that assumed the order things wer…

[deleted]

Re: Hyrum's Law

#28
post #7

Earlier quoted context omitted.

I think Windows is the epitome of following Hyrum's Law decades before Hyrum's Law came into being :) https://twitter.com/pwnallthethings/status/13632600649293620... I guess the linux kernel still supprorting binaries from ages ago might be too.

> I guess the linux kernel still supprorting binaries from ages ago might be too. Actually it's Linus making sure that kernel changes don't break old binaries from ages ago. And in fact there were many cases of undocumented behavior being relied on by apps, and Linus would send big rants about how you never break userspace, whether the behavior is documented or not. Don't have any of them on hand right now, unfortuna…

This is probably the most famous one:

https://lkml.org/lkml/2012/12/23/75

Re: Hyrum's Law

#29
post #3

One approach to guard against Hyrum’s Law is GREASE (aka “Generate Random Extensions And Sustain Extensibility” used in the TLS 1.3 protocol) i.e. behavior randomization to avoid inadvertent dependencies on unspecified behavior: https://textslashplain.com/2020/05/18/a-bit-of-grease-keeps-... What are other approaches?

[deleted]

Re: Hyrum's Law

#30
post #3

One approach to guard against Hyrum’s Law is GREASE (aka “Generate Random Extensions And Sustain Extensibility” used in the TLS 1.3 protocol) i.e. behavior randomization to avoid inadvertent dependencies on unspecified behavior: https://textslashplain.com/2020/05/18/a-bit-of-grease-keeps-... What are other approaches?

> guard against Hyrum’s Law

Why bother? We're not even able to guard against well establish contracts from changing and breaking compatibility.

Post reply on HN