Learning JavaScript – my experience and advice

“Since I’ve mentioned a few times that I just learned JavaScript over the last few months, a bunch of people have emailed to ask what I used and recommend to learn it. So here’s my experience and best advice for 2013.

NOTE: I wanted to really learn JavaScript – not shortcuts, quick tricks, or meta-tools that keep me from having to learn JavaScript. I want to learn it, get it, read it, understand it, and memorize it, so that I can understand all the other cool things written in JavaScript for years to come.

First – a bunch of people will tell you to get JavaScript: The Good Parts – by Douglas Crockford. But when I started reading it, it was so dense and succinct that I had no idea what it was talking about!

You know when an expert is talking about their field, and don’t know how to simplify it for just anyone? Well, this book felt like it’d be perfect for someone who’s been programming for 20 years in C, Java, and C++, and just needs a quick overview of what they should know about JavaScript…”


An Introduction to Node’s New Streams

“Recently, there’s been a lot of commotion on twitter and in #node.js about the new streams2 API. The official stream docs leave a lot to be desired, which has lead to general confusion. That’s too bad, because using new streams can really simplify your code once you understand how they work. Let me take you there…

If you’ve never used node streams before, I highly recommend you read Max Ogden’s introduction. For the lazy: a stream pipes data from a “source” to a “sink” without reading the entire dataset into memory all at once. (Think unix pipe, but for node.)…”


Richard Feynman on Hypnosis

“More and more we see an intersection between science and hypnosis. Following is physicst Richard Feynman on hypnosis, which is great reading for anyone interested in understanding what being hypnotized is like.  This is excerpted directly from page 67 of his autobiography “Surely You’re Joking, Mr. Feynman!”

As it turns out, curious, brilliant minds like to see what hypnosis is all about.


Python Realtime

“I had interview for the Flask book recently and some questions were related to realtime functionality – how it works, how to integrate realtime portion with conventional WSGI applications, how to structure application code and so on.

We used Google Hangouts and it was supposed to record interview, but it failed. So, I decided to write elaborate blog post instead, in which I will try to cover basics, give short introduction into asynchronous programming in Python, etc…”


Jepsen: Testing the Partition Tolerance of PostgreSQL, Redis, MongoDB and Riak

“Distributed systems are characterized by exchanging state over high-latency or unreliable links. The system must be robust to both node and network failure if it is to operate reliably–however, not all systems satisfy the safety invariants we’d like. In this article, we’ll explore some of the design considerations of distributed databases, and how they respond to network partitions.

IP networks may arbitrarily drop, delay, reorder, or duplicate messages send between nodes–so many distributed systems use TCP to prevent reordered and duplicate messages. However, TCP/IP is still fundamentally asynchronous: the network may arbitrarily delay messages, and connections may drop at any time. Moreover, failure detection is unreliable: it may be impossible to determine whether a node has died, the network connection has dropped, or things are just slower than expected…”