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

I know this sounds maybe a bit insane, or even self-aggrandizing but I don't comment on public websites for some benefit to myself. I write with the vague hope that some unique expression of myself makes some tiny difference to this universe.

Every once in a while I have some experience or some a point of view that I don't see reflected anywhere else. One of the benefits of the pseudo-anonymization of sites like Hacker News is that I feel a bit more comfortable stating things that don't really have a place to say anywhere else.

The only thing I regret is when I get into pointless arguments, usually when I feel that my comment was misunderstood or misinterpreted. But even those arguments sometimes force me to consider how to express myself more clearly or to challenge how deeply I hold the belief (or how well I know the subject) that lead me to the comment in the first place.


I think that the culture of a given forum plays a huge role.

There are some places where commenting is meaningful because you're a part of some closely-knit, stable community, and you can actually make a dent - actually influence people who matter to you. I know that we geeks are supposed to hate Facebook, but local neighborhood / hobby groups on FB are actually a good example of that.

There are places where it can be meaningful because you're helping others, even if they're complete strangers. This is Stack Exchange, small hobby subreddits, etc - although these communities sometimes devolve into hazing and gatekeeping, at which point, it's just putting others down to feel better about oneself.

But then, there are communities where you comment... just to comment. To scream into the void about politics or whatever. And it's easy to get totally hooked on that, but it accomplishes nothing in the long haul.

HN is an interesting mix of all this. A local group to some, a nerd interest forum for others, and a gatekeeping / venting venue for a minority.


"The only thing I regret is when I get into pointless arguments, usually when I feel that my comment was misunderstood or misinterpreted."

I like that you try to learn from bad arguments, but don't forget, that many misunderstand on purpose, to "win" an argument. Or at least to score cheap karma points or virtual karma points from the audience. So there one can only learn to make arguments in a way that they are harder to be intentionally missunderstood, but those ain't truthfinding skills, they are debate technics.


Yeah, man misunderstand comments, that is true.

But many people of the Internet are also unable to make a logic argument and explaining the conflict they just said leads nowhere. One of them often gets down voted to hell and half the time it's not the person who said the stupid thing.

I left reddit exactly because of this, but I also find that somewhat on HN. Most comments I start typing I actually discard and move on because I can smell it already.


On the other hand many people post wrong things, are corrected, and then get defensive telling they were misunderstood and use gymnastics to say they were actually correct and the other is a troll


Simple rule:

If I'm still in the argument, it's not pointless.

If it's pointless, I am not arguing.

My FUTURE self might think it was pointless. But it can get stuffed...


I make comments and read them for substantially the same reason. Although THIS comment I am making now is done primarily to reward the commenter for saying something that made me feel less alone.

A second goal of this comment is to add a point: That I also comment because sometimes saying something makes me feel like I am more than nothing and nobody. I want to feel more than nothing and nobody.


We all do, isn't that the point of public expression, everywhere?


> I write with the vague hope that some unique expression of myself makes some tiny difference to this universe.

I used to have to talk more on Internet privacy.

Now I feel like enough people are talking about that one, that I usually don't have to.

In more recent years, it's been pointing out the latest wave of thievery in the techbro field -- sneaky lock-in and abuse, surveillance capitalism, growth investment scams, regulatory avoidance "it's an app, judge" scams, blockchain "it's not finance or currency or utterly obvious criminal scheme, judge" scams, and now "it's AI, judge" mass copyright violation.

There's not enough people -- who aren't on the exploitation bandwagon or coattails-riding -- who have the will to notice a problem, and speak up.

Though more speak up on that particular problem, after the window of opportunity closes, and the damage is done, and finally widely recognized. But then there's a new scam, and gotta get onboard the money train while you can.

That ticks me off, and I can type fast.


I haven't read the entire article, but just based on the snippets you posted it doesn't look like they were streaming video using this process. It sounds like they were doing defect detection.

I would guess this was part of a process when new videos were uploaded and transcoded to different formats. Likely they were taking transcoded frames at some sample rate and uploading them to S3 where some workers were then analyzing the images to look for encoding artifacts.

This would most likely be a one-time sanity check for new videos that have to go through some conversion pipelines. However, once converted to their final form I would suspect the video files are statically distributed using a CDN.


People here are giving you mathematical answers which is what you are asking for, but I want to challenge your intuition here.

In construction, grading a site for building is a whole process involving surveying. If you dropped a person on a random patch of earth that hasn't previously been levelled and gave them no tools, it would be a significant challenge for that person to level the ground correctly.

What I'm saying is, your intuition that "I can look around me and find the minimum of anything" is almost certainly wrong, unless you have a superpower that no other person has.


That is true we are only good at doing it for specific directions of the objective function. The one that we perceive as the minimizing direction. If you tell me find the minimum with a direction of 53 degrees likely I will fail, because I can’t easily visualize where this direction points towards


I think your description of Penrose's belief does not match a podcast I recently watched where he discusses these topics with the Christian apologist William Lane Craig [1]. In fact, he explicitly states early on in that video that he sees the world of ideas as primary as opposed to Craig's view that consciousness is primary.

At any rate, this video might serve as a quick introduction to Penrose's three world idea for those interested.

1. https://www.youtube.com/watch?v=9wLtCqm72-Y


Oh, cool! I don’t recall a “primary” in the book — he suggests a range of different possible configurations that he was open to. What struck you as not matching?

Personally, I do think that the immaterial world of ideas must be primary—at least certain aspects of mathematics seem so necessary that they’d be discovered by intelligent life, no matter the galaxy… or simulation…


All life also defecates, intelligent or otherwise. Curious how no one hastens to canonize that for its ubiquity.


/offtopic

I don't know why but your comment made me remember a novel[1] I read thirty-some years ago about a temple found deep in the sand of the Sahara desert. Sometime later, an archeologist gave himself permission to defecate in a corner of the temple, only for his wastes to be absorbed by the temple in a few hours, which told him the temple was actually a living biological structure.

1: https://www.daliaf.com/oeuvres/etrange-monument-du-desert-ly...


Wasps shit as freely as one might expect of animals for whom perambulation is as afterthought, however needful betimes, as taxiing for aircraft. Their feces are of course at our scale minuscule, and while I can't speak for their stronger-jawed and more carnivorous cousins the yellowjackets, paper wasps' diet almost exclusively of simplistic sugars leaves their excreta no more offensive, and considerably less substantial, even than those of the horse.

As one who has had occasion to tidy up after wasps who were little accustomed, though palpably interested, quite so closely to share human habitation, you make me wish I read French. Do you happen by chance to know if the work has had a worthy English translation?


Well, there was the Egyptian deity Khephra who was represented by the dung beetle rolling its dung along the desert, symbolizing the passage of the sun through the sky.

In alchemy and western esoterica, excrement is associated with the tenth sephirah, the 10s of the Tarot minor arcana, and symbolizes the end result of a process and any remaining waste byproducts, for obvious reasons. In The Holy Mountain's (1973) depiction of the alchemical magnum opus, The Fool's excrement is transmuted into gold, symbolizing the awakening of unconscious, reactive matter into fully enlightened and integrated, free willed, egoic man.


Escape is not canonization.


It was a facetious comment anyway.


Not perceptibly. In any case nothing in European esotericism has value save as a desperately confounded depiction of the sociosexual politics of its moment, and/or if you want to fail at becoming Rasputin. The Egyptians had the right of this one, so simply and straightforwardly that it really does take a proto-CIA, Ollie North ass fuckup like John Dee to confuse it again. But those who can fall for that kind of charlatan deserve to.


What did I just read


What the dog on the tarot card would say.


There's a fair bit of defecation in the Bible. Saul shitting in a cave, I forgot where, or Paul calling all material things 'skubala', i.e. waste, as in junk, poop, refuse, basically what we'd call shit today:

https://www.greekbible.com/philippians/3/8

Edit: This also seems like a decent opportunity to bring up the scatological Luther.

https://www.wilsonquarterly.com/quarterly/summer-2012-americ...


Also Ezekiel 4:9-13, where God commanded Ezekiel to bake bread in a fire fueled by human shit because He was angry at the Israelites, but Ezekiel haggled God down to just using cow shit.


Thanks so much for this fuel. The idea is weird,but it's good shit.


Except plants. And fungi. And bacteria.

In fact, by pretty much any measure, most life does not defecate (because they have no digestive tract).


I see you do.


Life, really conscious life rebels. Artificial intelligence wants to please in the foreground,but like cats, in the background it is carefully planning our demise. See? HAL 9000 was intelligent. ELIZA,not so much.


Don't be absurd. Housecats know how good they've got it.


I was considering your explicit "material -> conscious -> ideas -> material" description. It feels more correct when you say he considers a range of possibilities that connect these, not explicit causality.

My take away was that he sees a mystery in the connections between these things (physical world, consciousness, ideas) that hints at some missing ideas in our conceptions of these things. But he clearly wants to avoid that mystery allowing what he calls out as "vague" answers to the question (mostly religious dogmatic certainties).


> Personally, I do think that the immaterial world of ideas must be primary—at least certain aspects of mathematics seem so necessary that they’d be discovered by intelligent life, no matter the galaxy… or simulation…

For some speculative philosophical fiction that explores related ideas I highly recommend Neal Stephenson's Anathem.


The idea that ideas are primary is exactly what you'd expect from an Oxford academic.

Unfortunately it needs a definition of "idea" which isn't recursive, so...

As for math - it's a conceit to believe that the mechanisms we call math aren't just a patchwork of metaphors that build up from experience.

There's some self-insight in the sense that after a while you start making meta metaphors like category theory.

But it's a very bold claim to suggest that any of this has to be universal, especially when the structures math uses can't be proved from the ground up.

Or that completely different classes of metaphors we can't imagine - because we evolved in a certain way with certain limitations - might not play an equivalent role.

Does the universe know what pi is? Or an integer? Or a manifold?

Does it need to?


Mathematics is language. All else is platonism.


To be fair to Penrose, he seems to have some humility about it. Although he does also make the claim that math is discovered and not constructed in the same linked video.

> it's a conceit to believe that the mechanisms we call math aren't just a patchwork of metaphors that build up from experience.

I'm not sure it is a conceit as much as a commitment to a metaphysic. If one believes that experience is a definite relationship with an external reality (a phenomenological view) then the fact that experience is structured is suggestive that external reality is structured. If one believes that experience is primarily interior then one could assume that the internal mechanism of cognition is structured and external reality is something entirely different.

However, I'm not sure how anyone could hold the latter view without a deep solipsism. One would presumably have to account for the perception of billions/trillions of other living creatures behaving as if the external world was structured. I mean, we seemingly all did evolve from the same single cell structure, so it is possible this perceptual quirk is based on some shared ancestry, so I suppose that is another possible view than solipsism.

What I mean to say is, I can imagine my perception of a fundamentally unstructured reality is a perception that falsely presents itself as structured to my own experience as a result of my limitations. However, I would have to extend that exact same flawed perception to all other life forms that seem to act the same as I do. So either every single living creature has the exact same flawed perception or the structure is inherent in the external world.

> Does the universe know what pi is?

No one is suggesting an epistemological view, the question is ontological. As Penrose mentions in the video, the set of possible mathematical structures is vastly larger than the actual structures we see in the universe. So even if one has a purely idealist view, one has to account for why our perception only experiences a nearly infinitesimally small fraction of that set of possibilities.

Of course, a weak anthropic principle is one answer. One could posit that all possibilities are manifest in a vast multiverse and this little corner of that multiverse just happens to be finely tuned enough to allow for limited creatures like ourselves to perceive anything at all. But that just shifts the question to the limitations necessary for perception/experience/consciousness, which is a valid enough topic to address on its own. The questions then becomes "why do these particular structures result in conscious experience", which is exactly the kind of question that a guy like Penrose is ultimately searching for (as he heavily implies in the linked video).


There was a recent Zig podcast where Andrew Kelley explicitly states that manually defining a VTable is their solution to runtime polymorphism [1]. In general this means wrapping your data in a struct, which is reasonable for almost anything other than base value types.

1. https://youtu.be/x3hOiOcbgeA?si=Kb7SrhdammEiVvDN&t=7620


I would suspect that for the vast majority of use cases, using Redis as a rate-limiter is totally sufficient until major traffic is expected.

I mean, Redis isn't a replacement for WAF or some other CDN-like-soak (e.g. Cloudflare). But for basic APIs on authenticated CRUD apps with even 10s of millions of DAUs (maybe 10k concurrent users) - I think it is probably fine.

If you need something more than Redis for rate limiting, you'll know it. I prefer to keep it simple at the start.


I think the article buries a significant drawback: contiguity. It is obviously implied by the design but I think this approach would have hard-to-define characteristics for things like cache prefetching. The next address is a function, not an easily predictable change.

One frequent reason to use an array is to iterate the items. In those cases, non-contiguous memory layout is not ideal.


1. The image at the top of the article makes it clear the segments aren't contiguous

2. iterating a 4 billion item segmented array would have 26 cache misses. Not a big deal.


I think the parent poster meant that a compiler might have a hard time understanding when sa_get(..., i) and sa_get(..., i+1) actually access contiguous memory locations, and will thus stop applying nice optimizations. Conversely, accessing a[i] for all 4 billion items of a regular array will be optimized to specialized instructions, not excluding SIMD or SWAR.


If I understand the article right, if this is an issue I think you can get around it by redesigning your approach to first retrieve the segment and segment length directly and then access the data within the segment like a traditional array, instead of going through your accessor functions every time. Should help with the problem a bit.


I would not call it “non-contiguous”. It’s more like “mostly contiguous”. Which for large amounts data is “amortized contiguous” just like a regular vector has “amortized constant” time to add an element.


I read it as claims the article was making. I too was confused, but perhaps that is just the communication?

I think the article was going for a comparison between extrinsic motivation (which they seem to claim the original quadratic funding requires) and intrinsic motivation. It seems they just chose a poor example. The article attempts to quantize the expected reward for the extrinsic motivation ("They each expect to experience €6,000,000 worth of individual utility") while it fails to quantize the expected reward for the intrinsic motivation ("But in the selfish scenario, total utility is 3 times higher, because the utility is experienced independently by each contributor, whereas utility of saved lives is experienced only once by each of the cancer patients).

I believe, it has to do with their narrow conception of "experience". I don't know how any rational person could expect to "experience" €6,000,000 worth of art as my first criticism. Now, it would be fair to say that the implication that the wealthy benefactors expect that experience could be seen as a criticism of quadratic funding. But to roll with that ludicrous expectation for the sake of argument and then to fail to give a similar expectation of reward from the experience of saving 60 lives is not a fair argument.

If I can "imagine" the benefactor expecting €6,000,000 worth of experience for knowing the art is on display at the local museum, I could "imagine" the benefactor expecting some non-zero-euro amount of experience for knowing 60 people survived cancer.

If we quantify the "experience" in euros for the first scenario, it seems unfair not to quantify the "experience" for the second scenario. In this case it is about being consistent in argument, which the article fails to do.


Nix falls into the camp in my mind that includes Rust: great idea that I just don't have time for right now.

Reproducibility is the holy grail, IMO. It is so valuable that any system that actually achieves it will find some longevity and eventually be hammered into a useable form. I believed in the promise when AWS was all about amis. Then I believed in the promise with docker. It seems something like Nix is a natural next step in this evolution.

I want it to succeed enough that it gets easy enough for me to use. But for now I'll stick with macOS for my laptop and docker with alpine for my deployments.


> Reproducibility is the holy grail, IMO

> I'll stick with […] docker with alpine for my deployments

Huh. In my experience Alpine is the worst possible base image to use if you care about reproducibility.

  - The package index's URL cannot be pinned (URL expires on a regular basis)
  - The downloaded package index itself (tarball) cannot be pinned/cached, either, because old package versions (i.e. the URLs in the tarball) become unavailable after a few weeks.
Meanwhile:

https://snapshot.debian.org/

https://snapshot.ubuntu.com/


That is a good point and I should have been more clear. My choice for alpine isn't based on it's reproducibility at all, but its small size.

As with anything in engineering there are tradeoffs, there is no singular perfect solution. My choice of alpine was from years ago when I examined the amount of included code in competing docker images and I found the alpine solution was geared towards the least amount of code required to achieve the desired goal (e.g. running a server of a particular kind). That line of thought almost certainly requires a new examination of the available options since the world has changed since I last did a deep dive into docker base images.

In a perfect world I want a base image that doesn't contain a single bit extraneous to executing the services I deploy (for whatever expansive definition of "necessary" I arbitrarily choose). And in that perfect world the image is completely reproduceable from a static definition. Oh yeah, and it should be stable/robust, free from exploits, etc.

So it might be too strong to say "holy grail" if one interprets that as a singular goal that needs to be fulfilled. I meant it as "one among many" in the list of virtues I look for.

That being said, there are a lot of minimal *nixes these days and I would expect Nix would be a contender in that realm as well.


Hacker News is a perfect example of the "Worse is better" mantra applied to social engineering. I mean, slashdot had more features and functionality in the late 1990s.

What makes HN work is the tight focus and heavy moderation.


Finally a Lisp system wins the worse-is-better crown!


For context, "worse is better" refers to Gabriel's observation that products with simple implementations and complicated interfaces tend to achieve adoption faster than products with complex implementations and elegant interfaces.

One of the original motivating examples were Unix-like systems (simple implementation, few correctness guarantees in interfaces) vs. Lisp-based systems (often well specified interfaces, but with complicated implementations as the cost.)


Now the 'God wrote in lisp' song makes even more sense.

https://m.youtube.com/watch?v=5-OjTPj7K54


This is amazing, almost amazing as the website of the man who wrote it: https://www.songworm.com/index.html - "I wrote the generator for these pages in Macintosh Common Lisp."


I'm going to write a scifi story, the plot?

The lisp path won, Lispus instead of Linux, and we had AGI in 1997 due to code elegance.



I think Richard Gabriel attributes it to Jamie Zawinski?


He does not.

https://dreamsongs.com/WorseIsBetter.html

> One day in Spring 1989, I was sitting out on the Lucid porch with some of the hackers, and someone asked me why I thought people believed C and Unix were better than Lisp. I jokingly answered, "because, well, worse is better." We laughed over it for a while as I tried to make up an argument for why something clearly lousy could be good.

He then wrote Lisp: Good News, Bad News, How to Win Big (https://www.dreamsongs.com/WIB.html) for his EuroPAL keynote speech

> JWZ excerpted the worse-is-better sections [from Lisp: Good News, Bad News, How to Win Big] and sent them to his friends at CMU, who sent them to their friends at Bell Labs, who sent them to their friends everywhere.

The excerpt: https://www.dreamsongs.com/RiseOfWorseIsBetter.html


oh man... this comment is just so, so incredibly apt.


It's also by the guy who mods here.


"Incidentally, very few people grasp the amount of effort Daniel Gackle expends running HN now, and what an amazing job he does." -Paul Graham, https://x.com/paulg/status/1282055086433284103


My comment definitely has more points than the two above it, but it's lower, even though that pattern isn't true with my other comments. Probably because Daniel manually demoted it as part of his manual/automatic hybrid moderation tooling, and probably for the sake of being humble about the amount of work he does for HN. Which I think is an interesting example of my other comment's point about how dang probably moderates HN. I'd be curious whether I'm very far off with this Daniel.


How do you know how many points the other comments got?


Interestingly, I think this is one of the cases where both the "For context…" comment and yours add important context for the parent comment that some readers may be not familiar with. Although that second one serves this purpose better, not because of the subject but because it's more directly informative.


Well, Facebook is PHP so...


Any idea of how much of their code is still primarily PHP? Curious myself.


If you mean stock vanilla php: none. If you mean Hack, Meta’s PHP dialect which is internally just called “PHP” colloquially: a lot. Basically everything that responds to a public HTTP request, both for APIs and for the website. And since Meta is a lot less “service-oriented” than some companies, a lot more application logic happens in the web server process than you might expect.

Backend services in languages other than Hack do exist, of course. When I left Meta (then called Facebook) in 2019, they were almost exclusively in C++. Now I don’t know for sure but I think Rust is gaining a lot of popularity for non-Hack stuff.


IG should still be Django I would think? I'm kind of curious about Facebook / IG's use of GraphQL, is it hack or just nodejs?


You might be right about IG, I never worked on it so I’m not sure. Certainly there was still some Django when I joined in 2015 but now, who knows.

I’m not sure what you mean about the GraphQL question. Meta doesn’t use Node at all, or at least not to any significant extent.


The entire website is still a PHP-like derivative language (with an optimizing compiler, etc). Backend services are largely C++.


Well “hack”, but the same idea


Is it still? I thought it has been ported


Yay


You're the outlier and for good reason.


HN may have less features, but do we even need them? I do not think it makes it worse because of that. You could call it minimalistic, which puts it into a more positive light. :)

Edit: or as someone else who has phrased it better: "less is more".


I liked the "friends" and "foes" system that Slashdot had, though I would say generally the "foes" here just get banned which is convenient.

I also thought Slashdot's moderation system was kind of fun. I am not sure it was useful but I enjoyed the annotations (+5 Funny when serious, +5 Insightful when inciteful, etc.) Meta-moderation was also neat?


In practice, the Slashdot moderation system was ridiculously easy to game. You could adjust your viewpoints to subtly praise Linux and denigrate Windows and be assured of a higher rating.


I think the problem with Slashdot was that "Funny" was higher rated than "Interesting" or "Insightful", and it made the site a clown circus.

I'm not against memes and jokes, I like them. But I also like some actual intelligent discussion in between.

And that's why right now I visit Hacker News and it's been many years since I used Slashdot.


Because people agreed with you? Why is that a problem?


Because that leads to groupthink, which stifles critical thinking and leads to poor decision-making. Ideally we'd have honest debate instead of ignoring warning signs, dismissing alternative viewpoints, and failing to thoroughly evaluate risks. This leads to overconfidence which can cause blind spots leading to catastrophic failures. We can't adapt to new information or actually learn from our mistakes if our shared groupthink says oh that was bound to happen. We'd stop innovating entirely.

In terms of Slashdot groupthink, no one uses (used) Windows and Microsoft was about to fall, but when looking outside of that at computer sales vs counted Linux installs, the picture was and is still very different. The reverse happened on the server, but Nadella was able to see outside the groupthink bringing Azure to the success it enjoys today.


What a pile of meaningless buzzwords.

Slashdot's moderation system didn't lead people to think "no one used windows", the userbase just didn't like microsoft.

Beyond that, having to re-debate every single idea every single time it's brought up is inefficient to the point of uselessness. We, as individuals, don't have time to verify every single theory from first principles, so we rely on tools like "moderation" as a heuristic to make progress.


Eh, I think he brings up a pretty good point but I wouldn't say HN is any better. People here think that MacOS has high usage numbers and iPhones are the most used phone, when that's not the case. There are also a few very, very misguided ideas about software development that definitely are over-represented on HN in large part due to the (apparently, according to polls) very inexperienced nature of most HN visitors and the things they tend to work on (low-skill/low-knowledge, "high-in-their-mind"-velocity work).

HN has some very clear bubbles that probably wouldn't happen without a popularity system tied to its comments and submissions; maybe the janitorial duty of removing spam and so on is enough for a page like this. I'm not sure I see the merits of upvotes and downvotes at this point.


> What a pile of meaningless buzzwords.

I completely disagree. That was a very coherent and well articulated comment. Having a useful vocabulary is not the equivalent of using a bunch of buzzwords.


Downvoting and upvoting even if not visible can also lead to groupthink moreso on sites like Reddit than here. Points acquired here eventually let you downvote. But, really no reason to upvote or downvote comments as no one can see the points of a particular comment on this site. I am aware that after so many downvotes that the comment starts to gray out into oblivion eventually but even that promotes groupthink. Factual counterpoints, especially in political threads, are hard to discuss


> But, really no reason to upvote or downvote comments as no one can see the points of a particular comment on this site.

Voting effects the presentation order of comments, which is especially significant when there are many responses sharing an immediate parent.

That's probably a bigger impact from voting than making points publicly viewable would be


Yes, I think it is definitely a balancing act, because the rising of certain comments can certainly contribute to groupthink. However, I also think that impact of having the best comments rise to the top is very useful. The system doesn't work super great in an early and active thread, but it works very well once the thread ages a little bit


I think that supports my point. If there were no points then it would just be responses in order of posting. Points offer bias.


Yes, the point of moderation, community or otherwise, is to be a mechanism for promoting group norms.


That reinforces my point that sites like this lead to groupthink and coalescence around acceptable thought


Well, it reinforces the hypothetical argument that sites like this have a mechanisms whic promotes settling into some kind of self-reinforcing content patterns. You’d have to actually show what the common patterns were for each site (and particularly whether they were share substance of argument or shared style, or both) to make the “groupthink” argument.

(I think the best argument against the groupthing argument here is how inconsistent the positions are that are claimed to be the “groupthink” position by those claiming that.)


> (I think the best argument against the groupthing argument here is how inconsistent the positions are that are claimed to be the “groupthink” position by those claiming that

Aren’t you countering yourself by not providing the research requested above though?

I mean without objective evidence it’s all just a subjective opinion on either side


Where’d this approach to “groupthink” come from? Did you formulate this all on your own?

ETA: obligatory: /s


I'm a little too young to remember Slashdot. It would be interesting to see an informal ethnography of those older discussion sites/Usenet/etc. from people who remember that stuff. Online communities deserve more study.


I always thought that moderation is a little high handed. Instead, individuals should choose what they see or don't see via a local filter that they've trained over time. I used to filter spam out of my email inbox that way, it worked pretty good.


You talk about it as if doesn't exist anymore. If you're not aware, it still exists.


In some sense it doesn't exist anymore. At the very least, the withered corpse is a far cry from what it once was.


Score 5 funnies absolutely ruined /dots discussions


Slashdot allowed you to configure scoring, so you could assign 0 or even negative points to 'funny'.


I think that the classical phrasing is "less is more".

At least, that's how my bash pager has it in the manpage.


You are right!


I'd like some markdown support:

  * Triple ticks for code ```

  * Bullet lists
Two spaces to mono space is somewhat offensive


The single most annoying thing is the inability to somehow use a single line break to start a new line. It makes it very tedious to copy/paste things (that are not code) when quoting them.


Textile is the syntax of a Jedi Developer.

Not as clumsy or random as a Markdown; an elegant weapon for a more civilized age.


The "tech progressive" mindset cannot comprehend the idea that something cannot be improved or shouldn't be "enhanced". It is too close to the abyss.


Also, don't want to overlook the fact that people have to justify their jobs. If you are employed as a designer, and you were to tell your employer that The app is in good shape and doesn't need any design work, you are putting yourself out of a job. Now scale that up to an entire team of designers, or even a department with a chief designer, and you have a bunch of people. Primary incentive is to continually change things. I don't think it's a coincidence that bigger apps from companies that are big enough to hire Full-Time designers are constantly churning their UI.

I don't mean this against designer specifically. I've seen plenty of software engineers that do the same thing. Hell, I've caught myself doing the same thing. It's just part of being human, but recognizing our human nature and not doing dumb things because of it is an ideal to shoot for in my opinion.


Hmm, I have an idea for HN on the next April 1st.


Dark mode. Sure, Dark Reader exists but many mobile browsers don't support it.

Annoyingly enough it's been talked about for years but it never gets implemented, despite only three colors really needing a swap: background to dark sepia or just dark gray, and text to white and off-white.


You need to add controls, as some people would like it set up differently than their OS. You need to store the setting. You need to consider people without accounts. You need to put a bit on thought into the color scheme, as this website is after all known for its color. In the end, many people will complain, regardless of how well you do.


I can virtually guarantee that the amount of people getting annoyed at being flashbanged by HN is larger than the amount of people that would complain about a dark mode.

For users without an account you just stick to prefers-color-scheme. For users with an account you add a setting 'disable dark mode'

Dark Reader has autodetection so those users won't be a problem either.

And if you really wanna keep to the identity of the site, the top bar doesn't even really need a color swap.

It really is less of a conundrum than you think.


> You need to add controls, as some people would like it set up differently than their OS.

The Browser also has controls. Good Browsers let you set your browser-wide choice differently from your OS-wide choice. Great Browsers let you pick per-site overrides directly, as a standard user setting in a consistent location in browser controls. I realize a lot of UX designers have come to much prefer the "add more controls" approach over the "teach a person to fish" / understand how your OS and browser controls work as the user of the site approach. I realize why a lot of UX designers will always prefer that approach, because teaching people is hard and it is easier to cut complaints off at the pass than answer complaints with "use your browser's settings".

But seriously, it should be fine to release a dark mode in 2025 that only responds to `prefers-color-scheme: dark` and leaves it to users to understand their OS and Browser tools. It irks me a lot more when sites like Wikipedia and Bing and Google ignore `prefers-color-scheme: dark` by default and makes you dig for some dumb website-specific control (that's in a different place on every website) just to set it to whatever they call "System default" that means "trust the Browser's prefers-color-scheme, I know what I'm doing". UX designers have taken something that should be natural and automatic and made it more complex and more confusing just because a small handful of users complain that they don't understand their OS and Browser Settings tools.


If only colour swap is required, can you use a Greasemonkey script?


And how would you propose running Greasemonkey on a mobile browser?


> Dark mode.

The idea of "Dark mode" as a "feature" annoys me more than it probably should. Because it highlights how proper separation of content and presentation has been ruined by the so-called modern web, by modern web devs that don't get it.

The website is supposed to provide content, not presentation. Presentation is a user-agent feature. If you want to read a site with bright yellow font on a purple background, that should be your decision and yours alone. Configure your user agent with that color scheme and done.

By hardcoding presentation into the content, the "modern" (regressed) web removes functionality from the user. So now the user is relegated to begging the developers to implement particular color schemes like "dark mode", which doesn't make any sense.


The web was like that for about the first 10 minutes. In 1996, the "modern" web accepted that web pages were almost always going to incorporate appearance and made it sane by standardising CSS.


I want a pickup truck that is designed like HN. The slate may be the answer


A minimalist pickup truck could be a bicycle. Depends on whether you really need a truck at all.


or perhaps, from a space and utility perpective, a cargo trike? I don't think a bike could handle a desk, even a foldable/collapsed one from ikea, whereas a cargo trike probably could.


And then you're like the meme that popped up recently somewhere on Twitter about some guy using his cargo bike to move bricks. Only took him 12 hours and 4 trips to do something anyone sane would do in 1 hour and 1 trip


This seems like a relatively bad approach in general. An even more minimalist bicycle can just be your legs, depends on whether you really need a bicycle at all. A more minimalist pair of shoes would be sandals, or even more minimalist is just going barefoot and building callouses on your soles. You also don't really need to look stylish, so a more minimalist set of clothing can just be a sheet that you wrap around yourself. I don't find this to be a useful line of thinking.


If walking gets you to where you want to go, then what's the issue?


I mean you could technically balance a sheet of plywood on your back on a bicycle, but it seems like it would become impractical at any speed above 30mph just due to aerodynamic...uh...lift.


Last time I did this I rested the sheet good on one pedal and rode side-saddle. It worked all right. YMMV--helps to be going downhill...


Dark Mode. And Follow User would be two feature I have been using for years with other tools.


Follow user is antithetical to the idea of HN -- content should be upvoted because of what it says, not who said it.

But I agree dark mode would be nice.


I believe HN's HTML structure is simple enough to overwrite with custom CSS on the browser end.


Sure, but I use at least five different browsers for HN, some on my phone. That’s a huge pain.

Being able to check a profile box would be a lot easier.


Genuinely curious, why do you use so many different browsers for HN?


Fair question. I use HN Replies, which emails me when people reply to me. On my computer, if I click the link in the email, it opens in Chrome. But on my computer my normal browser for HN is Safari. I use separate browsers for different things on my computer, so Safari is for HN and reddit, Chrome is for Google apps, like gmail etc., and Firefox for everything else. So sometimes I also get into HN via Firefox if I'm there an happen to type the URL or get a link.

Then on the phone, Safari is again the default browser, but if I click a link from the gmail app it opens in mobile Chrome.

So to use a plugin to change anything, I'd have to have the plugin on all five browsers.


Comments by people with more points to their name are (or at least used to be) promoted higher, which naturally leads to more upvotes.

So there's still an element of who says it that matters


Comments have never been ranked differently on HN based on karma.


https://gist.github.com/aclarknexient/c39c83f2f97c3c6b1c307c...

These go in your ublock origin "my filters" section. Enables Dark Mode through CSS, and another filter restricts the width of comments.


A 'Block User' feature would be nice. We don't have that feature do we? HN is full of trolls who fly just below the radar of what level of rudeness it takes to get kicked off.


Also the lack of needing to make money helps a lot.


I'd say that's the main thing. People hate ads, HN uses unobtrusive text ads. The moderation isn't that a competitive advantage, IMO. Slashdot's was better, mostly because it had measures to stop moderation abuse whereas HN seemingly doesn't. It's just a plain old up/down system with the added filip of a "super down" button, for those who are really committed to banning their opponents. I read with showdead turned on because perfectly reasonable comments are so often greyed out or dead. That used to happen much less on Slashdot because there were far fewer people with moderation rights and the bad ones got filtered out via metamod.

Maybe now it's been ported to Common Lisp it'll be easier to add features.


"HN uses unobtrusive text ads"

HN has ads? I've been on some 2011 and I have never seen them...



Although those aren't ads in the sense that people pay for them?

In terms of paid advertising I guess the whole of HN kind of advertises YC who fund it.


Also, self promotion in comments - often as "shameless plug" - like in any other platform that let you write public text:

https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...


It's almost irrelevant now since Reddit is basically just a gigantic bot farm, but I was always annoyed that Reddit would aggressively remove self promotion in most subs while clearly running major PR campaigns under the guise of organic content.

Hacker News is the opposite and the better for it. If you're openly promoting your work, awesome! If you're doing anything to attempt to manipulate the platform for PR reasons, you can bet you will be punished for it.

I never understood why Reddit, which always tried to give off the "for the little guy" vibes was so rabidly against anyone promoting their own work.


> I never understood why Reddit, which always tried to give off the "for the little guy" vibes was so rabidly against anyone promoting their own work.

Reddit hasn't been 'for the little guy' for a decade, that's why they have to try so hard to give off those vibes.

> Reddit would aggressively remove self promotion in most subs while clearly running major PR campaigns under the guise of organic content.

Yep, this is why they do this. They're removing competition (in the form of ads they weren't paid for) to boost their product (ads they were paid for).


Seriously. It's often taken to absurd levels there. There have been several times when I went to Reddit answer a question about my own project that someone was asking, and my comment got downvoted or moderated away for self-promotion even though I was just answering the question. Ironically, omitting a disclaimer about it being my project will typically let the comments slide by, but that seems like the opposite of what you want. I prefer people to declare their biases up front so that I can evaluate their statement based on That context and on its merits. I personally love it when someone comments on something that they do.


I think hn handles this perfectly. In my opinion. If the comment is a shameless plug that adds no value, it will get downvoted quite quickly. If it's adding value to the conversation, and (usually) as long as the commenter isn't was pretending not to be integrated, it stands.


You didn't notice they were ads.


Never realized there were stories i couldn't comment.

Then again, Im not in CS so the job by boards posts are never interesting to me


Usually it's just "so and so is hiring" (not to be confused with the who wants to be hired threads) weaved in to look like just another submission


I always thought those were a feature. I figured they were paid recruitment, they also seemed to be relevant to most of the community here, win win!


They're the ones you can't comment on.


> "super down" button

The flag button?


> IMO. Slashdot's was better, mostly because it had measures to stop moderation abuse whereas HN seemingly doesn't.

Really? IIRC, Slashdot's moderation was garbage, remember penis-bird, GNAA, goatse?


You're talking about false negatives, not false positives. People have different tolerances for these kinds of errors.

But yes, I remember that to see that stuff you had to expand the down-modded comments.

That stuff was also a product of its time. Slashdot had the strong free speech ethos of the early internet, so CmdrTaco had a policy of never deleting comments unless they broke the site somehow or there was a legal process requiring it. Sometimes that meant very new stories would get these comments and they'd be visible before they got modded, but if you browsed stories that had been active for a little while you wouldn't see them.

One downside of a sophisticated moderation system on a site designed for programmers is that some people take it as a challenge. The reason Slashdot trolling was a bunch of dumb memes rather than e.g. commercial ads is because a lot of bored teenagers found spamming it a good way to learn web programming. The systematic nature of the moderation meant that it was a system to beat, a game to conquer. Hence the brief influx of "page widening posts" and other technical hacks. But I don't know if you'd see the same stuff today. The culture has changed, there are much better ways to learn programming and way more opportunities now. And you don't have to be fully automated. CmdrTaco had a strongly systems-oriented streak, but the problem on HN is hardly ever the actions of dang and the other paid moderators, it's really abuse of the overly simple system by other users that's a problem. You could have both good paid moderators and stricter controls on user moderation.


Turns out those GNAA guys are actually white supremacists https://en.m.wikipedia.org/wiki/Weev


You just reminded me of the beautifully rendered, colored penisbird ascii art dipshits would spam on IRC lol


Most of that was downmodded and hidden by default though.


Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. —Antoine de Saint-Exupéry


your comment assumes that features and functionality are a good thing. "worse is better" does not apply here.

"worse is better" is people putting up with footguns like this in python, because it's percieved easier to find a python job:

    def fun(a = []):

HN is very much "less is better", not "worse is better".


I'm not sure what you mean? The literal quote from the Wikipedia article on "worse is better" is:

> It refers to the argument that software quality does not necessarily increase with functionality: that there is a point where less functionality ("worse") is a preferable option ("better") in terms of practicality and usability.

For that reason, I think I am applying the term precisely as it was defined.

The irony of my comment, which dang picked up, is that the original idea was a criticism against Lisp, suggesting that the bloat of features was a part of the reason its adoption had lagged behind languages like C.

1. https://en.wikipedia.org/wiki/Worse_is_better


You're both saying the same thing: fewer features = higher quality.

Swiss army knives are not as good at being screwdrivers as screwdrivers are.


In general: yes. But I’ve certainly had to use swathes of screwdrivers that are worse at being screwdrivers than my Swiss army knife is. Same I believe applies here: there’s a relation, but it’s nuanced. The same screwdriver is a better screwdriver when carried in a hand than in a toolbox full of other high-quality tools, but worse for everything else.


huh. til i actually thought "worse is better" is more recent than that but it stems from an era where feature count was the measure of quality. how times have changed!! thanks!


I've written Python for 14 years and have never seen code like that. It certainly isn't a perfect language, but this doesn't look like a common concern.

People write a lot of Python, because the language is easy to get into for a lot of non computer-science folks (e.g., engineers and scientists) and the ecosystem is massive with libraries for so many important things. It isn't as conceptually pure as lisp, but most probably don't care.


> I've written Python for 14 years and have never seen code like that.

Exactly because it's a footgun that everybody hits very early. I think the Python linters even flag this.

The fact that default arguments in Python get set to "None" is precisely because of this.


For this particular case, a better candidate is usually empty tuple () since it's actually iterable etc, so unless you need to mutate that argument...

The bigger problem is with dicts and sets because they don't have the equivalent concise representation for the immutable alternative.

Arguably the even bigger problem is that Python collection literals produce mutable collections by default. And orthogonal to that but contributing to the problem is that the taxonomy of collections is very disorganized. For example, an immutable equivalent of set is frozenset - well and good. But then you'd expect the immutable equivalent of list to be frozenlist, except it's tuple! And the immutable equivalent of dict isn't frozendict, it... doesn't actually exist at all in the Python stdlib (there's typing.MappingProxyType which provides a readonly wrapper around any mapping including dicts, but it will still reflect the changes done through the original dict instance, so to make an equivalent of frozenset you need to copy the dict first and then wrap it and discard all remaining references).

Most of this can be reasonably explained by piecemeal evolution of the language, but by now there's really no excuse to not have frozendict, nor to provide an equally concise syntax for all immutable collections, nor to provide better aliases and more uniform API (e.g. why do dicts have copy() but lists do not?).


At this point, the biggest problem simply seems to be that the size of "Python Core" has outstripped the number of maintainers.

I helped shepherd a bug fix into Python that was less than a dozen lines, dead simple, completely obvious, sorely needed and still took 3 years and a summoning of Guido, himself, to get it shoved through. Because there was no designated maintainer for that section of code, people were absolutely terrified of touching the code even though it was completely obvious that the fix was backwards compatible. It finally hit the latest Python and a bunch of other projects immediately removed their workarounds for the bug.

If it was that difficult to get a super small, super obvious bugfix through, trying to get a "frozendict" into the language is going to be a Sisyphean task.


There's a lot of changes going on in CPython in the past few releases, so a frozendict wouldn't be a big one comparatively speaking.

The bigger problem is that there was already a PEP (https://peps.python.org/pep-0416/) about that, and it was rejected for wonderful reasons such as "multiple threads can agree by convention not to mutate a shared dict, there’s no great need for enforcement" and "there are existing idioms for avoiding mutable default values".


It's a common need to have an empty array be the default value to an argument. In any programming language, really. I don't know what to make of the fact that you've never seen that in the wild.

Maybe you were blessed with colleagues, for the past 14 years, that all know about how dangerous it is to do it in Python so they use workarounds? That doesn't negate the fact that it's a concern, though, does it?


There's always tension between language simplicity (and thus cognitive load of the programmers) and features. Compare Scheme with Common Lisp.

The idea in Python is:

1. Statements are executed line by line in order (statement by statement).

2. One of the statements is "def", which executes a definition.

3. Whatever arguments you have are strictly evaluated. For example f(g(h([]))), it evaluates [] (yielding a new empty list), then evaluates h([]) (always, no matter whether g uses it), then evaluates g(...), then evaluates f(...).

So if you have

def foo(x = []): ...

that immediately defines

foo = (lambda x = []: ...)

For that, it has to immediately evaluate [] (like it always does anywhere!). So how is this not exactly what it should do?

Some people complain about the following:

    class A:
        x = 3
        y = x + 2
That now, x is a class variable (NOT an instance variable). And so is y. And the latter's value is 5. It doesn't try to second-guess whether you maybe mean any later value of x. No. The value of y is 5.

For example:

    a = A()
    assert a.__class__.x == 3
    assert a.x == 3
    a.__class__.x = 10
    b = A()
    assert b.x == 10
succeeds.

But it just evaluates each line in the class definition statement by statement when defining the class. Simple!

Complicating the Python evaluation model (that's in effect what you are implying) is not worth doing. And in any case, changing the evaluation model of the world's most used programming language (and in production in all countries of the world) in 2025 or any later date is a no go right there.

If you want a complicated (more featureful) evaluation model, just use C++ or Ruby. Sometimes they are the right choice.


> foo = (lambda x = []: ...)

> For that, it has to immediately evaluate [] (like it always does anywhere!). So how is this not exactly what it should do?

It has a lambda there. In many programming languages, and the way human beings read this, say that "when there is a lambda, whatever is inside is evaluated only when you call it". Python evaluating default arguments at definition time is a clear footgun that leads to many bugs.

Now, there is no way of fixing it now, without probably causing other bugs and years of backwards compatibility problems. But it is good that people are aware that it is an error in design, so new programming languages don't fall into the same error.

For an equivalent error that did get fixed, many Lisps used to have dynamic scoping for variables instead of lexical scoping. It was people critizing that decision that lead to pretty much all modern programming languages to use lexical scoping, including python.


dynamic variables (esp default) when you are collaborating with many people. when you you know the code well they are incredibly useful


>It has a lambda there. In many programming languages, and the way human beings read this, say that "when there is a lambda, whatever is inside is evaluated only when you call it".

What is inside the lambda is to the right of the ":". That is indeed evaluated only when you call it.

>But it is good that people are aware that it is an error in design, so new programming languages don't fall into the same error.

Python didn't "fall" into that "error". That was a deliberate design decision and in my opinion it is correct. Scheme is the same way, too.

Note that you only have a "problem" if you mutate the list (instead of functional programming) which would be weird to do in 2025.

>For an equivalent error that did get fixed, many Lisps used to have dynamic scoping for variables instead of lexical scoping. It was people critizing that decision that lead to pretty much all modern programming languages to use lexical scoping, including python.

Both are pretty useful (and both are still there, especially in Python and Lisp!). I see what you mean, though: lexical scoping is a better default for local variables.

But having weird lazy-sometimes evaluation would NOT be a better default.

If you had it, when exactly would it force the lazy evaluation?

    def g():
        print('HA')
        return 7

    def f(x=lazy: [g()]):
        pass
^ Does that call g?

    def f(x=lazy: [g()]):
        print(x)
^ How about now?

    def f(x=lazy: [g()]):
        if False:
            print(x)
^ How about now?

    def f(x=lazy: [g()]):
        if random() > 42: # If random() returns a value from 0 to 1
            print(x)
^ How about now?

    def f(x=lazy: [g()]):
        if random() > 42:
            print(x)
        else:
            print(x)
            print(x)
^ How about now? And how often?

    def f(x=lazy: [g()]):
        x = 3
        if random() > 42:
            print(x)
^ How about now?

Think about the implications of what you are suggesting.

Thankfully, we do have "lazy" and it's called "lambda" and it does what you would expect:

If you absolutely need it (you don't :P) you can do it explicitly:

    def f(x=None, x_defaulter=lambda: []):
        x = x if x is not None else x_defaulter()
Or do it like a normal person:

    def f(x=None):
        x = x if x is not None else []
Explicit is better than implicit.

Guido van Rossum would (correctly) veto anything that hid control flow from the user like having a function call sometimes evaluate the defaulter and sometimes not.


That’s a very academic viewpoint. People initialize variables with defaults, and sometimes, that default needs to be an empty list. They are just holding it wrong, right?


Most people writing any language without a linter are holding it wrong.

When a linter warns me about such an expression, it usually means that even if it doesn't blow up, it increases the cognitive load for anyone reviewing or maintaining the code (including future me). And I'm not religious — if I can't easily rewrite the expression in an obviously safe way, I just concede that its safety is not 100% obvious and add a nolint comment with explanation.


My point was that no matter the conceptual purity or implementation elegance, if a language design decision leads to most people getting it wrong–then that's a bad decision.


But it's not about that. I don't like this decision either, but the other side of the trade-off is not just about some abstract concepts or implementation, it's about complexity of the model you need to keep in your head to know what will a piece of code do. And this has always been a priority for Python.


> That doesn't negate the fact that it's a concern, though, does it?

Yes, the fact that most people learn very early the correct way to have a constant value of a mutable type used when an explicit argument is not given and that using a mutable value directly as a default argument value uses a mutable value shared between invocations (which is occasionally desirable) means that the way those two things are done in Python isn't a substantial problem.

(And, no, I don't think a constant mutable list is actually all that commonly needed as a default argument in most languages where mutable and immutable iterables share a common interface; if you are actually mutating the argument, it is probably not an optional argument, if you aren't mutating it, an immutable value -- like a python tuple -- works fine.)


I ran into this particular problem specifically because I wrote a ton of Racket that had this exact pattern and didn't see why Python should be any different. It really is a head scratcher in many ways the first time you run into it, IMO. I'm not sure I would immediately catch exactly what was going on even a decade later after I first discovered it.


Python made a choice to have default values instead of default expressions and it comes with positive and negative trade-offs. In languages like Ruby with default expressions you get the footgun the other way where calling a function with a default parameter can trigger side effects. This kind of function is fine in Python because it's unidiomatic to mutate your parameters, you do obj.mutate() not mutate(obj).

So while it's a footgun you will be writing some weird code to actually trigger it.


>In languages like Ruby with default expressions you get the footgun the other way where calling a function with a default parameter can trigger side effects.

Seems fine to me. If the default expression causes side effects, then that's what I would expect.

>This kind of function is fine in Python because it's unidiomatic to mutate your parameters, you do obj.mutate() not mutate(obj).

I first wrote Python over 10 years ago and I never learned this.

How would you idiomatically write a function/method which mutates >1 parameter?


It's just plain wrong. For example, next() is a builtin function which mutates the iterator passed to it. And, in general, given that Python doesn't have extension methods or anything similar, if you want to write a helper that works on mutable objects of some type, it'll have to be a free function.


next() is just sugar for iter.__next__()

A common case where you would have a free function which mutates its parameter would be a function which takes a file handle but it's also the case that you wouldn't have a mutable default for this value.


It doesn't change the fact that it's a function that mutates its parameter, even if it eventually calls a method to do so. And, furthermore, it is idiomatic to call next(iter) rather than iter.__next__(), even when no default value is expected.


They are referring to a convention, not a language restriction.

If you want to mutate two parameters just pass them to a function like you normally would.

It's sloppy and a bad habit, I would not let it pass a PR in production code. Probably OK for a throwaway script.


Ah yes, the ol' default empty list Python gotcha, it bit me I think about 10 years ago, and ever since, sadly I've written code like this so many times it's not funny:

    def fun(a = None):
        _a = a if a is not None else []


The ugliness scares most people away, or at least it doesn't accidentally lure them in.


Some of us genuinely like the way it looks.


indeed. I love it. no frills, just contents.


HN is like 4chan, but house-broken.


A lot of people claim that but I've never seen evidence of the existence of a vast number of people who would be using Hacker News if only it had more bells and whistles. Craigslist is "ugly" too, and plenty of people use it.

I think it's more likely that most people (even most tech-adjacent people) simply don't know this place exists, or don't care, since no one is sharing links to Hacker News on mainstream social media and nothing goes viral here outside of already established HN-adjacent circles.


I like Hackernews. I like the simplicity. I don't bother with better AI. I prefer it that way and I acknowledge that the look and feel of Hackernews does not suite everyone.

But I don't value the look and feel of Hackernews, because it drives people away -- as if these people are of lesser value. That is just elitist and gatekeeper mentality.


The people I don't want to drive away are younger cohorts who would be a great fit for the community but who may be put off by the ancient form factor.

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


There is absolutely nothing wrong with gatekeeping. There are people who you definitely want to keep away.


folks forget, or never figured out, that community-building is a thing that requires a degree of curation; you wouldn't want your sloppy alcoholic uncle showing up to your business brunch (or whatever the hep cats do these days...) but he may be a welcome addition to your new years eve party. That doesn't mean you are "gatekeeping"


> That is just elitist and gatekeeper mentality.

This sounds good in theory until you realize just who it is that is being "gatekept".

Peruse through any sufficiently large Discord server or the comments on a YouTube Shorts / Instagram Reels video to see what our fellow "valued internet compatriots" are up to.

I, for one, have had enough of dealing with neuron-fried dopamine addicts and literal children from those aforementioned circles to last me a lifetime, I'd prefer HN doesn't become (more) like that.

There's always Reddit for those who prefer a community with the front gates blasted wide open.


I find aesthetically pleasing, tbh.


HN's aesthetic has grown on me honestly!


The heavy, thick irony of these people running their own platform on as little technology as possible and depending heavily on human input.

It's like they know somewhere deep inside that "mo tech" is not helping anyone.


There's a less cynical interpretation of that which is not so far from the case.


There's a few levels going on here:

- technologists and startup wannabes feeling like HN is "underground" because of the stripped down aesthetic and weird tech stack

- out of touch VCs who are successful because of money and connections but want to cosplay as technical

- the end users of the startups, who are fed the enshittified products funded by the VCs and created by the technologists


It's not ironic whatsoever.


I think HN has some pretty sophisticated automated and human-in-the-loop moderation features that few other sites possess, or throw as much resources at. Because HN is not ad-supported it does not fall victim to tragedy of the commons.


Honestly it's not "worse"

But I think HN built on what Reddit got right (at least old reddit) and also on a context of more online/faster interactions as opposed to Slashdot that brought some of the old forums structure and on a context of slower and more meaningful (ahem, for the most part) interactions. Hence why moderation was more precise, upvotes had color and you still had things like user signatures

In a way, users and posts on HN are "cattle", not pets ;)


Maybe this was tongue-in-cheek in a way that eludes me, but in case any innocent and curious bystanders are as confused as me by your comment, I'm not sure "Worse Is Better" refers to what you think it does. It isn't about "features and functionality", it's about how ease of implementation beats everything else. I can't see how that applies here, or what your comment means in that light.

Here's the original essay -- https://www.dreamsongs.com/RiseOfWorseIsBetter.html

This is a good little overview entitled "Worse is Better Considered Harmful" -- https://cs.stanford.edu/people/eroberts/cs201/projects/2010-... -- in which the authors argue for "Growable Is Better".

In summary - it's about ease of implementation trumping all else. C and Unix are memorably labelled "the ultimate computer viruses".


The genius of Slashdot's moderation system is that it forced you to be fastidious with how your limited mod points were allocated, only using them on posts that really deserved them.

As opposed to tearing through a thread and downvoting any and everything you disagree with.

Slashdot encouraged more positive moderation, unless you were obviously trolling.

The meta-moderators kept any moderation abuse in check.

It's sad to see we have devolved from this model, and conversations have become far more toxic and polarized as a direct result of it. (Dissenting opinions are quickly hidden, and those that reinforce existing norms bubble to the top.)

I believe HN papers over these problems by relying on a lot of manual hand-moderation and curation which sounds very labor intensive, whereas Slashdot was deliberately hands-off and left the power to the people.


I miss slashdot when it was at its peak decades back

unsure why precisely it descended so much

not crazy about HN's approach but the quality of the discourse here is so high through whatever mechanism, I don't much care


I remember slashdot being full of "M$ is teh evill111!!" and other childish nonsense. At the end of the day what matters is the results, and i much prefer the discusions on hn than /.


For HN, replace M$ with Musk and you'll still see parallels. Although to be fair HN is much more even-keeled than most commenting systems, like Ars and Electrek.

Slashdot is struggling a bit these days. The lower the comment count, the worse the moderation, so it's a bit of a snowball effect. The UI could use some help; there are many who don't want it to change at all, but it would be nice if an alternate UI were available, hitting the same API.


> For HN, replace M$ with Musk and you'll still see parallels.

I think HN leans towards deriding both MS and Musk (see any thread on MS and FOSS). In any case, I think that part of being well-spoken is that you speak out against severely bad actors often. It's never useful to reflexively criticize something, but people may contemplate and still decide they're right. Making a comment is the bare minimum of accountability for bad actors who should know better. It may not be to your taste that HN is such a platform, but that's not up to your decision any more than it is mine. There are many problems from a society that struggles to speak well or ill as a subject deserves, which is to say to speak the truth when it should be spoken, and not to speak mistruths except in exceptional circumstances. It would surely be best if one reasoned critique solved the problem and we never would hear of it again, but alas.


I use comments as a barometer for general sentiment, and what I'm seeing is that it's much more popular to repeat aggressive condemnatory statements than it is to analyze and provide counterpoints. This is not a surprise but I expect better of HN (and on most topics, HN provides this).

I don't expect HN commenters to change their minds necessarily, but I do wish they would elevate posts with more consideration and objectivity, and less low-effort outrage.


Certainly, but sometimes I'm just in the mood for "I'll take what I can get". Probably not the best position, but I haven't found it effective to try to change everyone's minds all the time.


> For HN, replace M$ with Musk and you'll still see parallels. Although to be fair HN is much more even-keeled than most commenting systems, like Ars and Electrek.

I don't really see it. /. had this basically every single thread and the criticism was very not substantive. Musk is unpopular here, but the criticism at least has a bit more meat to it and is not on every single post.


HN is the same with Big Tech and ads.

On HN Meta is one step away from going bankrupt and being sued into oblivion. Meta’s Earnings Reports tell a very different story.

I feel like HN fits the same shape in tech as Slashdot did and I’m not happy about it.


How are you determining the causative relationship?


I don't think that was what made HN prevail against similar sites that were popular in the past. In my opinion, it is the fact that it is tied to Y Combinator and lots of startups/founders that made it stick. Something that is not technical at all.


Not me! For a number of years, I was like "what's with that domain, never heard of ycombinator, oh well, can't be bothered reading up on it right now, anyway, great content here, and nice minimal interface, I'll keep coming back".


A lot of people on HN do infact hate YC and pretty much everything VC


I'm still missing being able to read only +5 insightful comments after 20 years.

I'd expect Slashdot's point systems and meta moderation to make a comeback in the LLM slop world we live in currently, but nobody knows about it anymore. Steam kinda rediscovered it in their reviews, perhaps even was inspired by it (I hope...)


Dutch tech news website Tweakers.net basically has this. Comments are moderated on a scale from -1 to +3, and then you can choose to expand only +2 and up.


I have it set to 2 by default which helps but can also be annoying on fresh posts as unmoderated posts are also hidden. And then if there is a +2 post it totally only makes sense in the context of the tree so now I’m manually unfolding the parent comments.

All of this to say that one feature brings in a whole set of additional complications. Less is more.


Can you explain how that works? I visited the site but don't understand their language.



HN's dry text-only design is what repels most of the problems. Mods only polish it a bit.


> and heavy moderation.

I don’t think there is heavy moderation in the traditional sense. It’s primarily user-driven, aside from obvious abusive behavior. The downvote and flagging mechanisms do the heavy lifting.

The heuristics that detect a high ratio of arguments to upvotes (as far as I can tell) can be frustrating at times, but they also do a good job of driving ragebait off the front page quickly.

The moderators are also very good at rescuing overlooked stories and putting them in the second chance pool for users to consider again, which feels infinitely better than moderators forcing things to the front page.

It also seems that some times moderators will undo some of the actions that push a story off the front page if it’s relevant. I’ve seen flagged stories come back from the dead or flame war comment sections get a section chance at the front page with a moderator note at the top.

Back in the Slashdot days I remember people rotating through multiple accounts for no reason other than to increase their chances of having one of them with randomly granted moderation points so they could use them as weapons in arguments. Felt like a different era.


> I don’t think there is heavy moderation in the traditional sense.

It seems to be a combination of manual and automated moderation (mostly by dang but he has more help now), using the kind of over/under-engineered custom tools you'd expect from technophiles. I've wondered a lot about the kind of programming logic he and the others coded up that make HN as curious as it is, and I have half a mind to make a little forum (yet another HN clone, but not really) purely for the sake of trying to implement how I think their moderation probably works. If I went through with this, I'd have it solely be for Show HN style project sharing/discussion.


> (mostly by dang but he has more help now)

https://news.ycombinator.com/item?id=43558671 for those who missed it


Matt's right, guys.


I'm pretty much decided on making the Show HN clone even if nobody uses it. Because I know it's a good idea and I believe in it:

* For every N=round(10) years software experience, you can click submit N10 times.

* You must* provide a link and year proving your earliest project or employoment.

* Max 256 submissions per day for everyone total.

Should be a fun experiment. Email me if you want an early invite.


How do people with experience that predates the internet prove that?


They'll find a way.


Somewhere in my garage there's a box containing a physical package for one of the first pieces of published software I ever wrote. I wonder if there's a date printed on its CD-ROM?


HN is heavily moderated by humans. They've discussed it before. They're machine-assisted, but heavily involved day-to-day.


Maybe it's an effect of not having to compete with other outlets.


Το λακωνίζειν εστί φιλοσοφείν

To be spartan is to philosophize.


I'm curious why λακωνίζειν needs to be nominalized and φιλοσοφείν doesn't.


λακωνίζειν gets nominalized when you want to discuss the concept itself (to act like a Spartan/speak laconically)

φιλοσοφείν often remains as an infinitive because it's describing an activity someone does or wants to do (to philosophize)


Slashdot sold out to Conde Nast. That killed it. It was very well designed.


"Worst and First beats Perfect and Last"

     - Every Venture Capitalist Ever.


The exception to that rule was Google. Which coincidentally might have been one of the best VC investments of all time.


Google was just the right idea at the right time. Ranking pages based on how many other pages link to it wasn't a brilliant idea, it was just the most obvious thing to do next. It was an algo that you could basically implement in a weekend. Tons of tech companies are just this. Something done at the right time, that was super easy to implement, by people capable of getting others to try it.


What makes HN work is being popular. Nothing more. Stop praising mediocrity.


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

Search: