Messaging in Smalltalk 23 Dec, 2019 Comments

The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.

Alan Kay on Smalltalk Design on squeak-dev list


On Passing Statistical Tests 23 Dec, 2019 Comments

To be brief, a CSRNG should be unbreakable by smart attackers with lots of resources. If a CSRNG does not pass statistical tests, then this means that it can be broken by a chimpanzee. But if it passes the tests, this does in no way prove that it is cryptographically strong; it just means that the chimpanzee will be stumped.

tpornin on {NCC Research](https://research.nccgroup.com/2019/12/19/on-linuxs-random-number-generation/)


Meaning of Impossible 03 Feb, 2019 Comments

After two years of working together, I finally knew for sure what I had long suspected: “Stupid” was just an expression Feynman applied to everyone, including himself, as a way to focus attention on an error so it was never made again.

I also learned that “impossible,” when used by Feynman, did not necessarily mean “unachievable” or “ridiculous.” Sometimes it meant, “Wow! Here is something amazing that contradicts what we would normally expect to be true. This is worth understanding!”

Prof. Paul J. Steinhardt on What Impossible Meant to Feynman.


List Comprehensions in C++ 20 Aug, 2018 Comments List Comprehensions in C++

From Bartosz Milewski’s What Does Haskell Have to Do with C++?: Haskell style list comprehensions of the form

one x = 1
count lst = sum [one x | x <- lst]

can be written in modern C++ like so:

template<class T> struct
one {
    static const int value = 1;
};

template<class... lst> struct
count {
    static const int value = sum<one<lst>::value...>::value;
};

The author calls out the comparison between one<lst>::value... and [one x | x <- lst]. I’ve used packs like this before, but looking at this juxtaposition was a revelation.


Parallels Between Physics and Distributed Systems Concepts 20 Aug, 2018 Comments Parallels Between Physics and Distributed Systems Concepts

The ACM Queue article titled Standing on Distributed Shoulders of Giants was a fascinating read. Some excerpts:

“Two-phase commit is the anti-availability protocol.”

“Computing is like Hubble’s universe…Everything is getting farther away from everything else.”

“Shared memory works great… as long as you don’t share memory.”

This one took a bit of squinting at to make sense. Here, Pat Helland is referring to the fact that there are retries and given we store copies for redundancy, we can only know for certain where the request was processed **OR** that it was successfully completed. In a sense, once you know it was completed, you can back trace where it was done, but that is hindsight.

“In a distributed system, you can know where the work is done or you can know when the work is done but you can’t know both.”

This one’s on eventual consistency:

“While not yet observed, a put does not really exist… it’s likely to exist but you can’t be sure. Only after it is seen by a get will the put really exist.”

The references at the end of the article are also good refreshers on Distributed Systems/Computing.




     
Original design for Tumblr crafted by Prashanth Kamalakanthan.
Adapted for Tumblr & Jekyll by Sai Charan. Customized theme available on Github.

Sai Charan's blog by Sai Charan is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Creative Commons License