Hacker Newsnew | past | comments | ask | show | jobs | submit | isotropy's commentslogin

So…if we had already been using a base-12 counting system when metric came along, we would have the best of both worlds.


Without necessarily endorsing the article's ideas....I took this to be like the diamond-inheritance problem.

If service A feeds both B and C, and they both feed service D, then D can receive an incoherent view of what A did, because nothing forces B and C to keep their stories straight. But B and C can still both be following their own spec perfectly, so there's no bug in any single service. Now it's not clear whose job it is to fix things.


Offer non-diluting liquidation preferences for 996 and we can talk.


OOPs = "object-oriented programming", BUT it's a more restrained and thoughtful complaint than just "objects suck" or "inheritance sucks". He cabins it pretty clearly at 11:00 minutes in: "compile-time hierarchy of encapsulation that matches the domain model was a mistake"


To unpack that a little, he looks to the writings of the early developers of object oriented programming and identifies the ways this assumption became established. People like Bjarne Stroustrup (developer of C++) took on and promulgated the view that the inheritance hierarchy of classes in an object oriented system can be or should be a literal instantiation of the types of objects from the domain model (e.g. different types of shapes in a drawing program).

This is a mistake is because it puts the broad-scale modularization boundaries of a system in the wrong places and makes the system brittle and inflexible. A better approach is one where large scale system boundaries fall along computational capability lines, as exemplified by modern Entity Component Systems. Class hierarchies that rigidly encode domain categorizations don't make for flexible systems.

Some of the earliest writers on object encapsulation, e.g. Tony Hoare, Doug Ross, understood this, but later language creators and promoters missed some of the subtleties of their writings and left us with a poor version of object-oriented programming as the accepted default.


> This is a mistake is because

https://news.ycombinator.com/item?id=44638183


Is Objective-C discussed at all?


Only as a brief aside (don't have the timestamp right now) to talking about Smalltalk, which he mostly discusses to argue that Smalltalk was not different from C++ in seeking (most of the time) to model programs in terms of static hierarchies (according to the primary source documentation from the time of Smalltalk's design):

> And another thing is if you look at the other branch,

> the branch that I'm not really covering very much

> in this talk, because again,

> we don't program in small talk these days, right?

> The closest thing you would get

> is maybe something like Objective-C.

> If there's some people out there using Objective-C,

> you know, like Apple was using that for a little while,

> so Objective-C kind of came

> from a small talk background as well.

Objective-C is basically Smalltalk retrofitted onto C, even more than C++ was Simula retrofitted onto C (before C++ gained template metaprogramming and more modern paradigms), so it makes sense that Muratori doesn't go much into it, given that he doesn't discuss Smalltalk much.


>> you know, like Apple was using that for a little while,

If we discount NeXT's time using it, Apple's only been using Objective-C for 28 years, just a little while. It also (barely) preceded C++.


Inheritance sucks if you wish to write good unit tests easily. It just totally freaking sucks due to encapsulation. When you step back, you realize that composition is a far better approach to writing testable code.


CERN, for managing highly-synchronized beam pulses applied km apart from each other: https://white-rabbit.web.cern.ch/


The question was what internet applications. Not intranet. Also the original article fails to point out that multiple time servers can get you synced quite closely. Also if you do need high precision times you are running your own stratum one time sources on your own network providing your own clocking source with minimal deviations.

So again what internet applications actually care about millisecond or even submillisecond precision?


Ouch: fair enough.


Over the internet? Run a wire

nthing the objection that anyone who needs an accurate clock is getting it via NTP


That sounds incredibly unusual albeit highly impressive, just like that homepage!


Empirically, human-flipped coins have about a 1% bias toward the same side they started on: https://www.ams.org/publicoutreach/math-history/hap7-fifty-o...


But why it says "favors heads ~51%"


What sort of uncivilized mook dares flip a coin with tails facing up? Preposterous


Updated to "favors one side 51%".


I've seen a db mock work when 1) there was a small subteam in charge of the OR-mapping, schema structure, and included a DBA; and 2) also a design policy from the architect that all objects had to come out of factories. Under those specific circumstances, having the mock - used solely as a per-developer object cache imitating the factory interface - was critical for unblocking the people working on business logic and front-end.

I wouldn't structure a team that way now.


I like this - nice playing around. We usually think of this kind of tree as having directed edges from parent to child, e.g. from set to element. In your graphs, you're erasing the direction of the edges, which uncovers a neat little symmetry that I never thought about before.

All the (non-limit) von Neumann ordinals are of the form X+1 = {X, {X}}, where X is the previous ordinal in the set. If you just look at trees of this form:

X+1: X <- node -> {X}, or X <- node -> node -> X

then you ignore the direction of the parent-child relation, you get this:

X+1: X -- node -- node -- X

So that's why your trees are symmetric as undirected graphs; and of course, every lower ordinal has its own version of this symmetry, which is also contained in the tree. All the large gaps between sections correspond to node--node edges of the larger ordinals. Kinda neat!


They are different: in the U.S. that's why "freedom of the press" is also written down in the First Amendment, and historically, that's exactly how the U.S. courts have interpreted the phrase "freedom of the press" - as a (pretty) general right for anyone to use any media technology they can access to spread any ideas they want. There are always some limits, but from the start "the press" meant "the printing press", not "institutionalized news organizations". It's a general technology-usage right, not a specialized right for a certain group. Everyone is allowed to do more than just talk, or even shout. People can have different opinions on how wise that right is, but in the US at least, you are indeed free to broadcast your nonsense to millions of people, if you have the resources.


> broadcast your nonsense to millions of people, if you have the resources

Spot on, today you can do that as close to free as possible. In the eras past that was not possible it was expensive so only few could do it and that served as a moderating influence, it was not easy for fringe beliefs to become mainstream. The gatekeeping had the downside of suppressing voices particularly minority and oppressed voices so it was not all rosy.

The only thing we know is we can no longer use the past as reference to model how the future of politics , governance or media will be, which institutions will survive and in what distorted versions in say even 10-30 years.


>> broadcast your nonsense to millions of people, if you have the resources

> Spot on, today you can do that as close to free as possible.

Are you sure?

You can author a tweet for free, yeah. Then you let Musk do the broadcasting if he so pleases. Users have no control over the broadcasting, platform do.


Alice is taking a small unfair advantage of every member of the community at once. A community and its practices is a form of commons shared by the members, so it's vulnerable to the tragedy of the commons. If one member acts in a way that deliberately goes against the trust, that's inherently unfair to the rest of the members because it tends to push everything toward a breaking point. If her goal depends on the community's existence or function (which if it doesn't, why is she even around?), then whatever her goal, Alice has gone after it in a way that takes unfair advantage of everyone else's commitment to the system. Even if Alice's action doesn't cause a final breakdown, she's moved things in the wrong direction for her own purposes.


> Alice is taking a small unfair advantage of every member of the community at once.

Interesting take, I like it; thanks! Let me mull over it a bit... it's making me wonder whether the existence of any personal benefits (by Alice) are a necessary component of a violation.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: