HNHacker News
TopNewBestAskShowJobs

omazurov

178 karma · joined August 11, 2017

submissionscomments
omazurov··on Landmark computer science proof cascades through physics and math
> Why not just imagine Alice tells Bob how she's going to choose what to write in the boxes? That works 100% of the time too.

No, it does not. Let’s suppose Alice’s pre-negotiated (or predetermined by a seeded PRNG) choices for rows 1..3 are:

(A11 A12 A13)

(A21 A22 A23)

(A31 A32 A33)

And Bob’s choices for columns 1..3 are:

(B11) (B21) (B13)

(B21) (B22) (B23)

(B31) (B32) (B33)

If they are given row 1 and column 1, the intersect should match, i.e. A11 == B11. The same goes for any row and column selection: Aij == Bij. That is not, however, consistent with the requirement that the sum of all numbers for Alice must be an odd number (each row must add up to an odd number and there are 3 rows), and the sum of all numbers for Bob must be an even number (each column must add up to an even number and the sum of three even numbers is even). So, that’s the real catch for the classical setup. And yes, quantum correlation can beat it.

omazurov··on Systems Thinking and Quality
Same thing: greedy algorithms. Mostly imposed by companies "living by algorithms".
omazurov··on Systems Thinking and Quality
> He says, that you should imagine having all cars available in a room and then ask a group of experts to identify the best engine, the best battery, the best transmission, and so on. Afterwards, you take all the parts identified and put them together. While we would expect to get the best car possible (we only use the best parts available), we do not even get an automobile because the parts do not fit.

> This leads Ackoff to the conclusion:

> | The performance of a system depends on how the parts fit, not how they act taken separately.

Isn't it how we hire talent nowadays?

omazurov··on Computer Science vs. Computing Science (1999)
Thank you so much! From the first look it's right on the money.

> Our strategy is to entice smart people to play with programming robust, indefinitely scalable computations by lowering barriers to entry, and as idioms, motifs, and best practices emerge from such explorations, we believe opportunities for wise optimization will arise.

I believe I have unknowingly contributed to that strategy.

omazurov··on Computer Science vs. Computing Science (1999)
> In the early days, John von Neumann has looked at the problem of constructing a reliable computer out of unreliable components but the study stopped as von Neumann died and transistors replaced the unreliable valves. We are now faced with this problem on a global scale and it is not a management problem but a scientific challenge.

Wow, John von Neumann is my man! I need to get more exposure to his intellectual legacy. I couldn't articulate why my POC of parallel computation surviving asynchronous loss of threads [0] would be of any interest (I don't see any practical value in it myself and treat it as a piece of art). I think the man would find more than two words to respond to it.

[0] https://github.com/OlegMazurov/Robusta

omazurov··on Technically, Earth Does Not Orbit Around the Sun (2014)
> Models are a good, helpful tool. They are just not explaining everything, and that on purpose, and as a human we always need to be aware of that models are just models and not reality.

Do we have anything else but models?

omazurov··on A Self-Learning, Modern Computer Science Curriculum
Galois (finite) fields are very much relevant in error correction codes and cryptography. Any time you want to manipulate bytes (or words) as numbers which you can add/subtract and multiply/divide you end up learning about finite fields. In fact, doing CRC or even XOR sums you are already making the first step towards the topic.

A recent problem I needed a solution for: given n blocks of data of equal length generate all possible XOR sums of the blocks in-place (no additional memory). The answer is an irreducible polynomial of degree n with a primitive root over GF(2).

omazurov··on A Short Rebuttal to Searle (1984) [pdf]
Almost 20 years before Searle, a short fictional story by A.Dneprov, "The game", was published in the Soviet pop-science magazine "Knowledge is Power". Not only had it described the essence of the Chinese room setup, it also came to the same conclusion:

> If you, being structural elements of some logical pattern, had no idea of what you were doing, then can we really argue about the ‘thoughts’ of electronic devices made of different parts which are deemed incapable of any thinking even by the most fervent followers of the electronic-brain concept? You know all these parts: radio tubes, semiconductors, magnetic matrixes, etc. I think our game gave us the right answer to the question ‘Can machines think?’ We’ve proven that even the most perfect simulation of machine thinking is not the thinking process itself, which is a higher form of motion of living matter. [1]

[1] A Russian Chinese Room story antedating Searle’s 1980 discussion http://www.hardproblem.ru/en/posts/Events/a-russian-chinese-...

omazurov··on A Gentle Introduction to Erasure Codes (2017)
It turns out there is a simple, though not trivial, conversion from Cauchy to Vandermonde, so all error correction techniques apply.
omazurov··on A Gentle Introduction to Erasure Codes (2017)
According to Wikipedia, PAR1 suffered from:

> The recovery algorithm had a bug, due to a flaw[1] in the academic paper[2] on which it was based.

I remember that the same bug was cited by ZFS[3]. Amazing. Of all algorithm descriptions, one with a bug seems to have been picked up the most. Of course, there is nothing wrong with Vandermonde encoding itself, just don't use that paper any more.

Cauchy is equivalent to Vandermonde, so it should allow for error correction to the same extent but I couldn't find any algorithm description/implementation.

[1] Plank, James S.; Ding, Ying (April 2003). "Note: Correction to the 1997 Tutorial on Reed-Solomon Coding"

[2] Plank, James S. (September 1997). "A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems"

[3] https://github.com/illumos/illumos-gate/blob/master/usr/src/...

omazurov··on A Gentle Introduction to Erasure Codes (2017)
> Cauchy matrices are more foolproof, which is why I started with them.

I always wanted to know but was afraid to ask. I see why people choose Cauchy for encoding: it's simple and fast (more foolproof? - that I don't see). However, Cauchy erasure decoding would always involve matrix inversion, which is not as simple and fast (Hadoop 3.0 is a good example). But what do people do when they want to do error correction after Cauchy encoding?

omazurov··on Concurrency Is Not Parallelism (2013) [video]
Don't confuse individual commands with the operating system, which is highly concurrent. I was very specific in my statement.
omazurov··on Concurrency Is Not Parallelism (2013) [video]
Concurrency = logical simultaneity. Parallelism = physical simultaneity. When the former is mapped to the latter we encounter scalability. Some examples: Unix commands (cp, grep, awk, sort) do not scale on multi-core systems due to total lack of concurrency in their implementation. Quick sort scales worse than merge sort because the latter allows for more concurrency. A parallel program using a barrier between outer loop iterations (f.e. matrix inversion, or computational partial differential equations) won't scale well because barriers are antithetical to concurrency.
omazurov··on Concurrency Glossary
I found only one occurrence of the word task in the document. The entire paradigm of task parallelism is omitted.

The style is heavy. I consider myself skilled in the area but struggled to map wording to my conceptual framework or experience. For a novice, most of the text is probably totally impenetrable. As an example:

> Locking can have coarse- or fine-grained synchronization granularity, where coarse-grained granularity trades concurrency for deterministic execution while fine-grained granularity is more concurrent but less predictable.

That's a property of the program (or the programmer), not locking as such. Fine-grained locking is of course as reliable and predictable as coarse-grained but when an operation involves multiple updates that must appear as atomic (a transactional guarantee, f.e.), coarse-grained locking is straightforward and fine-grained locking is more difficult to get right. There is no way, however, the programmer should accept possibly incorrect updates on the basis that now the program runs faster.

> Declarative concurrency models reduce the need to make trade-offs between concurrency and correctness ...

Now that's a huge statement. How can that trade-off be justified in the first place (it can be!)? Do we really have a need and accept that trade-off with fine-grained locking above?

I would not insist my interpretation is right but that's exactly my point.

omazurov··on The Sharashka Phenomenon (2011)
One would think of the Russian space program...

>As Sergei Korolev was said to have joked, the guards who protected him in his high position as the chief designer of the Soviet space program were probably the same ones who watched over him in the sharashka.

omazurov··on To John Wheeler, the race to explain time was personal
Not so fast :) Your own time would not "come to a halt and disappear", would it? If something travels with you at the same speed it would not get frozen in time. So, "everything that you would be seeing" is a bit too inclusive.
omazurov··on To John Wheeler, the race to explain time was personal
Simulating the Mandelbrot set is also awfully computationally expensive. Unless you know the trick.
omazurov··on To John Wheeler, the race to explain time was personal
> The faster you go, the slower time goes. If you could go as fast as light, you’d see time come to a halt and disappear.

No, you wouldn't. Someone observing you would. Am I getting relativity wrong?

omazurov··on Fountain codes (2005) [pdf]
> However, Reed–Solomon codes have the disadvantage that they are practical only for small K, N, and q: standard implementations of encoding and decoding have a cost of order K(N-􏰀K)log2 N packet operations. Furthermore, with a Reed–Solomon code, as with any block code, one must estimate the erasure probability f and choose the code rate R=K/N before transmission. If we are unlucky and f is larger than expected and the receiver receives fewer than K symbols, what are we to do? We would like a simple way to extend the code on the fly to create a lower-rate (N', K) code. For Reed–Solomon codes, no such on-the-fly method exists.

You don't have to choose the rate before transmission. Reed-Solomon code is equivalent to sampling a K-degree polynomial. You can sample it all you want, i.e. increase N on-the-fly, up to the number of the elements in your field, if finite. Say, you want to broadcast your K blocks to L recipients reliably: after you have sent the K blocks you start sampling the polynomial and sending the redundant blocks. You don't need to decide a priory how many redundant blocks you will send: as soon as the last recipient reports receiving K blocks you are done. GF(2^64) is as good as infinite in that scenario.

omazurov··on My Grandfather Thought He Solved a Cosmic Mystery
> water/wine = x/(1-x)

> wine/water = (1-x)/x

It's symmetrical but not "naturally" uniform. If we consider both quantities as independent and uniformly distributed over [0..1[, then 1:1 ratio becomes much more likely to occur than 1:1000000. I find that approach "the most natural". The probability P(water/wine < 2) is 7/8 in that case.

omazurov··on World's oldest intact shipwreck discovered in Black Sea
I wonder what happened to the previous oldest intact shipwreck discovered by Robert Ballard in Black Sea: http://press.nationalgeographic.com/2003/01/16/black-seas-ol...
omazurov··on Antiwar Movement Spreads Among Tech Workers
I think they are developing means to protect their countries.
omazurov··on Antiwar Movement Spreads Among Tech Workers
And I personally want the smartest people in the industry to work on protecting the civilization from other smart people working on domination as a means of "protecting their country".
omazurov··on Researchers Prove Quantum Computers Are More Powerful Than Classical Computers
https://arxiv.org/abs/1704.00690
omazurov··on Ask HN: What's your favorite elegant/beautiful algorithm?
My favorite algorithm is of course one of my own: a dynamic error correction code which is capable of on-the-fly fixing of errors occurring due to data races in a highly parallel unsynchronized computation. I demonstrated it in the domain of cellular automata, which has non-trivial concurrency topology (dependency DAG) and is Turing complete. Yet, I see little possibility of using it for anything practical. A barren beauty. Sigh.
omazurov··on Why you can have millions of goroutines but only thousands of Java threads
> Supporting truly massive concurrency requires another optimization: Only schedule a thread when you know it can do useful work!

The problem is the scheduler doesn't know when a goroutine can do useful work. It thinks that if a new value arrives to a channel there is a good chance the goroutine will do something useful but that's not the case in general. My favorite example is Game of Life (CA) implemented as a network of goroutines communicating their state changes through channels: you have to collect 8 updates from predecessors to update your state, meaning you'll be scheduled to run 8 times before you finally make a real progress. Not good for scalability.

omazurov··on The Riemann Hypothesis, explained
> [The Euler Product Formula] states that the sum of the zeta function is equal to the product of the reciprocal of one minus the reciprocal of primes to the power s. This astonishing connection laid the foundation for modern prime number theory...

Here is the Euler formula for middle school.

We start with an infinite product of power series for all primes:

(1 + 2 + 2^2 + ... + 2^k + ...) *

(1 + 3 + 3^2 + ... + 3^k + ...) * ...

(1 + p + p^2 + ... + p^k + ...) * ...

Let's open the parentheses in an orderly manner without running into infinity too prematurely (i.e. taking only a finite number of non-unit terms in each product):

1 + 2 + 3 + 2^2 + 5 + 2 * 3 + 7 + 2^3 + 3^2 + 2 * 5 + 11 + 2^2 * 3 + ...

Now, if we apply any completely multiplicative function f(ab) = f(a)f(b) to the terms we get

(1 + f(2) + f(2^2) + ... + f(2^k) + ...) *

(1 + f(3) + f(3^2) + ... + f(3^k) + ...) * ...

(1 + f(p) + f(p^2) + ... + f(p^k) + ...) * ... =

1 + f(2) + f(3) + f(4) + f(5) + f(6) + ...

When f(n) = n^(-s) we get the zeta function on the right and an infinite product of converging sums (s > 1) on the left.

The converging sums S = 1 + p^(-s) + p^(-2s) + ... are of course 1/(1 - p^(-s)) as S = 1 + S * p^(-s).

Voilà,

  1 + 2^(-s) + 3^(-s) + ... = 1/(1 - 2^(-s)) * 1/(1 - 3^(-s)) * ... * 1/(1 - p^(-s)) ...
In case you think the Möbius formula is totally beyond the middle school curriculum ("primitive roots" and stuff):

SUM m(n) * n^(-s) = (1 - 2^(-s))(1 - 3^(-s))(1 - 5^(-s))...(1 - p^(-s))...

(just open the parentheses on the right, that's what middle-schoolers do).

And what happens if we multiply our power series S by 1 - p^(-s)? They cancel each other, so the whole product is 1.

The "astonishing connection" of the Euler formula turns out to be the fundamental theorem of arithmetic in disguise.

omazurov··on Impact of spending time in nature on long-term well-being: study
You'll earn virtual health point. Maybe an extra life even.
omazurov··on PMU counters and profiling basics
For Java you can do better than perf. Sun's Performance Analyzer [1] has had hardware counter based profiling of real Java (not just JIT-compiled code) for more than 10 years. Open source async profiler [2] seems to be doing a decent job on the data collection side, though, doesn't go beyond a basic flame graph for analysis.

[1] https://en.wikipedia.org/wiki/Performance_Analyzer [2] https://github.com/jvm-profiling-tools/async-profiler

omazurov··on Decentralization Dilemma
I think IoT beats wireless routers and I think there is more than one company already trying to take advantage of that opportunity.
← PreviousPage 2 of 3Next →