There are two primary criticisms of this move in this thread:
C1) This is just hurting ordinary Russian citizens and serves no other purpose.
I empathize strongly with the Russians.
But I also empathize with the Ukrainians.
Since Russia has nuclear weapons, the only thing rest of the world can do is impose sanctions.
Sanctions work in the long run, but they take a long time to show effects.
Ukrainians do not have a long time.
All of these moves will cumulatively amplify the unrest among common Russian people,
giving Putin less time to sit back and let his plan go to work.
Will these be enough? Only time can tell.
But ignoring the impact of secondary and tertiary effects
for the primary negative effects is short sighted.
C2) This is just virtue signaling.
Virtue signaling may be a component of this move, but this is business for Cogent.
They make money moving data, and Russian money has lost a lot of its value.
So I am not convinced this is just virtue signaling,
there is definitely a business component.
One theoretical objection to this idea is that distances measured have an accuracy limit of Planck length (1.616e-35 meters). So if your number needs more precision then "just mark" step can't be done.
"cut the ball into 5 pieces" is not the best description.
A better one is:
2a. Split the ball into infinite pieces
2b. Divide the infinite pieces into 5 groups
Lets say you are building an ML model to decide whether to give someone insurance or not.
Lets also assume your past behavior had some bias (say against some group).
Now ML model trained on this past data will likely learn that bias.
Part of modern ML focus is then to understand what bias exists in data, and how can we train models to use the data but somehow counteract that bias.
One point I have read repeatedly is that Julia is aimed at High Performance Computing (HPC).
Another argument I have read repeatedly is how object oriented programming (with its single dispatch) is bad for HPC because of pointer indirections leading to cache misses.
This leads me to conclude Julia will be much worse (than well written C/C++) due to its multiple dispatch.
Performance is the currency which you trade for ease of development, new features, etc.
Ignoring performance comes at a cost to you (server side resources) and your users (device resources). This is why generation after generation devices get more powerful and slower (from user point of view).
It is up to you to find out which point in the performance vs new feature/bugfix tradeoff gives you maximum value.
It is important to acknowledge that this is a conflict between two ethical ideologies: Deontology/Kantian ethics vs Utilitarian ethics.
The Deontological argument is that free speech is good, and any effort to curtail it would lead to a domino effect which will be disastrous.
The Utilitarian argument is that this curtailing of free speech is acceptable as the alternative is causing more harm than good.
Both ideologies have their limitations and criticisms, and there doesn't seem to be any clear winner.
Self contained containers (like singularity) have come up to fill this gap. Since a few years back we have started investing in creating these containers at the end of every project, as it is becoming increasingly hard to depend on dependencies remaining available online indefinitely.
Did you guys get a chance compare with [1]. These seen to be the standard for high-performance not Crypto RNGs.
[1]: https://github.com/DEShawResearch/random123