skip to main content

2016 in review

I have learned from my efforts in years 2012 and 2013 that creating fresh new year resolutions don't often work for various reasons. Not for everybody at the least.

It is then that I have decided that I would write about what I have achieved in that year rather than what I would like to achieve in the next year. Last year has been a good year for me in that regard. I did not have any specific plan coming into 2016.


I had a great opportunity at work to learn d3.js, a JavaScript library for creating web-based interactive charts and visualizations. This is a library that lets you build any kind of visualization from scratch. This means it would give you control of all aspects of your visualization. This is what it makes it so powerful, but it means that initially it would take a good amount of time for the implementation. Thankfully, I was given ample time to learn the basics of d3.

Anecdotally, it took me about two weeks to implement a multi line chart and two more weeks to understand what each line of code was meant for. It would take, at best, an hour or two to get this kind of a chart up and running with HighCharts, another popular JavaScript library for creating interactive charts and visualizations.

Then I was tasked to create a custom chart which somewhat resembled a box plot, but with a lot of interactivity based on user inputs on other parts of the page. The first prototype of this chart took me about three days to create. It was one of the best moments of 2016. Once the prototype was nailed down, for the management and synchronization of data from various sources, I used AngularJs (1x).

This kind of a high is the best thing about programming and I am glad I got introduced to d3 to rediscover it, thanks to my awesome customer at the time.

Learning d3 also helped me understand what SVG is and why it is so awesome. This has also forced me to look deep into Javascript and made me fell in love with the language all over again.

New blog

Though node.js based static generators are all the rage, I chose to a go a different route. Another programming language I use and love is Python. What better an opportunity to use and customize a tool written using that language? So I have evaluated Python based static generators and chose Lektor.

I have gained basic understanding about building responsive interfaces. I have discovered milligram.css in the process.

As outlined in my first post on this blog, I started updating this blog with a few of the desired features.

2017 and ahead

The biggest change I will be making is that I will be taking a short career break to spend more time with my family.

Apart from that, I have a tons of items in my distraction log accumulated from the last couple of years.

Leaflet, React, Aurelia, Gulp, Webpack, Node, WebGL, Typescript, Xamarin, UWP, Android, Pyramid, Phoenix, .NET Core, Vibe.d, C++, Ruby, ES6, Tableau, BI+DWH, ML, Tensorflow, Data Science, Raspberry Pi.

Despite the huge list, I know I will be focused on a few things at the most and that time will be utilized more toward building something useful rather than learning how to do specific things in a particular technology.

Goodbye 2016. Hello 2017!