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.
Hyrum's Law
21–30 of 71 posts
Re: Hyrum's Law
#22https://github.com/facebook/react/blob/6a44f352ecdfa93949cad...
Re: Hyrum's Law
#23One 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.
And lets be real. There is no contract, and any one that is made will inevitably be broken.
Re: Hyrum's Law
#24Earlier 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.
Re: Hyrum's Law
#25What 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.
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
#26One 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
#27What 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…
Re: Hyrum's Law
#28Earlier 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…
Re: Hyrum's Law
#29One 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?
Re: Hyrum's Law
#30One 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?
Why bother? We're not even able to guard against well establish contracts from changing and breaking compatibility.