skysight-inc/HackerNews huggingface dataset:
> It continues to amaze me how some of the smartest and technically savvy people on HN either do not recognize or refuse to admit how complicated a problem planet scale moderation is.

It's probably a variation of the trivial-core-problem [0]. When looked at roughly, it seems very easy; only when you start implementing it, you'll see all the edge cases appear. I made pretty similar points above to the ones you made - but on a quick napkin calculation, Retric's math checked out, to be fair. And when you're not in the business, missing the inherent complexity is easy.

[0] See https://blog.codinghorror.com/code-its-trivial/
>I had never thought about the connotations of blacklist and whitelist before it was pointed out to me. In retrospect, blacklist and whitelist are unnatural meanings of the words black and white, and blocklist and allowlist make much more sense.

This is everyone's story with these words. This movement was not driven by POC taking issue with the word "blacklist". It started with some white dude's shower thought that because "blacklist" was a negative thing, and because "black" also can refer to skin color, that the term was thus racist [1]. Then a bunch of other white dudes ([2]) were like "oh yeah for sure that makes so much sense" and here we are--everyone goes along with it because they (rather patronizingly) think that someone else will be offended.

The word "blacklist" is many hundreds of years old. It does not have a racial origin. It's just a word. Nobody actually makes the association between "blacklist" and "black people" unless you tell them to! Our brains aren't nearly so stupid!

[1] https://twitter.com/andrestaltz/status/1030200563802230786
[2] https://twitter.com/dhh/status/1032050325513940992
> Nuclear fuel is several orders of magnitude more energy dense than solar or wind, so the amount of fuel required is shockingly low, especially compared to how many resources all those panels and windmills require to build and transport.

You miss the part where nuclear fuel needs to be enriched. You don't just dig ore out of the ground and put it into a reactor. You need to enrich the fuel which means that much more ore needs to come out of the ground and be processed than the fuel end product.
Agree, agree, agree. I've bounced between Python, C++, and Rails in my career, and lately have been ramping up at a Go shop. Go is like C++ in the sense I can tell that eventually I'll get better at eyeballing a file, sensing the shape of the code, and zeroing in on the important bits.

Just like learning to read large C++ codebases, there's clearly a learning curve because a simple idea that would be a one-liner in a high level language is going to be 5-15 lines.

Go also makes the "learn to read" learning curve even steeper when folks pick up and propagate the core team's propensity for single letter variables. I feel like one of the understated benefits of ruby/python/similar languages being relatively readable is that folks are inclined to keep them readable. Whereas when you feel like you're one step away from specifying the register and how hot the welding torch should be to toggle the bits, you're somehow more likely to write `c.T.Client.Send(v)`.

IMO if we accept that most of our work is maintenance & modification of existing code, and most of the work in those tasks is understanding what's already been written, it follows immediately that code that's easy to read has high business value. I know it's too soon in my learning curve, but I'm really hoping I find the patterns that make Go easy to read soon. (and a little tangentially but the descriptive power of a variable name should be proportional to its scope - so imo anything exported or that I might see across multiple files is an awfully strong contender for a multi-word descriptive name.)
ImGui is nice too. I use it for quick UI hacks in Python :)
It won't be ready for production use for a while, but https://github.com/python/mypy/tree/master/mypyc is being worked on.
Most of these will be solved with the recently approve generics.

Concurrency (less the pattern libs that generics will provide) feels generally hard. Although channel semantics in Go are very annoying (e.g what happens when you close a buffered channel). This is hard in most languages I’ve used. Anyone have an example of what the state of the art hard-to-shoot-yourself-in-the-foot concurrency looks like in another language?
Asking since most of the people in this thread are taking it as a given: what is the strongest evidence pointing to the fact that China is carrying out a genocide?

For example, I've been fairly bothered by the consistent citing of unreliable sources for the Tiananmen square death counts (ie. that British cable that cited 10k+).

Lots of people seem to be calling any deviation from the "accepted" line to be "brainwashed", Winnie the Pooh jokes, etc.
>The Thucydides Trap, also referred to as Thucydides's Trap, is a term popularized by American political scientist Graham T. Allison to describe an apparent tendency towards war when an emerging power threatens to displace an existing great power as the international hegemon. It was coined and is primarily used to describe a potential conflict between the United States and the People's Republic of China.

One shouldn't lump all antagonism towards a government together as a single thing.

You can live in China, think the US government has a history of war crimes, subjugation, imperialism, plunder, genocide, and geopolitical treachery, and yet not want to go to war with the US.

You can live in the US, think the Chinese government is engaging in genocide and creating an uniquely dystopian surveillance state where all thought and behavior can be monitored and shaped, and yet not want to go to war with China.

I'm sure this trap is a real phenomenon, but pretty much every large human empire has been powered by a helm regularly committing horrible atrocities, so one hegemon will probably always be able to legitimately condemn a up-and-comer, and vice versa.

I think it can be a bit dangerous to counter such discussion with accusations of war-seeking, because it lets rulers get away with more than they should. At least unless you have specific evidence suggesting the discussion isn't simply a case of people who are genuinely concerned about people for humanist reasons.
I really like Go, but I'd love something like JavaScript that had the performance of C^. If and when that happens there really wouldn't be any need for other programming languages IMHO.

Oh well - that being said Go is way simpler than C++18 that I've done a tiny bit of work in. I think the issue is that Go generally competes with Ruby/Python/JavaScript in certain scenarios and just seems way more complex in comparison.

If you compare Go with C++/Java/C# it seems more reasonable and "easy."

^ the good news is that a ton of money is being spent to improve Node performance - whether it'll approach Java/C++ speed is TBD, but the performance gap is shrinking year by year.
See also Charles Bloom's rants [1] describing some of less known ideas from the paper.

[1] https://cbloomrants.blogspot.com/2010/08/08-12-10-lost-huffm...
It takes time for the immune system to kick in. In this case it did pretty quickly.
The problem with "shut up and calculate" is that sometimes you forget to take things into account. People objecting on grounds of land use elsewhere in this thread have been worried about the size of the infrastructure and mines supporting the manufacture of the solar panels. I have no idea what the ingredients of a solar panel are, or how to calculate W/m^2 after taking area for manufacture into account, but it's plausibly "not quite so many". Then you need to start thinking about batteries for energy storage at night, and so on, and the area increases.
I'm having trouble following your logic for [2]. Prices are decided on the margin whereas M1 is a metric of total assets, which is a cumulative measure. As a thought exercise: if I owned the entirety of $DJI, and you bought $2.2T of $DJI from me, M1 would be unchanged (your money is now held in deposit at my bank account), and the market cap of $DJI would be determined entirely by our transaction price. By what mechanism do you relate the two?
Boeing 777s grounded around world
What comes handy is this [1] link, but I will update if I get any better links or others might chime in.

[1] https://blog.golang.org/pipelines

It is a very long doc, but that also shows that concurrency has so many patterns one might like.

My own pattern is typically

1. Decide level of parallelism ahead of time and start workers (that many `go X()` invocations
2. Setup sync.Waitgroup for the same count
3. Create two channels, one for each direction.
4. Job itself needs some sort of struct to hold details

Most of my jobs don't support mid-work cancelation, so I don't bother with anything else.
http://archive.is/koL5U
Clearly you have no appreciation for hard work when you equate someone working a job at a McDonald’s with laziness and playing video games.
Multiplexing Multipath P2P Mobile Transports
In Go tutorials I almost never see anything about mutexes or how to be thread safe
just like master bedroom, master branch, slave drive is racist to some people.
I think the most shocking part of that article was the Chinese response. I can imagine a similar response from Nazi Germany.

--

"Some anti-China forces in the West have concocted and disseminated plenty of false information about Xinjiang and fabricated "lies of the century" in various forms," the embassy said. "They have smeared China's image and slandered its policies on Xinjiang."
It added: "Anyone who is fair-minded can see that the true intent of those forces is to suppress and contain China's development... Their moves are driven by a Cold War mentality, hegemonic worldview and zero-sum game mindset. China will never allow such farce and vicious demonization to succeed. Lies may mislead people for a while, but cannot win the trust of the world. Facts and truth will eventually bust all lies."
What is this total bullshit?

Like hello? This isn’t true at all?
You're doing yourself a disservice if you think Chinese people are all brainwashed simpletons. The reality is that people will rationalize anything that benefits them, and Xinjiang is an integral part of One Belt One Road.
Counter-point: the US government added $2.2T more dollars, yet they are almost as good at buying commodities and other goods and services today as they were a year ago. Furthermore, the market expectation of their goodness, as determined by Treasury Inflation-Protected Securities, is quite strong. That seems like almost the opposite of dollar holders rushing for the exits!
> I firmly believe that smoking bans have killed live music

What's the connection?
No, they're able to share their opinions opinions. I have chinese coworkers who will, given the opportunity, bitch about their government the same way we do. No, they aren't going to put it in email. They aren't going to use WeChat to do it. But they can absolutely do it. I've seen them do it when they're in the US for meetings. I've seen them do it over dinner at public restaurants in China.

They simply are more "free", by any reasonable standard, than their grandparents in the PRC or their compatriots behind the iron curtain. Quite frankly they're more free to express inconvienent opinions than most minorities were in the US for most of the 20th century.

The PRC government does some awful things. But the kind of hyperbolic nonsense we're engaging in here isn't helping the situation.
> force those websites to publish against their will?

I would argue that the will of the websites is to actually allow publishing for the most amount of people. And they censor the opposing political views only because the government-aligned forces make them to. Basically if every corporation needs the government to survive they are going to do everything the government wants, even if they don’t admit to it. They would rather lose half the users than become completely defunct.
> Just because you think and associate something with a negative racial implication when you see a word doesn't mean others are. I personally am able to look at a word and understand the context surrounding the word.

We also only get change requests for the associations that point in one direction.

It's called "in the black" when you're making a profit. Is anyone trying to get accountants to stop calling it that?

Here are some synonyms my thesaurus lists for "white": blanched, bleached, frosted, pasty, achromatic, bloodless, chalky and ghastly. "White noise" is sound without meaning. "White flag" means to surrender. "White label" means you're too cheap for the name brand.

If it's a problem then it's all a problem.

Or, if we're going to change something, we could stop calling people "white" and "black". Where do I submit the pull request for that?
"anti-tech backlash".

That happened in 2000 with the dot-com crash, I can remember perfectly.

Instead of crypto, or better said, in addition to crypto, we should warn about blindly investing in hyped-up assets.
Right, he was talking about speaking without fearing punishment by the government. The modern equivalent of which is… speaking without fearing punishment by the government.
Same way Nigeria is/did, and India is/did. You give folks 6 months to cash out and you tell the exchanges to board up their windows.
Law goes back to the code of Hammurabi, the start of civilization itself. The sole purpose is to limit the violence and not add to it. If there's anything arbitrary, it's the violence. The Magna Carta showed everyone is restrained by laws, or else there are no laws. We're back to being beasts again living in terror, squandering humanity's elevated position gifted to us, won long ago.

You can misspeak. Therefore, it's impossible for you to tell others what is perfect speech. That's all the Bill of Rights and freedom of speech is. It's unavoidable.

The best lessen enemies in times of contention, not create them. The USA took the gift of the New World and said if we're going to tell other people what to do, what's the minimum we have to do? We don't need to crush riots or deprogram people. Hundreds of cities burnt down in the USA due really dirty political tricks, and we left it alone. If people want to lead in the USA, they have to find a way themselves to overcome it without relying on tyranny, oligarchy or anarchy.
Calling the Unabomber "a well educated erudite who saw things others did not wish to confront" is obvious, massive flamebait.
When I was a little kid I went to a fundamentalist baptist church that worked exactly like this. If a deacon learned that someone wore a skirt above the knee, or listened to a pop song, that person was excommunicated. If anyone then contacted the apostate outside of church, they were excommunicated too. And so on.

It’s a purity cult.
Yes, but I think the point was that the rhetoric above, about a nation that was "single greatest threat to freedom, and human rights this world has ever seen", absolutely sounds like it's written by someone who very much does want to go to war with China.
> I’m really curious to why you feel this way?

You actually answered this question yourself with your next paragraph :). Currently being racist towards white males gives businesses, influencers, and politicians more power. And I fundamentally disagree with this notion. I do not think shitting on particular groups of people should make someone excel. I think it should show what kind of negative person they are and they should lose not gain.

Some of my problem stems from the fact that these phrases are used to dismiss peoples opinions. I am far from being conservative, and also wouldn't consider myself liberal. I hold many views that fall under both spectrums. Some may even be considered more radical on both ends.

If I made a conservative sided comment online how do you think it would fair? Now if I made a liberal based comment how do you think that would fair in comparison? I think that the liberal ideology would gain me woke points and give me praise. Whereas that conservative view would get shat on, may be called some "ism", and then likely also would be called a "white privileged male". This would of course be used to dismiss the opinion/fact despite how true or accurate it may be. It is also making assumptions on race and gender simply based on a single opinion on a topic.

My main issue is that this kind of thinking creates a divide. It's hard to have a conversation on many websites because people hurl insults and don't care to actually have a constructive conversation. I try and come into a conversation being open-minded. The problem I have faced lately is that I feel like I have been becoming more and more jaded and against the other "side". I really dislike this and have been working to try and avoid doing that. But everytime I hear these kind of rude comments it further affirms my believe while also preventing me from hearing what intelligent people on that "side" actually have to say.

For example, people quite violently oppose Trump and Trump supporters. What doesn't make sense to me is why people would rather attack the group of people instead of trying to share their opinion. If there opinion is based on facts/research/science you'd think they would want to engage with the other side and try and get more people to share their opinion. But instead social media and society lately discourages this. It always has to be them versus us. There is no middle ground. Hell people get called "alt-right" and "nazis" for some pretty tame conservative views. I personally think calling someone a "nazi" is very extreme, yet the word gets thrown around like it means nothing. As a side note I find it quite ironic that these same people using these extreme words also will try to police what words others can use that they deem "offensive".
Show HN: Search Engine for Engineering Blogs
It’s really ridiculous on TikTok.
Go's lack of generics and metaprogramming can be extremely frustrating when you're working with services that copy data around from one struct to another, which ends up being a lot of them. You're left with reflection, code generation, or doing it field by field.

It'd be nice to have syntactic sugar for splatting structs together, or a library that let you do it in a typesafe and efficient way.

EDIT: I will defend the random map order, though. Golang maps were only predictable up until a set number of items, which caused hard-to-detect bugs where your small test case would be in order but your large real-life data would be out of order.
>can advertisers stop being afraid of anything and everything?

This is what I don't understand. If my memory serves, the whole demonetization debacle started when some activists at a newspaper wrote an article about big brands having ads on Alex Jones' content, in which they reached out to the brands and asked "are you happy with your content being seen next to XYZ?"[1][2] It struck me as just another article in a long list (that continues to today) where a legacy media giant lashes out at new media because they're worried about ad revenue being taken from them, the 'rightful' recipients.

If people are watching a video, regardless of the content, they are almost certainly there because they enjoy that content. Isn't this the point of all advertising; you want your brand on display when someone is enjoying something to (sub-consciously?) associate your brand with the enjoyment the viewer is experiencing? I wonder if there is a case to be made for loss of earnings for shareholders if the pool of eyeballs seeing their brands messaging is continually diluted.

I suppose the counter-argument is that the brands don't want their advertising funds to go to an organization they have moral disagreements with, but that certainly hasn't stopped them in the past. Is the income from a washing machine sale any less valuable if it comes from someone not politically aligned with you, or if they saw it while browsing a porn site? (I'm not interested in discussing Alex Jones). It seems to boil down to not wanting to be 'cancelled' and have the twitter-mob making waves and threatening boycotts.

[1] Mashable article about the advertising pull out - https://archive.is/6LkmL

[2] The hit piece from CNN - http://archive.is/4yHMF
I used to use TW for rent as well, the fees crept up over the years, and I realized that Revolut is the way to go here. TW has become uncompetitive
Read the update at the bottom of that article
This started long before. Remember when outlets like Bloomberg made a big deal because ads were running on random 5-view YouTube videos with objectionable content? It’s about money, not your culture war.
Exactly. You can have the amortization benefits of batching without adding extra latency, if you do optimistic pipelining. It's super powerful if your transaction sizes aren't linear, e.g. because you're doing in-memory aggregations.

Gazette consumers use this strategy: https://gazette.readthedocs.io/en/latest/consumers-concepts....
I don't care if what you watch is good or bad for you. I care if what you watch turns you into a threat to me. Based on the past few years, it looks like maybe 20% of the general population is suggestible enough to endanger the rest of us.
2018 United 777 blade failure followed gap in P&W inspection training (2020)
A lot of the things in Go that seem horrible seem simple if you are used to the slice syntax used in Python and other langs, which I am not.
Everytime this is coming up, I wonder why people were always okay with banning nudity but now that hate speech (that undeniably agitates people and leads to hate crime) gets banned, they oppose content blocking.
Meh. No one thought the USSR was "unsustainable" in the 80's when they were an evil empire. And within the decade they were gone. Nazi Germany didn't look "unsustainable" either, until they lost. All great powers look unbeatable during their ascendance and weak in retrospect.

Could things get worse? Sure. But all I'm saying is that things have already been much, much, much worse. And we came out OK.
Developers in other languages know the performance characteristics of list.delete because there is only one implementation throughout 99% of their codebase. Go you have to look at the implementation every single time to make sure its doing the right thing.
Use it monthly. Have salary from foreign country, and simply keep a bank account there, then transfer it to US with (Transfer)Wise. Rebrand won't matter, as I guess I would always Google "Transfer Wise" either way, if nothing comes up for the query "Wise".
The Practice: Dedicate one hour each day to your craft
They do make software limitations to make it fit inside their product line. If only one out of eight cores is dead it’ll likely get sold as a 6 core chip not a seven core. If the clock stability limit is slightly too low it will get binned 10% lower for no technical reason.

If they didn’t do this everyone would be returning the 6 core versions of a chip until they get lucky and get the 7 core. People already do this a little with overclocking capable chips.

Maybe you’d argue they should sell a 7 core chip as well for a slightly higher price but that also means having more product lines and increased manufacturing costs as a result.
"Civilization advances by extending the number of important operations which we can perform without thinking of them." --Alfred North Whitehead

Go forces writing loop for removing an element from an array even if the programmer knows it's linear time. Ruby gambles that programmer isn't ignorant - or it's not critical - but allows the convenience every time.

Designing languages is hard.