2018 in review

2018 has been an amazing year for me. I moved to San Diego, been working and traveling in both California and Arizona; contributed to…

Concurrency from real world to Node.js

Recently I had an interesting conversation with a cool guy named Chris, where he asked if I can explain how Node.js works to some…

Using Pascal's triangle for dynamic programming problem

Dynamic programming might be the most interesting approach in computer science with a clean and elegant solution. The general idea is to…

Making zshell load faster on start

I spent two hours for shortening my zsh’s awful time. After a quite bit of researching on both zshell and some related plugins, I found the…

Tree Traverses by Javascript

Last week, I was asked by an interviewer by tree traverse with both recursion and iteration. Though I had done recursion on that topic, it…

Fisher–Yates shuffle algorithm in Javascript and Go

Fisher-Yates shuffle algorithm is a classic shuffling algorithm with great performance and mathematical correctness. Here is two…

setTimeOut works as defer in Go

It all comes to the point of executing something else after done doing the current thing.

Finding Closure in Chrome developer tools

Chrome is amazing, and provides closure scope variable for a better debugging experience.In console with the following codes, the obj…

Merge sort in Javascript ES6

Using top-down pattern

For in is not good for array looping with index

I am having a different result from two simple looping approach.and The problem came from a bad use of for in for array looping with the…