29 May 2018
Resources for learning user experience design which will help in delivering beautiful usable products.
Books (in the order to read)
- Design of Everyday things
- Don’t Make Me Think
- About Face: The Essentials of Interaction Design
- Articulating Design Decisions
Blogs
- UX Myths
- Material Design
- Books on UX and UI design
I feel passionate about front-end design and the end goal of this journey is to incorporate design principles in my development.
Read more
08 Jul 2017
If you’re new to JavaScript promises then go through this article JavaScript Promises: an Introduction first.
ES6 Promise basics (optional)
A promise is declared as
const taskPromise = new Promise((resolve, reject) => {
// Do asynchronous task (aka executor)
// if(success) resolve()
// else reject()
});
As soon as you declare a Promise, the executor is executed before the Promise constructor even returns the created object. For example: Try it yourself
Read more
08 May 2017
It’s an integral part of understanding how JS works under the hood. Core runtime JS framework consists of: Runtime Stack, WebAPI, Task Queue
1. Initial Program State: Currently executing function is in stack

Read more
23 Jan 2017
Docker creates lightweight unique virtual machine, called containers, on your machine. These containers differ from the tradition VM like VirtualBox in a way that all containers shares the same host operating system instead of each virtual machine having it’s own operating system.
A container is running instance of docker image.
Task |
Command |
List all containers |
docker ps -a |
List all containers’ ID |
docker ps -a -q |
List all active containers’ name |
docker inspect -f .Name $(docker ps -q) |
List all docker images on current machine |
docker images |
List all docker images ID |
docker images -q |
List all docker volumes |
docker volume ls |
Stop all containers |
docker stop $(docker ps -a -q) |
Delete all dangling volumes |
docker volume rm $(docker volume ls -f dangling=true -q) |
Delete all volumes |
docker volume rm $(docker volume ls -q) |
Delete all docker containers |
docker rm $(docker ps -a -q) |
Delete all dangling images |
docker rmi $(docker images -f dangling=true -q) |
Delete all docker images |
docker rmi $(docker images -q) |
Show docker stats with Container names instead of ID |
docker stats $(docker ps --format=.Names ) |
Copy all files in src directory to dest directory |
docker cp /Users/host/src/. cont1:/home/container/dest |
Create new src directory in dest directory |
docker cp /Users/host/src cont1:/home/container/dest |
Delete all empty directories |
find . -type d -depth -print| xargs rmdir
find . -type d -empty | xargs rmdir |
Create volume if not exists |
docker volume inspect service1-db \|\| docker volume create --name service1-db |
Read more
01 Feb 2016
I’ve a big news to share today. After a successful and rewardful journey with OSIsoft, I’ve moved to Silicon Valley. I had great opportunities to learn and grow at OSI and believe that it’s a unique committed organization with its people being a huge asset.
A quick highlight of my time at OSIsoft
Read more
01 Aug 2015
Background: Object with closure properties
Closure properties can be thought of as a non-persistent property e.g. a web-page with thumbnail of cars and user selects a car with mouse click. Let’s say we have a isSelected
closure property.
Read more
07 Jul 2015
JavaScript is a powerful but infamous language. Why JS is notorious [link: Wat]. Personally, I find data types confusing for someone coming from C#, Java world.
I build a small utility to visualize relationship between different data types and their prototype chain.
JavaScript Type Visualizer: jstype.heroku.com
Read more
22 Jun 2015
This June, I completed my first year at OSIsoft and it’s been a remarkable experience so far. For the past one year, I was not contributing much on my blog rkandhal.com. However, I was working on learning JavaScript, which I now believe is a pretty good language and would be the primary focus of this blog.
It’s time to step back and look what all accomplished in past one year:
Read more
16 Jun 2015
Rules
- Focus on basics first. Instead of learning new *.JS framework, learn JavaScript language.
- Read books. Internet is great, but not everything written on Internet is correct. I prefer to read online once I am good with fundamentals.
- Play with browser developer tools as much as you can.
Recommended books
Read more
27 May 2015
There are three ways to create objects in Javascript.
Object literal: Easiest and cleanest way to create “one” object. However, Somewhat complex to add functions on prototype.
var foo = { name: "default", age: 25 };
Constructor: Use it if you want to create multiple objects of same type and need more control over the prototype chain.
Read more