← Back to context

Comment by sph

2 years ago

I think about Hans Reiser pretty often, incidentally, because there is a quote from him I read as a teenager that stuck with me.

"The utility of an operating system is proportional to the number of connections possible between its components, than it is to the number of those components."

— Hans Reiser (from http://web.archive.org/web/20040126210110/http://unununium.o...)

It's hard to reconcile good things a person might have said and done, with the bad. That sentence is a guiding principle of software design that I cannot often quote, without entering into a huge discussion on the pain Reiser has caused. This is the only time I feel I am able to share that quote, on a thread that hopefully tries to look past the right and wrong of his actions.

Just as no one is truly good, no one is truly evil either. It is good for one's soul and humanity to acknowledge that a bad person might have done something good in their life.

ReiserFS was pretty cool as well, sad to see it go, but no one uses it anymore. I hope they'll find redemption and peace.

> That sentence is a guiding principle of software design that I cannot often quote, without entering into a huge discussion on the pain Reiser has caused

That's a shame. He did something awful, but that's nothing at all to do with the idea in the quotation. Ideas shouldn't be cursed because the wrong person said them; they should stand or fall on their own merits.

  • Certainly, I have an issue with this idea that everything a person does gets cancelled because the person gets cancelled. Particularly in this era of intense political polarization.... It is throwing the baby out with the bathwater.

    The world is full of examples of art and science from troubled individuals; much of our foundational understanding of certain areas of science is derived from the learned experiences of inhumane research conducted by nazis or WW2 japan. Yet one guy murders his wife and suddenly we are all rejecting a perfectly cromulent filesystem.

    • No, ReiserFS was unreliable by itself. Run fsck on a ReiserFS filesystem with a ReiserFS loopback image/wm, then your whole partition it's trashed.

    • > Certainly, I have an issue with this idea that everything a person does gets cancelled because the person gets cancelled. Particularly in this era of intense political polarization...

      I think it's the crazyiness of this era. We expect people to be either "100% good" or "100% bad".

      Of course we, as a society and as individuals, are (unsurprisingly) deeply surprised when we find out somebody we like isn't "100% good" and can't accept that somebody we don't like isn't "100% bad".

      [edit: this is not 100% related to Hans Reiser, of course, more on a general tangent].

  •     Friends, Romans, countrymen, lend me your ears. 
    
        I come to bury Caesar, not to praise him. 
    
        The evil that men do lives after them; 
    
        The good is oft interrèd with their bones. 
    

    (What's interesting to me is that it's often black and white; dead people become either perfectly good or perfectly evil, depending on where you fall - only if they're "not important" are they allowed to be human and gray.)

  • Certainly, I don't have a problem with the quote. I just don't want to face the inevitable "Hans Reiser? Isn't that the one that..." quagmire that pretty much everybody is going to step into.

    • I have a Bill Cosby quote that I attribute to Dr Huxtable. It is sufficient citation, old heads will know but don't react, and new heads will just nod and not get triggered.

Isn't that a restating of Metcalfe's law? https://en.wikipedia.org/wiki/Metcalfe%27s_law

[EDIT: I have misunderstood Metcalfe's Law for over 20 years, assuming that "connections" meant edges in the following quote. Metcalfe intended to mean that the value of the network grows as the square of the number of nodes because "connections" here aren't edges, they're fully reachable pairs of nodes. Thanks, again, HN, for helping me through that]

> The financial value or influence of a telecommunications network is proportional to the square of the number of connected users of the system (n2).

Generally speaking, "the value of a graph is proportional to the square of the number of edges"

rabbit hole: https://en.wikipedia.org/wiki/Locally_linear_graph

  • > Generally speaking, "the value of a graph is proportional to the square of the number of edges"

    No, what Metcalfe's law assumes is that the value of the graph is proportional to the number of edges (not their square). And from that assumption and the fact that the graph is fully connected follows that it's proportional to the square of the number of nodes. (Because you can have (n-1)*n/2 edges with n nodes in a fully connected graph.

    And hence, the Reiser quote above is similar but it emphasizes something else: it states what Metcalfe's law (I think) uses as a premise (or implicit claim) that the value is in the connections. Because it's not necessarily a fully connected graph.

    Edit: originally I've given (n-1)*2/2 as the number of edges instead of (n-1)*n/2.

    • Promotional to the number of _edges_. Edges are proportional to the square of the number of nodes, so the value of the network overall is proportional to the square of the nodes.

      Think of it this way, for every new user added to the network: * the new user is enriched proportional to the number of existing users * every existing user is enriched by the 1 new user

      This double-counting is what gives it the quadratic growth.

      1 reply →

    • So, the wikipedia first line is wrong, you're saying? "Metcalfe's law states that the financial value or influence of a telecommunications network is proportional to the square of the number of connected users of the system"

      Later in the article it seems like the original stating is more consistent with what you said, but everything I've ever learned in network theory and practice shows that it scales as a power of number of edges, and the logarithm of the number of nodes.

      7 replies →

  • It did sound something that could be applied to much more than the niche of OS design. The focus is to make the connections between things composable, rather than adding a lot of subsystems. Think UNIX or Lego bricks.

    Thanks for those links, I did not know Metcalfe's law, but it expresses a similar concept in a much more succinct way.

> That sentence is a guiding principle of software design that I cannot often quote

Just rephrase it. It is not like you need to bring him up to discuss the idea, or as if this is the only form the idea can be expressed.

In fact I would say the quote as it is is confusingly written.

Fully agreed.

We also have to remember that a lot of the historical figures we glorify through their great achievements were terrible people in many respects. And that often goes undiscussed.

  • > We also have to remember that a lot of the historical figures we glorify through their great achievements were terrible people in many respects. And that often goes undiscussed.

    ...or we focus on how terrible a person was, and insist on completely disregarding their great achievements.

You accidentally omitted a word, that should read:

> The utility of an operating system is more proportional to the number of connections possible between its components than it is to the number of those components.

The word "more" is missing from the first half of the sentence: "more proportional".

>This is the only time I feel I am able to share that quote, on a thread that hopefully tries to look past the right and wrong of his actions.

Well, people would still use the theory of relativity if Einstein was proven to be a serial killer, so intelligent people who don't play it "hollier than thou" should be able to separate between some person's acts and their unrelated achievements or expressions.

  • Scientists would, while Twitter and average Joes will be discussing ad nauseam whether to rename the theory and delete the name Einstein from history books.

    Wasn't there a similar discussion about renaming the James Webb Space Telescope? He was not even a murderer.

It's hard to reconcile good things a person might have said and done, with the bad.

It's very easy to reconcile that a person that has done very bad things can say insightful things or be competent.

Being bad doesn't mean being stupid.

That principle has been stated and developed in other context. For example, there was an earlier HN post about composition of features (https://lea.verou.me/blog/2023/eigensolutions/?latest)

Another example is in ecology. Resilient ecology has many possible interactions among members of the ecology (including humans). An "invasive species" isn't necessarily one that is not native to the ecology, but one that is able to exploit a resource while having a minimum interaction with the rest of the ecology.

Dr. John Todd's ecovats are essentially self-contained ecologies that self-organized around a pollutant. They are created by taking samples from a number of ecological systems and putting them together into vats, and then running contaminated water through there. It's because the possible interactions are so high, that somewhere in there, was a path to breaking down the contaminant. In such a way, Dr. Todd was able to break DDT down in a matter of days through a system like that, and has worked on cleaning up superfund sites with this method.

To go one step further than number of interactions, Christopher Alexander's ideas on pattern languages was more than just about interaction of components, but actually about the _grammar_ of design patterns. Such a grammar can be constructed in a way that all possible combination coming out of the grammar results in a cohesive design. This allows inhabitants of an architecture or an end-user to reconfigure anything (as long as it follows that grammar) to suit their current needs, and it would still come off as a cohesive design.

To circle back to addressing the idea of evil and people who do bad things. I think you can find truth anywhere, and Han Reiser certainly touched on an insight (though it was not exclusive to him). I would further suggest this though: wouldn't this also mean that there is value in _relationships_ among people? In, not just the exchange of thoughts and knowledge, but the exchange of shared experience and feeling?

I don't know what went through Reiser's head when he killed his wife, and I can believe that there are a kind of madness that can consume someone. I think perhaps, Reiser saw an insight in systems engineering ... but did not see how that same principle was also present in the day to day life as well. (Or maybe he did see it, and was consumed by a madness anyways)

Your observations are right but your conclusions are shoddy . We can and should separate ideas from the person . There are plenty of truly evil people though . No indictment of Hans I don’t know his case . But of truly evil people there are countless numbers

  • I disagree, but this is personal philosophy I do not feel comfortable going too deep with on an Internet forum.

    From my point of view, people that are born with evil streak are vanishingly rare, as much as being born with two heads. What happens later is simply a product of nurture, upbringing, context, and chemical imbalances. Pure black and pure white do not exist in nature.

    • A 27-year-old Queens man is in custody for two subway stabbings on Wednesday -- at Columbus Circle and in the Bronx.

      The suspect was spotted in the Bedford Park station in the Bronx at 7:20 a.m. Thursday, and after a brief chase, was taken into custody. He was in possession of two knives at the time of the arrest.

      He has multiple prior arrests, including five in the last 12 months for charges ranging from assault to sex crimes.

      Not evil ?

      1 reply →

Lots of people who do good work have done awful things.

I love Oscar Wilde's plays, but he was a paedophile sex tourist. Eric Gill created beautiful stuff, including typefaces most of us probably use or read fairly often, and he sexual abused his children and his dog.

  • "Pedophile" back then often just meant "gay". In French pedé (pedophile) was the regular way to say "homosexual".

    Also the age of consent was lower back then, and untold numbers of "normal respectable ethical people" who back then would otherwise condemn Wilde as "pedophile" did marry girls at 14 or so. Before the 20th century basically after 13-14 kids were considered more like short adults than as a special category of teens. Wilde surely wasn't any kind of pervert going with prepubescent kids or anything like that. In fact, the guy he went to prison for being a lover to was 21.

    As for his "sex tourism", it was basically travelling in countries you could have gay sex with locals and the local authorities would turn a blind eye.

    • No. He had sex with boys, and he had sex with boy prostitutes while traveling abroad.

      > In fact, the guy he went to prison for being a lover to was 21.

      Yes, he had sex with adult men too. Also with adult women too - he was married to one and they had kids.

      1 reply →

  • > paedophile sex tourist

    Did you lift that quote from here? https://publications.parliament.uk/pa/cm199899/cmhansrd/vo99...

    > Oscar Wilde was a paedophile and a sex tourist.

    I Googled for: was Oscar Wilde a pedophile?

    There is lots of debate. Not so straight forward.

    • No, not seen that. Multiple articles and I read some letters etc by Wilde, Gide and others years ago.

      Some defences either ignore the key evidence - for example the first I found was this which just looks at his attraction to adult young men, and ignores his attraction to teenagers: https://www.makingqueerhistory.com/articles/2016/12/20/the-t...

      The others base their case on distinguishing between a paedophile and an ephebophile. It may well be true, but the latter is still a criminal offence in most countries (albeit lesser in some countries). Combined with travel and prostitution it is still pretty horrible behaviour.

  • > Oscar Wilde's ... was a paedophile sex tourist

    I've never heard of him being into children, have you a link for this, thanks (also, 'sex tourist'?)

    • Apparently he went to North Africa and Italy. Plus he was what would be called a rapist today.

      Mind you, I don't know if this is a reliable source.

      https://thefederalist.com/2018/09/18/time-left-stop-idolizin...

      I'm not really a fan of applying modern standards in historical contexts. Times change, but even today the age of consent is 16 in the UK. Condemning him for being 30+ and having sex with 15-16 year old boys just doesn't make sense to me. It seems people try to apply American puritanical standards to a historical person from Europe, who lived in the 1800s Victorian era.

      If we were to apply modern standards, you should be condemning over 1B people around the planet for following the teachings of a 30yo+ guy who married a six year old girl.

      3 replies →

I also remember him saying, (paraphrasing here) “I’m not particularly smart, there are people out there that are much smarter than me. What I am really good at is poking around in the dark with a stick and seeing what happens”

I was impressed by this quote from TFA:

> Through force of will, and hard work, he made himself into a programmer of extraordinary skill ...

Great quote! Isn’t the number of connections instead of number of components related in some way to metcalfs law?

FWIW this is highly related to what I think of as the "narrow waist" architectural principle. You may like these articles I wrote:

The Internet Was Designed With a Narrow Waist - https://www.oilshell.org/blog/2022/02/diagrams.html

The Internet has huge utility because TCP/IP is a narrow waist. It has architectural connections to Ethernet/wireless/... on one end, and HTTP/BitTorrent/... on the other.

For the most functionality, you want fewer code components, and more interoperability. You want O(M + N) pieces of code to give O(M * N) functionality.

The narrow waist architecture does that -- it gives O(M * N) connections to O(M + N) amounts of code.

You don't want to write O(M * N) code, though many people and systems are stuck there!

This generally works the best when the connections are data-oriented and protocol-oriented, not oriented around source code.

---

A Sketch of the Biggest Idea in Software Architecture - https://www.oilshell.org/blog/2022/03/backlog-arch.html

I mention Metcalfe's law, which is related but distinct. Metcalfe's law is about O(N^2) network node connections ("dynamically"), while the (usually) O(M * N) narrow waist is about system architecture ("statically").

They both produce network effects! If the Internet already exists, then the easiest design to implement is to attach your new network to it (e.g. a network in space), not create a new, incompatible network.

---

Incidentally, this seems like what's wrong with the Kubernetes ecosystem -- it has an combinatorial explosion of code due to lack of protocols and interoperability.

It's not data-oriented, like Unix is.

(An important point is that lots of people complain about Unix-style unstructured byte streams because it's suboptimal LOCALLY, while missing the global interoperability / scale / system economy issues -- they get stuck writing O(M * N) code to avoid parsing and serializing )

---

Newer article from last year - Oils Is Exterior-First (Code, Text, and Structured Data) - https://www.oilshell.org/blog/2023/06/ysh-design.html

Software modularity within a process is much different than modularity between processes -- it's a bit more like networking.

You need an exterior narrow waist. To pick an example, a consequence of that is that encodings like UTF-16 don't make sense in any channels where you don't have metadata, and there are a lot of those

e.g. the URL comes BEFORE the Content-Type header in HTTP!