skysight-inc/HackerNews huggingface dataset:
Clickfarming used to be a big business in Russia around early 200x.

It was de-facto the only "Internet business" at the time, and, I admit, my first introduction to making money in the Internet.

All other things that got Russia its later fame like the huge carding scene, industrial scale spam ops, and such evolved out of it.

Ironically, out of all of that, the warez scene died out first, due to its own success. When people were getting their first fibre/dedicated copper Internet connections, people stopped paying even the measly $3 for warez copies on physical CDs.
I dream of a future where instead of following messianic paradigms, developers follow the mantra of “the most suitable tool or practice for the task at hand”.
As I really enjoy her take on jazz, a genre I'm not really a big fan of, it's groundbreaking as far as I'm concerned :-)

I wouldn't agree she had a beautiful voice, either (Julie Andrews has an incredible voice). It was the way she used it that was new and great. She wrote her own music, I don't think she was a tool of the music producers. I haven't heard anything like her take before or since.
I also live in Chennai and I concur, also with intermittent rains in last couple of weeks, ground water situation has improved and we see less water tankers on roads
None of those are really the same- the closest thing I'm aware of in US history is the Pinkertons- except they were presumably professionals- in HK we're seeing illegal gangs being hired to terrorize the populace

What is happening in Hong Kong is, presumably, the government using outside groups as a proxy for violence. I've outlined a number of instances of the American government using disproportionate violence and using outside groups to perpetrate disproportionate violence. The one thing I forgot were the allegations that the FBI used Gregory Scarpa (a mob hitman) to extract information might seem closer for you.

If you look to the south, there are plenty of instances of the American government funding South American rebel groups (while not the mob, they were not professionals, and did perpetrate plenty of heinous crimes). I mentioned the Contras in the context of the CIA funding drug trafficking into the US (if you don't believe that resulted in an explosion of violence go check out the homicide stats for LA County in the 1990s), but the Contras were extraordinarily violent in their home of Nicaragua.

Of course nothing is ever exactly the same. I don't think that making a difference between professional and hobbyist thug is one worth making here. Beyond that I don't think that legal vs illegal is a worth making either. Do you think the PRC is going to sanction the triads (therefor declaring their behavior illegal)? I don't.
The human voice is the original musical instrument, and humans have evolved to specifically listen to the human voice. I love the piano, but I don't think it is a stretch to say that for humans, the human voice is the ultimate instrument.

I don't mean to sound pretentious, but if you just look at the popularity of different instruments, voice is the runaway favorite. The majority of the world listens to mostly voice as the primary instrument.

To call it the ultimate instrument is not a stretch at all since it is the oldest and most popular instrument in human history.
The problem is with how we decide which are the "bad" countries. If both "good" and "bad" countries fund militant groups, anyone who tells you that this is how they distinguish between them is lying.
I’m always caught by surprise when I see intelligent, educated people ignore the nature and actions of Iran to justify their adversarial feelings towards the US administration.

Iran is on an unprecedented aggressive and violent push towards dominating the Middle East.

They are deployed in Syria, building forward bases to threaten Israel, destabilize Lebanon and pushing it closer to another war with Israel by funding and arming Hezbollah.

They are sponsoring and arming Shiite militias in Iraq and provide them with ballistic missiles to threaten other Middle East countries.

They are supporting and funding the Houthis in Yemen who are responsible for the civil war and attacks on Saudi Arabia and Gulf states. They are supporting, funding and arming Hamas and Islamic Jihad in Gaza, both of which are recognized terrorist groups intent on murdering Jews.

They are responsible for historical attacks on US forces in Lebanon during the 80s which killed hundreds of Americans. They are later responsible for the attack on the Jewish community in Argentina in the early 90s.
Lately multiple Iranian operative cells have been exposed in Europe, trying to engage in assassinations.

They are bullying Gulf states. They are calling for the destruction of Israel every few weeks.

Iran is developing a ballistic missile program which is intended to threaten Western Europe (they are up to 4000km in range now with their latest missiles).

Finally, Iran hangs gays from cranes.

Now, why would anyone in their right mind oppose sanctioning this country?
'Detecting radioactive traces' isn't anywhere near enough.

You need to 'detect' centrifuge building and storage otherwise their breakout time ( = time to get nukes from the time they decide to just ignore the arrangements) is reduced to nothing and there isn't enough time to stop it.

Unfortunately, centrifuges don't have to be loaded with radioactive material before activation, so a large construction program would be undetectable under this scheme (especially given that some research and construction of centrifuges was allowed).

Another problem is actually the long trace detection time: that allows Iran to claim any trace is from the old nuclear program, and not a new one (that claim already happened. It's probably right this time). Since Iran was never asked to account for the old program, it can make the claim for any new site ever. It's not trivial to disambiguate whether a sample is new or old after a certain threshold, these are trace amounts after all. There would be plenty of room for doubt. With no possible proof, there would be no support for action against any new program.

"These things are not terrorism..."

I gather that Iran's support for genocide/mass ethnic cleansing is no biggie, but if you allow that in service of the deal, I wonder what you will allow in the future.
This remind me of the Wilderness Survival merit badge in the boy scouts. We had to survive a night in the woods with no gear except a pocket knife and the clothes on our backs.
In my experience scraping both, APIs have tended to be more stable than the structure of HTML pages. I'd guess this is because there's an incentive to keep your API stable (a breaking change for my scraper is also a breaking change for the front-end), whereas there's basically no reason not to rewrite giant chunks of the HTML to accommodate a design change.
> It was narrowly focused on attacking a specific military project.

Stuxnet targeted some common industrial controllers being sold not only to Iran, and one usage was the control flows on the dams. Basically it just caused the control flow gates to jam. This one that I know of is not military at all!
Brain-machine interfaces are getting better
Implementing sanctions are economic warfare supported by superior force.
I don’t think anyone on here is in favour of bad people doing bad things.

The general point is that when sanctions are used selectively on some regimes and the US buddy up with other regimes that follow the same kind of politics as the first regime; then you have to question if those sanctions are used for the good of the world (ie what is publicised) or for the good of the US (ie financial kick backs, back door deals, etc).

The fact that Saudi Arabia literally get away with murder because the US have profitable arms deals with them should speak volumes about the true purpose of sanctions.
Solargaps – Smart Blinds with Solar Panels
It's a powerful argument. Defending client-side rendering here (or SPAs) is almost no-true-Scotsmanish. It is technically possible to do a good job, but it's almost never done. Yours and sangnoir's teams may care about performance and do actual software engineering - but it doesn't help me much when my bank doesn't do it, the places I shop don't do this, big sites like Reddit don't do this, and seemingly none of the SPAs I've visited in the past 5 years do it.
This guy really knows how to insult his audience. (By repeatedly saying "This is really obvious...")
No paradigm, OOP, FP, etc is "perfect". Yet they are all practical in the hands of competent programmers. Personally I don't particularly like C++, C# or even Java. I have seen way too many dreadfully implemented systems in those languages. BUT it is not the fault of the languages. Bad programmers can shoot themselves in the foot with any language, it's just a bit harder with some but not impossible.

In my experience, business applications are all about state. The state of an account, a customer contact, an invoice. Changing state is what messages / methods do. In a well designed and implemented system minimal inheritance gets the job done. And bypassing encapsulation is a big no-no. Polymorphism reduces cognitive load. A toString method should return a meaningful representation of the state of all objects in a well designed system, etc.

But fear not, the majority of banks, insurance companies, big business still use COBOL on mainframes. No danger of OOP there. It's all 1960s & 1970s programming with GOTOs and spaghetti code. And yes, those are the systems that manage trillions of "REAL" dollars everyday.
Just before my son was born, I was struggling to find a stable job.

So I worked on online web dev jobs for some seriously shady characters.

I made between 10 and 15 sites that they would buy databases and mass mail users in various industries to try and get them to sign up for really shitty programs. (One for example was a roofing company promising 100's of clients).

The amount of work I did on the back end to track everything about the users, fingerprint them and send a report about where in the multipage process they were up to and what they had filled in (but not submitted!) was crazy.

My point being, I hated every single moment of that. But I needed to get money for my family.

If I had it had a good offer that required spamming forums and bypassing bot catchers, I would have done that too.

Sometimes you are in a position where you have to weigh your family's needs vs the general good.

One last point, or reiteration. I hated every. Single. Moment. And I am ashamed that I was in that position by my own fault (not picking a more secure job). I won't blame anyone else for it and I agree I did a bad thing. But if I was in that situtation again, I would do it again.
A Tour of Basic Agile Terminology
Let's just say you're not the first one to think of that "bright" idea. People running on VM and behind a proxy are easy to detect so you don't get paid for it.
I broadly agree, but this article is really poorly written. It takes every downside of OOP to extremes which make it really hard to take the author seriously. Yes there are problems with mutable state, even if you think you've encapsulated it. Yes there are problems with dependencies, dependency injection and the associated boilerplate. Yes there are hideous issues with concurrency.

I don't think OOP as we see it in most languages today is particularly helpful. I do increasingly feel that data structures and operations should not be muddled together, and the polymorphism strategy should be something more like Haskell's typeclasses/Rust's traits or Go's idea of interfaces.

I'm also sure that using those for a few decades would show us plenty of things wrong, and lead to something else.

We are still children in this world. There are no correct answers - but there are definitely some wrong ones, and the increasing realisation of that is evident in the popularity of languages like Go and Rust, and the development of C# is also interesting - increasingly new language features are FP features, not OOP features, and the language becomes increasingly hybrid. It will always be limited by being built on a fundamentally OO runtime, but it's interesting how things are changing.
The atmosphere doesn't care about per capita. Absolute numbers are what counts and then India doesn't look so good.
"Imagine no electricity everywhere, no water, no sewer, no planes or trains, no tv or internet. It would be an apocalypse. The same thing happening to Iran might be difficult, but mostly annoying."

I can imagine people in Iran reading this and quite strongly disagreeing.
Ask HN: Do backend developers need learn AI paradigms, to avoid being extinct?
I'm a backend developer who uses Java an GoLang regularly to write back end systems, distributed APIs, infrastructure, deployment pipelines, etc.

I don't have any knowledge about AI or how to model problems for recommendation systems, or when to use decision trees, versus something else. Is this a skill that I should be actively investing in to not become a dinosaur?

My worry is that in the next 10 or so years, I don't want to end up as a Cobol developer in the world of today i.e., might have a job and good pay, but not being able to work at the next big company or next big idea.
Jedi Academy had its source code officially available shortly after launch. I did some modding of it, back then. It was a ton of fun.
> It incorporates a lot of jazz via sampling, but otherwise unless we're talking about freestyling then it's missing the central component of jazz.

No it doesn't. Rap uses a lot of the same vocal licks that jazz uses, and uses a lot of the same rhythmic ideas too.

Also, rap's focus on the improvisational aspect of their work is very much related to jazz. So many of the best rap songs in the world were partly improvised on the spot. You even have rappers like Jay-Z and Lil Wayne who don't write down their lyrics, they just go into the booth and rap.
How to Become an Enterprise Product Manager in 1 Week
This is a good point, however it also creates code that has no branch points (ideally) and is therefore easier to reason about. It is virtually identical to the situation of passing a flag to a function and branching based on the flag. This leads to a function that is more complex. You can move the branch above the function and write 2 functions, one which handles each case. But these 2 functions are inherently coupled (and may even share code). So it's a tradeoff.

The OO style of programming also often moves the decision point. Instead of having an if statement above the 2 functions, you have the if statement at the construction of the object. If you happen to be writing code where you are doing mostly the same things, but certain details change in certain situations, you can group the differences into objects. If you are familiar with pattern lingo, this often happens if you are doing something that lends itself well to a template pattern. You can then use a bridge pattern to ensure that there is only ever 1 branch, instead of adding a decision point every time you want to vary the behaviour.

Where I find people (reasonably, IMHO) disagree is that having the decision point at the place where the behaviour diverges allows you to see the logic of the situation right at that point. If you have a bug in the code related to that, then it's very easy to figure out where it is, because all of the logic is local.

On the other hand, if you are refactoring the code, or changing the behaviour across the system, then it is very difficult to change because you have to search for all of those decision points. It's also harder to reason about on an architectural scale because it takes discipline (that may be lacking) to ensure that you always do things exactly the same way. You have a lot more flexibility because you can add all sorts of different logic to each decision point. The lack of constraint means that you have to inspect each case to determine if your overall change is going to work.

I'll be honest. I like OO. There are a lot of really diabolical ways you can write bad OO code, but there are lots of diabolical ways you can write any code. I'm familiar and comfortable with imperative, modular code. I'm familiar and comfortable with FP. I'm even familiar and comfortable with declarative code (I wrote some large XSLT systems). There are trade offs which every approach. It's easy to see problems in code that you are not happy with and then throw the baby out with the bath water. Having said that, I don't think there is a problem with having a preference of one style over another, but it's a good idea not to fool oneself into thinking that it solves every problem.
If people are bored because "all jazz sounds the same" / "heard it all before" how is that the popular sounds of today are all regurgitated EDM / rock-lite / rap-lite / "nothing-music" that literally all sounds the same and most of it awful? :P

There's been a long downturn in appreciation for good music IMO. My parents generation (boomers) are more musical than my generation and I think it's getting worse. More of them play instruments. More of them (can) sing. The music they like isn't necessarily highbrow, but it has more musical complexity than most of the stuff on the radio these days. Even simple stuff, like harmony, or a unique rhythm.

A lot of popular music today is atonal trash written for the meme generation. Autotune, weak synthesized sounds, highly compressed for punch to the detriment of everything else, same old rhythms, no harmony, barely a melody, etc. I have nothing against dance music, or hip-hop, in fact I have a deep love for music in both of those genres, but there's a thick layer of terrible that rises to the top of the pop charts and you have to dig through it to find music of any worth.

I'm no musical elitist, but I do take the time to listen outside my comfort zone and it has broadened my horizons enough that I'm not satisfied listening to whatever tripe some top20 station decides they'll make popular this week. I'd rather listen to Muddy Waters for the 1000th time. :)
Superyacht Charter Destination: Greece
> To make things even worse, Go also has data races, when using plain old shared-access concurrency!

And Go's message passing readily and silently devolves to unprotected shared-data concurrency as you can (and people commonly will either for performance reasons or because of reference types like maps or slices) send pointers through channels.
> (Maybe they are making a profit even now? Sorry, don't know, I'm just a random developer...)

SpaceX is private, so its books are closed and there is no publicly reviewable valuation.

Tesla is public and has had < 5 profitable quarters in its existence. None of Elon's existing companies have been able to turn a profit. Paypal does not count as "his" since he joined there on an acquisition and he was only CEO there for a few months before getting the boot.
> companies deploy them to avoid separation of responsibilities and turn every employee into easily replaceable "full-stack developer"

SPA-s are much-much harder to develop if more teams are working on it. So your first sentence makes little sense.

> companies move everything to client-side in order to reduce Amazon bills

This is never the reason why it happens. Seriously? The cost are not saved, just moved around. SPA-s are developed because they could provide a much better UX. As a side benefit, server side development becomes simpler by providing some REST or GraphQL API. You don't want to be in a place where tens of thousands of lines are generated backend side by backend developers.

> client-side scripts are poorly optimized and contribute to global warming by causing hundred thousands machines to spin up their CPU fans.

I appreciate your sense of humor :D
Native QR code reader integrated into the camera was just added to my Galaxy S8+ with the July update.
I usually just keep it very lean group a bunch of functions into logical groups and KISS it.
> literally famous for being famous [...] not battle tested

> “[no other] viable high performance language with the same ecosystem, support and tooling”

This comment strikes me as deeply contradictory. I have qualms with C++ as any other C++ programmer, but saying it’s famous for being famous is just ridiculous.

C++ has been used to operate nuclear submarines, airplanes, pacemakers, financial systems, ... over the last few decades. I’d like to know what you consider “battle tested”.
Your first page load is -incredibly- important here. It’s the difference between a usable site and an unusable one.

This is the point I was making. If the server can send the user enough data on the first load to make the whole app/site usable then the user won't need to wait for the network if they're in a tunnel. They've already got the necessary resources (which shouldn't be everything, just what's necessary). In that scenario client side routing beats server side completely because server side rendering just doesn't work when the user doesn't have a network connection.

That said though it's wasteful and entirely unnecessary if the user has a good connection. Really websites should have a good mechanism for testing. The Network Information API doesn't have particularly good cross browser support and it isn't especially reliable yet.
In OOP those groups are called classes, and the fun is that you can instantiate them and call them objects. And within those objects you can set a state, so those functions operate against it. A nice feat of OOP is that you can also inherit logic and expand it.
I'm also from the south and my family probably owned slaves. It is something we should talk about and acknowledge. I am sure I knew people when I lived there who would be angry at "making trouble by talking about that time". But we need to do that, own up that our ancestors did that.

Even if one's ancestors believed in it, it does not mean that you can't have different views and see the wrongness of historical actions. And of course there is plenty of racism around today.
It's the same meta-problem, though: modern webdev practices involving adding gimmicks for no good reason that introduce extra complexity and resource use, and then adding even more complexity and resource use trying to fix all the expected behavior and features of browsers that the initial gimmick broke... and doing it poorly.
One side of the story. But the thing is, intelligent people will want to know why?
There is a Soviet joke, on unrelated subject, but relevant.

A father informs his son that the prices have gone up. The son asks: "Does that mean that you will drink less?" - "No son, that means that you will eat less."
This is quite interesting, thanks for the overview.
Sounds disastrous.
It seems a large chunk of people would rather trello was built entirely out of html forms so you press a <button> to make the card move to the left and then the page refreshes with the card moved.
They saw the Francis Mallmann episode from Chef's Table on Netflix?
As a dutch I've only been dropped in Belgium forests.
> I'd say data races are race conditions, but not all race conditions are data races.

This is not the case according to the article. In the article, transfer4 is a data race but not a race condition.

Your example with T1 and T2 is a race condition and a data race.

Your example with a = a + 1 is neither a race condition nor a data race since there is no concurrency.

It's probably possible to argue that the terms should be defined differently to match the formulation you have instead of the author's. After all, definitions are created by people to help our thinking and we can change them or refine them. But I suspect that would be very a difficult argument to make in a compelling way.
Is that a fancy “i'd rather eat crumbs with bums than steaks with snakes”?
Should Smart Contracts Be Non-Turing Complete
If you’re willing to open it back up I’d appreciate an invite :)

<removed>

[at]<removed>
... or test engineers!