skysight-inc/HackerNews huggingface dataset:
I'm a developer in Iran too. Just wanted to say this guy works in Douran (شرکت دوران) company, proudly stated in his page (Which screams amateur and narcissist), they are providing the government with many censorship and surveillance software and services.

They are notorious and hated, like death squad level in the free minded, geek community in the country.

I can't believe his post got this much attention and sympathy without anyone noticing he works in a freedom killing company... what a joke!

Sanctions really hurt... good luck using a good cloud provider, which is a backbone for our daily activities as developers. No doubt about that, nothing new.

The problem is our double standards in the middle east, we fuck up everything then blame it on others. They (west, east, x, y) aren't saints but we aren't either. Here is a clear example of this ugly truth.

I know people mostly from minorities (Kurds, atheists, LGBT, secular, Narenji guys) with death sentences in Iran because of their online activities and if there is a single corporation you can easily blame and point to who lands a hand to the government for their inhuman acts it's them, Douran.

Double standards won't work, you can only fool people for a very short period of time in our era.
> conflating two different things ... asset seizure of stolen assets

Yeah, seems like I was, in the general case of stolen assets, sorry. My example applies to the more limited case of sale of stolen assets to a buyer, where there's enough conspiracy between seller and buyer, and the buyer is an unpleasant career fence. It happens often enough: there's a specialized network of fences (dealers in stolen goods). Given the efforts the parties make to keep their operation covert, conspiracy is easy for the government to allege. And the civil forfeiture against the money used to buy the goods proceeds without a hitch. Yet the fence is not indicted.It happens at scale, you can be sure that false positives (honest citizens who happen to look bad) get burned too.
Major release of CKEditor 5 – word count, autocorrect, base64 upload adapter
I'm sorry, for me it still more of a "how to define data" that "thinking in type".
Full disclosure, i would create a struct like this:
typedef struct Transactions {
int value;
char currency;
} Transaction;
(sorry for the naming and the poor c code, i've not done any c since 2016).

If the transaction value can be superior to 21 thousands (or if the code is deployed on a 32bit system, or if i want my floating point value high), maybe i would use a long, and probably an enum to keep track of the different currencies the second time i pass over the module. Maybe even a field (or a macro outside the struct) with the floating point value (4 to 6 seems good enough tbh).

I'm an "int, char, loop" guy, at least at first, especially if i have to write something from scratch. Thinking in "object" or "type" makes me uncomfortable except when it is for interfaces (but GUI makes me uncomfortable too, so...). I feel this is inefficient, and that well-defined/organized data should not need such complex handlers in most cases.
As a science oriented person I reach spirituality only through secularism. I can recommend this book: "Why Buddhism is True - The Science and Philosophy of Meditation and Enlightenment"
https://www.amazon.com/Why-Buddhism-True-Philosophy-Enlighte...

In essence this book tells why secular Buddhism (secular, western meditation) is actually a very reasonable way of spirituality.
Some subreddits can be good, /r/askhistorians /r/askscience .. but I too am curious if they don't rate HN as being relatively deep what they do rate in that category.
Clearing Lebensraum from lesser races had everything to do with Nazi Germany looking for its own interests.
True but considering most peoples use of CGI is without a framework (otherwise you might as well just use that framework as the HTTP server) you're then having to place a lot of trust in the developer not to accidentally foot-gun themselves.

It's like the Rust argument. Sure, a skilled developer could write good code in C++ but languages like Rust make it harder to accidentally foot-gun yourself and more obvious in the code when you do happen to do it.
To be fair, a lot of the good things on the early Internet were funded on the basis they would eventually find a way to make money. They simply were not sustainable in the absence of a revenue stream, and Advertising turned out to be the answer.

We can't pretend that Google, Youtube, etc could have continued indefinitely in their original forms without ever having to become profitable, or having to make any compromises.
Car Sharing and Transportation Trends
> I'm sure someone will be writing "Functional Programming - The Trillion Dollar Disaster"

I'm sure no one wouldn't. From my experience of working with GObject, C++, smalltalk and CLOS, I dare say that OOP is an inherently terrible idea.

OOP is harmful because it mixes two concepts you don't want to be mixed: open recursion and encapsulation.

OOP forces you to model your code as a state machine, where the transition logic is obfuscated (OOP people call it abstraction for some reason), hidden behind virtual methods, inheritance and abstraction.

This means you send a message to an object, and that triggers a chain of state transitions which is totally hidden (aka object could call a parent's method, parent's method could call some of the virtual methods, which sends message to some other object and so on).

This terrible implicitness makes your code obfuscated and impossible to debug, especially in presence of locks and parallelism.

Hence this recent trend of hatred towards inheritance and OOP in general.

Now, regarding Functional Programming. If you would draw an axis where to the left would be implicit paradigms, and to the right would be explicit ones, Procedural programming would be in the middle.

Procedural programming is very explicit, all state transitions are obvious, safe those which exploit side effects. Side effects is the only thing that make Procedural programming implicit (and buggy). OOP is significantly more implicit that procedural programming, because even the logic is obfuscated with virtual methods and late binding/open recursion.

Then FP on this implicit->explicit axes would be at the explicit pole, since FP tries to make the effectful code
explicit, hence it's inherently good and less buggy, while OOP code is inherently more buggy. Each bug I meet in Gstreamer or our C++ codebase is extremely hard co comprehend and debug due to these obfuscated state transition, while debugging our OCaml codebase is a breeze.

I wouldn't say that message passing is always a bad thing, it's good in one case: when the logic is not known in advance, for example when you have a distributed system where nodes work independently and send message on occasion (aka actors). Although this case has its own underwater rocks.
Skipr (Mobility-as-a-Service) internal feedback post-launch
> There’s no objective and open evidence that OOP is better than plain procedural programming.

Really depends on what is your definition of "OOP" here

> Both Smalltalk and Erlang make use of OOP the way it was originally intended by its inventor, Alan Kay.

ah, the bad definition of OOP then.

Hint : most C apis that look like

foo* foo_create(void);
int foo_get_bananas(foo*);
void foo_print(foo*, int, int);
void foo_free(foo**);

are OOP, not procedural. They just lack the syntax sugar.

> Linus Torvalds is widely known for his open criticism of C++ and OOP.

yet he went on doing C++ for user-space code : https://www.youtube.com/watch?v=ON0A1dsQOV0

> Some might disagree with me, but the truth is that modern OOP has never been properly designed. It never came out of a proper research institution

as someone who did a phd in a "proper research institution", that's a completely bullshit criterion.

> OOP doesn’t have decades of rigorous scientific research to back it up

oh come on

https://scholar.google.com/scholar?q=object-oriented
So much to critique in this article, but I decided to pick on this:

"THE codebase becomes impossible to maintain"
"THE codebase becomes too complex and unmaintainable"
"What makes THE codebase complex?"

I count fifteen references to "the codebase." THE codebase. THE.

Well your program consists of more than one codebase! What then?

Here's some code that ran on the linked site:

window.webpackJsonp = window.webpackJsonp || []).push([[8], {
"./config/polyfills.js": function(e, t, n) {

Medium (codebase A) dynamically interrogates the API provided by my browser (codebase B) as influenced by plugins (codebase C) linking the UI framework of my OS (codebase D) and then loads some polyfills provided by Babel (codebase E)... Which one is "the codebase?"

Your runtime environment is multiple components, each evolving independently! How do you write reliable software here? You can use static types but can't trust them, they can't predict the future and don't know the past. You want runtime interrogation and reflection. You want graceful degradation and dynamic polyfills. You need late bound interfaces. You need objects, not ADTs.

This I think is the heart of the OOP idea: software components realized in classes/objects/messages which can evolve truly independently. Drop the "THE codebase" assumption and some of OOP's strengths will appear.
>This feels a bit like the "if you don't like capitalism why do you use an iPhone?" argument. //

That's a pretty good question though?
Well, I can understand that, it depends on the age of the children also.
I think that the "Even in JavaScript..." comment was written with the idea that race conditions might not be present/possible in single threaded environments, such as JavaScript...I read it as "Even in a single-threaded environment, such as JavaScript..."

I don't think that most folks would hold up JS as some sort of gold standard of language design, and it doesn't seem that the author is doing so here.
Show HN: I made an app to schedule your articles reading list and get it by mail
That’s what you read into it. I thought: what a clever bunch! It’s all in your head
"OOP is considered by many a crown jewel of computer science".

No it's not. It's a crown jewel of programming.

What do proper CS-researchers have to do to not be grouped together with pixel pushers? Slap Theoretical on every paper?
The atmosphere doesn't care about political boundaries either, so there's not much utility in drawing a line around an arbitrarily large group of people and summing their emmissions. The only reason to look at country-level stats at all is to assess the effect of policy, and controlling for population size is the correct approach for that comparitive analysis.
I suspect those companies have raised their minimum wages not because of the local labor market, but instead because of nationwide PR risks.

That is just as bad as a law really. The companies will end up employing fewer people at higher wages, while other people end up unemployed, and the total nationwide labor salary gets reduced.
I did a fair amount of scanlation back in the day (very obscure manga). One of the things I liked about scanlation was being able write hacked up English on the assumption that the reader knew enough about Japanese culture/language to make the leap from awkward English to Japanese concept. But, if I was writing for a larger audience I think it would be incredibly difficult to write idiomatic English and still capture the Japanese sense of the sentence. I'm in awe when I see people who are successful. I'm convinced you have to be an incredibly good writer of English to be able to pull it off (which I am not ;-) ).

I admit do having a wave of nostalgia now :-) Few things brought me as much pleasure as scanlation...
They have a lot of softcore porn and piracy now. Indeed I've seen some things on YouTube recently that look like pretty blatant porn, and weren't behind the age-wall.
ctrl+r for reverse searching of previous command

add a "# tags" at any commands end to use above for future.

so lets say you have a ssh into multiple servers

$ ssh -Uasfd host1 # server1

$ ssh -Uaiouhqe host2 # server2

then later, ctrl+r -> and type ver1
> Generally speaking, some kind of external timing or ordering non-determinism is needed to produce a race condition

race conditions don't rely on non-determinism -- two overlapping CAS operations (compare-and-swap) with deterministic read-read-write-write order will race every time.

There are realistic code examples that produce this order in the wild -- the issue isn't non-determinism, it's lack of synchronization around the CAS.
Enforcing a resource tagging strategy on AWS with Pulumi
Because you are not sanctioning only the military and the government, you are sanctioning everyone in the country. You are sanctioning young people, who just want to live their lives, just like we do. They already suffer from the oppressive regime, and you just want to make their live even harder.

All the Iranians I've met seem like completely normal people. I've never been to Iran, but from what I hear the young people in Iran aren't much different from the people here: They like to go to parties, listen to music, etc. The only difference is that they have to do it in hiding, and that they will get arrested when they do something like hold hands in public when they are not married.

Why would anyone approve of sanctions that make these people suffer even more?

And then, when these people start fleeing the country, asking for asylum, why do we turn them away?
When databases came by, I bet people felt the same way about them. Now they're a common tool used in most systems, and most devs and engineers will have at least a basic understanding.

My hypothesis is that ML will follow a similar path. It seems like an exotic skill now, but there's already a mass of undergrads familiar with it from their education. We'll still need experienced practitioners to lead projects and architect systems (like DB admins and architects do!). But in some 10 to 20 years, everyone will use ML where appropriate, get some value from it, and it will have lost its hype. There will be some uniquely new capabilities that ML enables, just like DBs enabled storing state at scale, efficiently and cheaply.
We would probably just treat the html as data, that is normal lisp. So no syntax changes. Same for css I guess. Maybe in twenty years.
I wonder if there's any source of information where I can get specific examples of this issue. It would be quite curious to see side by side comparisons on how stories differ, and see if there's any general trend.
Even if your objective is not to get great, but merely pretty good, practice in front of an audience only gets you part of the way. Coaching, video, etc. is really useful. I expect many companies don’t offer this sufficiently and many who would benefit from it don’t take it when offered—because it’s uncomfortable or they don’t see it as important.
Completely agree.

Some of the most literate, easy to comprehend and maintain, stateful, Gui-heavy desktop apps I've written / worked on have been detailed models of interactive objects, because it was appropriate for the problem.

In other problems (the classic web, data processing), it doesn't make as much sense to hydrate this huge, complex ecosystem of objects over and over just to throw it away again, or to end up with functions which are nonsensically bound to what is really just a data structure. Other operations are particularly recursive or parallel by nature and lend themselves to FP at least in part because of the work done in the FP community to handle those paradigms extremely well.
PoW vs. PoS – Environment and Security
I was able to bypass by opening in incognito mode as a logged out user.
you != you
Quiet Hacker News (2017)
Yeah, they were. Though arguably not in the link you posted - those are mostly clichés, as correctly pointed out by the original poster. Especially the "separation of content from layout" and CSS Zen Garden were obviously[0] nonsense, and you can observe how SPAs of today go against both.

Tables had performance problems when they got large and content got potentially dynamic. That I learned only many, many years later - I never did sites big enough to run into such problems then.

The accepted answer in this post is cringeworthy. So much rationalization these days, makes you wonder what we're rationalizing today.

--

[0] - I admit I bought the CSS Zen Garden for a while; it took me some time and experience to realize that, really, no one does that in practice, and it requires ridiculous amounts of either forethought or afterhacks to do it.
"muh freedoms" probably.
You can always post an eviction story from any country. We need to look at the larger picture: Palestinian population of Jerusalem is increasing both as an absolute and on percentage basis:

https://en.wikipedia.org/wiki/Demographic_history_of_Jerusal...
Then you don't know enough qm.
SilverStripe – PHP CMS Framework
This article is just not very good, the author keeps talking about a zillion different things without really focusing on the actual, underlying issues. But one thing it does say right away is that mutable state is not a problem as far as it goes, what's problematic is mutability plus promiscuous sharing. This is what makes it unfeasible to reason about what the code is doing.

Similarly, encapsulation (bundling code and data) definitely has its uses - in preserving class-wide invariants, or in providing a "common" interface that makes it possible to disregard the inner workings of some data structure, and interact with it in a way that's not dependent on the implementation. But in practice, implementation inheritance in OOP often encourages what amounts to breaking encapsulation and making it possible to violate class invariants, all in search of some dubious "code reuse". If you can't express your desired code reuse pattern via some combination of simple interface inheritance, delegation and dispatch over "sealed", non-extensible variants (the mechanisms that plain old composition/FP gives you) there are probably some underlying problems with it that you haven't thought through.

Of course the standards of programming improve continuously over time. Even FP and broadly "FP-like" programming is not what it was in the 1980s, and some of that progress was brought (if perhaps incidentally!) by OOP languages. This is to be expected!
I would love to see atleast a few large projects implemented with Haskell/FP before making such tall claims. Large here means few millions of lines of source code and more than 50 engineers working on the same project, a monolith such as a database or a message broker.
2018 (!)
Can a mod please update the title?
100% agree, but I'm hopeful.
US promotes values I am interested in, while Iran promotes what to me seems like a nightmare.
Those who are interested in the Iranian end goal should be supporting Iran, but then I have to wonder why Western people would be promoting the Iranian stance. It does not seem self serving.
Negotiating your salary? Where do you live? I take it, not in Bulgaria or in Easter Europe in general.
> Do they wait for things to stabilize?

Yes. The designers of ATX specification have considered this problem.

https://en.wikipedia.org/wiki/Power_good_signal

On the motherboard power connector, there's a pin called "power good". The controller chip in a properly-designed PSU will determine whether the voltage rail has stabilized and only generates this signal when it did, the motherboard will only attempt to start when the "power good" signal is activated by the power supply, at this point all the inductors are saturated and capacitors are charged, so it's good to go for most boxes. Spinning fans are typically a non-issue. Also, the power circuitry on a modern motherboard has sophisticated control and protection, some can turn itself off or force-reset when significant over/undervoltage is detected.

However, if you have too many HDDs connected it could still be a big problem. When BIOS spins up the disk simultaneously, the inrush current of the motors is HUGE. In a good server setup, the disks have its own dedicated power supply, and a good disk controller will take care of it by not spinning all disks up at the same time. Some BIOS can also do that.
> import { o, h } from 'sinuous';

really recommend you to use proper names instead of single letter variables.
I recently came across https://gail.com/
> Khashoggi was killed inside Saudi embassy, that is, Saudi territory.

That's generally not really how embassies work, but sure.

> Khomeini's grudge was purely ideological.

As in "all islamic religious hardliners in charge of a country hate the US"? The first gulf war couldn't have anything to do with it?
My personal opinion is that tagged template literals are the worst addition to Javascript [1]

As HN user stevebmark said [2]:

--- start quote ---

…we’ve learned not to write code in strings. You’d think this would be a fundamental law of software engineering

…

Writing code, not strings, means you can do everything to it that you can do to code. You can type check code. You can lint it. You can optimize it, compile it, validate it, syntax highlight it, format it with tools like Prettier, tree shake it…

--- end quote ---

[1] https://dmitriid.com/blog/2019/03/tagged-template-literals/

[2] https://news.ycombinator.com/item?id=18511943
Not really enough. Facile witty criticism doesn't add much to the discussion and lowers the level of discourse.

The same thought expressed with enough meat to chew on might provide a worthwhile addition to the conversation but such venears once pierced are often as solid as movie sets.

Think more deeply and take time to share.
i've lost an hour or so recently reading about a more recent event after which there no longer were palm trees in the arctic: https://en.wikipedia.org/wiki/Azolla_event
Fair.

WRT. lemons, I was thinking primarily about the aspect that the most desirable people disappear from these sites first. Sure people have different dating preferences, but they're correlated, not uniformly random. I believe that, while there may not be a total order of people that's the same for everyone, there is some rough order that would be acceptable to most, and the closer to "best" end in that order a person is, the shorter they're likely to stay on a dating site.
Check your inbox :)
At what point should we start to hold ordinary civilians responsible to the actions of their governments?
Let's do a thought experiment: What would happen if you removed the rules? Would anyone in the US actually notice? Would there be plausible deniability because, for example, a reboot has wiped all of the iptables rules?
Yeah I was aware of this. Didn't state it here since I thought most of the people here are intelligent enough to understand what really happened. I saw a few here trying to play the "timeline" game (like you stated about the time frame). To what end?

EDIT - Does not mean you are playing this timeline game. I meant a few others.
This article is just someone’s frustrated rant, poorly written.

Definition of OOP has changed over the years, early on it was a lot of focus on inheritance & polymorphism, but today it is mostly about composition, which is basically what you do in FP as well.

New inventive ideas like Go's & Typescript's interfaces flips the relationship between the caller & the callee. Or Rust's traits where you can expand your existing types with new behavior.

There is criticism about OOP to be said, but using Java as your strawman to invalidate OOP is not really a good argument, it is just one implementation of many.

Edit: removed the word dynamically from description about Rust traits.