Divergent Color

Color Usage In Data Analysis

Data Visualization is an integral part of Data Science and Data Analysis. It is a way of beautifully presenting information rather than using traditional spreadsheets and reports.

Humans, by nature, can more easily process information when provided with beautiful visualization as our brains are designed this way. By the use of right visualization, we can group chunks of data into categories, highlight areas that need our attention, or show the progressive growth/decay of our products.

More importantly, as David McCandless describes in his famous Ted Talk “The Beauty Of Data Visualization”, you start to see patterns and connections between numbers which would otherwise be scattered across multiple reports with the help of data visualization.

Now, the most important aspect of Data Visualization is of course the use of colors. Most importantly, good colors that fit the context of your analysis. Without the right choice of colors, your visualization could turn into nasty looking color eruptions.

In this post I will talk about choosing the right kind of colors for data visualization purpose and I will do so by taking help from a Color Brewer package used in R for data analysis.

R Color Brewer

All color choices from Color Brewer

Typically, color usage can be categorized into three different types based on our data analysis needs.

1) Sequential: When you want to show growth or increase in something, you should pick sequential color scheme. Basically, this relates to sequentially ordered numbers and so it can be used to show progression from very small to the very big. In the picture above, the first section of colors relate to Sequential usage. You see they just get darker and darker starting with lighter values.

Sequential Color Usage

Sequential Color Usage

2) Qualitative: When you want to show the different variety of something without giving any emphasize to the numbers behind them, you should pick qualitative color scheme. These are essentially used to show different categories. So, if you have a bunch of different political parties, you might just show each one of them with different colors. Or if you want to show a different countries in a map or different species of animals, you would use different colors. The colors here are usually of the same light/dark values.

Qualitative Color

3) Divergent: Finally, when you want to show two extreme values in your data, you should pick divergent color scheme. This scheme has very light shade in the middle, and then they get darker and darker to different colors going out each side. That’s a way of showing high and low values on something. The highs and the lows and the neutrals are easily visualized here.

Divergent Color

That’s the basics of picking the right colors for data visualization as per the context of data analysis. I hope it helps you to create beautiful visualizations in your reports!


Becoming An Indie Game Developer From A Programmer Background

As Wikipedia defines it,

Independent video game development is the video game development process of creating indie games; these are video games, commonly created by individual or small teams of video game developers and usually without significant financial support of a video game publisher or other outside source.”

While both game development and regular software development share a few things in common, the differences weigh a lot more.

Unlike a software, a game is a mix of many other components besides regular programming logic. Graphics, sound and animation play vital roles in any game and these are not the objects of regular interactions for a software programmer. It takes years and years to become masters of these arts in themselves. Plus a game requires advanced knowledge of Math and Newtonian Physics!

So it’s not an easy switch from software development to game development.

Here’s a very good read on Quora on this topic:


As you can read from the answers on Quora, there are some people who have “moderately” successfully managed to jump into indie game development coming from programming background.

While revenue wise, the first few years do not look as good as the regular full-time software development jobs, if someone keeps at it for a long time, there could be a brighter future.

If all goes well, as Joe Cassavaugh dreams,  maybe someday indie game developers could stop being a one-man-shop and turn their games into a game like Clash Royale that generate daily revenues of $1,992,870.

Freelance Developers Now Earn Through Writing

Since popular freelancing sites are overrated, today I would like to share with you guys one another way to generate extra income.

Freelance Writing!

Get paid to write articles and tutorials.

There are tons of sites on the internet that are craving for excellent content to be published on their sites.

Writers In Charge lists 110 such sites for freelancer writers. These sites pay anywhere between 50 to 300 Dollars per article which I believe  is way way better than many of the freelancing jobs where developers have to battle among one another to get paid in nuts like 5 and 10 dollars.

Here I would like to list some sites which are excellent platforms specifically for Developers/Designers to write and get published.


You can submit articles and tutorials about any programming language. I have seen people write about Javascript frameworks, .NET, SQL, WordPress and Game Development and many other topics.

Even I have written few articles for them!

You’ll be paid $100 for a quick tip tutorial and $250 for a regular tutorial; if you are a high profile author/educator, you could earn more.

Smashing Magazine

Based in Freiburg, Germany, Smashing Magazine works with writers from all over the world.They accept articles about web development and web design, and they would prefer a rough draft of your article if you have it already.

Again developers from many different backgrounds can write and publish their articles here. Smashing Magazine even publishes e-book where your article could get published!


SitePoint pays $150 for articles and $200 for tutorials and are even willing to pay more quality posts. They focus articles mainly on HTML, CSS and Javascript technologies. But they seem to have posts on mobile development and even Entrepreneurship topics so I guess they take any good topic as their content to publish.

Developer Tutorials

You can submit articles about anything related to design, programming, marketing, management and business tips. They have a preference for list articles and prefer tutorials to be at least 1,000 words.


Codingsight is a community platform created and maintained by Devart.They accept articles on SQL Server, Azure, MySql and .NET topics from writers. Besides getting payments, writers also get benefit of up to 3 licenses for any Devart product: one license for a published article

So, this is just a small list of platforms where programmers, developers and designers from any background can write and get paid for their content. I am pretty sure there are many more than listed here available on the web.

Please feel free to add any other platforms that you guys know on the comments below.

Upwork Sucks Big Time!

I am not much of a hater and I hardly say these kind of stuff about anyone (specially in public), but this time I have to make an exception.

Yes guys, like the title says:

UPWORK sucks !!

Yes www.upwork.com, the freelancing site for freelancers, just sucks!


Ok the main reason for my hatred is this email that I got from them today:

Hello Sovit,

We are contacting you to let you know we have suspended your access to Upwork indefinitely.

Our decision is based on a careful review and the fact that you have submitted a high number of proposals for jobs on our site without many contracts or earnings. Unfortunately, this means the jobs posted by clients are not a good match for your skills.

I know this news is likely disappointing to you. But our goal at Upwork is to enable freelancers to successfully connect and collaborate with clients who need their skills and expertise. Unfortunately, this means we must part ways with freelancers whose skills are not in demand in our marketplace.

If you want to appeal this decision, you can email us at marketplace-appeals@upwork.com. Please note each case will be manually reviewed by our Trust & Safety team to decide if your account can be reinstated.

Please know we don’t make decisions like these lightly and wish you the best of luck in your future endeavors.


Upwork Trust & Safety

At first when I saw the email, I just took it casually because to me Upwork had already lost its charm because of their high commission rate that they charge with Freelancers and almost close to impossible possibility of landing a job there because of the overly crowded competition.

But as I thought about the absurdity of their reason and unprofessional action taken from their side I just couldn’t take it.

First of all, Upwork has never stated any such policies regarding account getting suspended/deactivated. I have been using Upwork for over a year now and I haven’t seen any Disclaimers like this one.

If there were policies like this where too many proposals could lead to user being kicked out from Upwork, why did they have maximum number of allowed proposals to be 30 for a month? Does it make sense?

I mean on one hand they give freelancers to apply up to maximum of 30 jobs and on the other hand if they do, they get kicked out from the site?

Furthermore, given the amount of competition at Upwork to get any single project, freelancers are bound to apply to more than one project at once. Now if they aren’t lucky enough they are all surely to get their accounts deactivated isn’t it?

You don’t trust me?

Well, either you have never been to Upwork or you are probably the CEO at Upwork.

Anyways, why don’t you go ahead and read the comments from 449 other Freelancers (this number is as of today and probably is growing exponentially every minute) who are simply pissed with Upwork then you will know it for yourself. Here’s a link to a post by someone who completely agrees with me and have similar thoughts about Upwork and also have a growing number of complaints on the comments section for Upwork.


UPWORK sucks !!

And they better authorize me the payments for the work that I previously done at Upwork which I haven’t cashed yet.

Wonderful Opportunity for Software Engineers around the world

Do I want it?

Things to consider before adopting/neglecting a new technology.

– What is this thing? Or in other words, what can it do for me?

– Do I have any system already existing that is performing the same task as this new thing?

– Is it really better than what I have?

– Can I afford it? Not just in terms of money but also I wonder if I need to break up my existing system in order to implement this new technology.

– Do I want it?

– What is the best way to use this technology if I want it?


Roles and Responsibilities of a Project Manager

-) Project Manager is responsible for developing, in conjunction with the Project Sponsor, a definition of the project.

  • Understanding business needs and gathering requirements
  • Identifying risks during development prior to development start phase
  • Creating/maintaining a detailed project plan

-) The Project Manager then ensures that the project is delivered on time, to budget and to the required quality standard (within agreed specifications).

  • Ensure proper funding
  • Ensure proper resources hired
  • Create time schedules and estimation

-) The Project Manager is also responsible for managing the work of consultants, allocating and utilizing resources in an efficient manner and maintaining a co-operative, motivated and successful team.

  • Monitor Progress
  • Managing risks and issues during development
  • Managing training if required
-) Co-ordinate with end users and team
  • Report progress to sponsors constantly
  • Status reports
  • Manage training for end user

Affiliate Marketing

I know this is not a new topic in today’s world but despite the fame of this idea, I hadn’t really looked into the details of how things work in this domain until now. I had been seeing a lot of posts/sites/articles all around the internet where people claim to be making this much money (like thousands of dollars and even millions of dollars) just using their blogs and sites. I always had a doubt whether this was true.

But recently, I came across a guy, a friend of friend of mine who is really doing this business. A real person and not just a thread on the internet! Well, he doesn’t claim to be making a lot of money like Charles NGO does (https://www.youtube.com/watch?v=PqqMtvgKzjA), but nevertheless, from what he says, he is making quite a lot (as compared to what I am earning doing a full time job as a programmer).

So, this aroused in me a curiosity whether I too could get into Affiliate Marketing and earn some extra bucks:).

So yesterday I started looking into this topic, read a few articles, watched a few videos and came to this conclusion: It is definitely possible to for me or anyone like me to start making money using Affiliate Programs.

From what I have understood, the things that one would require to start this program are:

1) Signing up with Affiliate Program: This is basically the company that will pay you money for promoting your company. So, what type of company would you promote? Basically it is advised that you promote companies of the domain that you are familiar with so that it would be easier for you to write about it. After thinking for a while about what things could I promote, I came up with this topic: “Guitars”. Since I have been playing music for about hmm almost 10 years, I have a pretty good library of this domain build up in my head. Then I googled if affiliate programs exist in this domain and VOILA! Lots of results!

2) A Good Working Site: This is a place where you would be promoting other businesses. It’s very easy to set up blogs these days (both free which are provided by blogger/wordpress or in a domain of your own). What is important here is that you got be able to create a lot of good contents. Things that would draw people to your site. Now you might think this is not that difficult right? Like you would say I can easily come up with contents with topics like:

a) acoustic fingerstyle or electric guitar?

b) how to start learning guitar?

c) know your playing styles
-> different styles
-> popular musicians in each styles
etc. etc.

Well, I am not saying these are bad ideas but one must understand that people have been doing this and writing about similar topics since 2002 (at least 2002 because I found a site that claims so):
The quality of the content in the sites like mentioned above and below are also quite good.
Other similar sites:





I am not sure if all of these sites are involved with Affiliate Programs but still they already do have contents that you might think of writing about.
Please keep in mind that I am not mentioning these facts as statements of discouragement but only to bring to light that good content is very important to bring visitors to your site.

3) A paypal account: This is where you get your money collected, where all the good things happen.

Once you have these geared up, you are ready to start your business in the world of Affiliate Marketing.

2 important things to keep in mind before jumping into development:

1) Understand their requirement completely.

 Maybe a simple desktop application or MS-ACCESS data application is what your client needs. Now if you design a hi-fi web application, something that is responsive and mobile friendly, built with superb grids, making ajax calls and what not, imagine all the development time and development cost that you are wasting in this situation.

What is the purpose of this application? Or in other words, what does the client plan to do with data in the database?  Who is going to be using it? Which device will be running the application?

The answers to these questions will help you determine how you should design the application.

2) Confirm with the client what they will be getting.

Once you have understood their requirements and come up with a design for their needs, present your proposed solution to the client. Make them clear about what they are getting at the end of the development. Now depending upon how literate the client is regarding software and its development, you might have to be explicit/implicit in your explanations here. But keep in mind this is single most important thing that you will have to keep in mind.

Imagine giving a rough idea of what you will be developing in the beginning and then working on your development. You complete the whole project and bring it happily to the client.
The client looks at it and says, “This is ok but what we need is …“.

You then realize what you have is completely different from what they need. Poles apart. All those happy thoughts of project being completed fade away and you are confronted with another long development period. On top of that, all current development is going to waste!

Even during the development phase, remove assumptions from your end as much as you can. Propose your assumptions before turning them into hard code.