Posts by Nirupam Biswas

I am not the one who goes out a lot, but likes to know about the outside a lot. Likes to make friends, well have lots of them, fortunately. Loves programming, well ‘am still learning.

Calculating Amortisation Schedule of your loans

Be it home loan, car loan or any other loans; they all have same style of calculation. These calculations are non-trivial and it becomes more complicated if you are going to make some prepayments.

To make it all too easy I have built an app to do all the hard work for you. You will get insight into how much interest money you are really paying on your “low interest” rate loans, and how a small repayment early can save you big money. Also it gives you visibility into exactly how much interest vs principal you are repaying on your each EMI.

If you are new to this then the last statement might not be very clear to you. Each month you pay a fixed amount as EMI (Equated Monthly Instalments), however, each of those EMIs pay off part of the principal amount (the loan amount you borrowed) and part of the overall interest amount. The interesting thing is that percentage principal and percentage interest amount you pay in each EMI is not fixed. Towards the start of loan period the interest part is more and the principal part is less, as the loan progresses their ratio gradually progressively approaches 1:1 near the mid of your loan tenure then it flips and your principal ratio becomes more than your interest. Eventually it is only principal which is left; at which point the loan is fully repaid.

That is why making lump sum prepayments towards end of loan tenure is not too beneficial as you are only repaying the principal which anyway you need to repay. Where you can save on, is the interest part. Always keep in mind the amount of interest you are paying is directly proportional to the amount you loaned and the time you are taking to return that amount.

Play with different values in the calculator below and notice the pattern in the graph.

Good old coding days

Today I noticed a Facebook post from Ubuntu.

It took me back to my 6th-8th grade school days. These kinds of interesting games with such graphics made me want to immediately code them on my own with my own little spin. They were hugely satisfying. At that time I did not own a computer at home so I would take a notebook and write pages after pages of codes. Then I would coax by dad to get access to computer at his office. His office had only one computer and that too only in my dad’s boss’ cabin. His boss was the head of the office.

Once I got the access to the computer, usually on off days, I would copy all the codes from my notebook to the computer and save it on my floppy disks (yup floppy disks). This would go on for few turns as computer time was limited. Then I would get the chance to finally test the codes.

There was some kind of charm to it and they got me real high.

Now I develop web based applications for a living. I am a full stack developer, in layman terms I build from the engines all the way to seat covers of a car. It has its high moments but I still feel I have and always have had an itch to create games.

Fix very low call volume on OnePlus 3

I recently faced this issue after a recent update on my OnePlus 3. The guide at – is pretty good. However, the “Safe Mode” test failed for me, then next steps was clean with toothbrush.

I was very much convinced that my ear piece was pretty clean and anyway I wiped it with cloth many times and there was no visible dirt. However, when I took closeup picture of the earpiece I noticed that the grill mesh was very very small. And it seemed like maybe those tiny holes in the grill have been plugged by microscopic dirt.

Checkout the grill closeup below (this is after cleaning):-

I didn’t have a toothbrush with fine enough bristles. So instead I used a cotton swab, dipped in nail polish remover. I rubbed with that couple of times and presto, the low volume issue is fixed!

TIP: You need to tilt the handset sideways against the sunlight (as shown in the pic above) to be able to see the grill holes. If they look dark then the hole is open, else maybe they are plugged.

Wifi STB Remote+ (JAVA) for laptop and desktops

My Android App Wifi STB Remote+, which works as a remote for TataSky+ HD Settop boxes, now has a laptop/desktop counterpart.

Wifi STB Remote+ JAVA - Main screen

Wifi STB Remote+ JAVA – Main screen

Wifi STB Remote+ JAVA - All channels screen

Wifi STB Remote+ JAVA – All channels screen

This application is built over Java and packaged as a Jar file. (Download link below.) So, Java (JRE 8 or JDK 8) needs to be installed on the computer where you want to run this.

Please note this is an experimental application. Unlike its Android counterpart this application is not that chatty and articulate about the issues it faces while making connection to the STB (Set Top Box).

To start this app usually just double clicking on it should work. If that doesn’t work then use then you need to open command prompt and use cd to goto the directory where you have kept this app then use the command – java -jar WifiStbRemotePlus.jar.

To use the app make sure your computer is connected to the same Wifi as the STB. Then click on “Connect Device”. When the connection is successful then you will notice a “Connected” message. If you keep on seeing “Connecting…” message for a long time then that means something is not right and it is unable to reach to the STB. In that case fix the issue and click “Connect Device” again. Note unlike the Android app this app does not let you choose the STB. It just finds the STB and when it finds it simply connects to it.

Download WifiStbRemotePlus jar file

Displaying a DOM while dragging

First check out the demo below.

See the Pen EKeVXZ by Nirupam (@applegrew) on CodePen.

There are no drop targets so you won’t be able to drop it anywhere.

Code for this directive can be seen on

The basic trick applied by agDragDom, is setting a one pixel transparent gif as the drag image. Since the drag image is set based on how the image “looks” on the webpage, it has to be added to the document and should be visible. However, since it transparent and have only one pixel dimension, it remains hidden in plain sight.

The second trick was to clone the DOM being dragged and absolutely position the cloned DOM, such that it is always at a particular location with respect to the drag pointer location. If you want an effect like drag to move, and want that it should feel like the user is moving the actual DOM, then on dragstart, hide the actual DOM after cloning it.

However, as is evident from the directive code the trick is not straight forward to implement. This code works well on Chrome. On Firefox it has trouble animating drag over element which does not bubble up the dragover event. It is not tested on any other browsers as of now.

Facebook’s evil Free Basics

It is hard to appreciate the evil in FB’s “Free Basic”. The simple facts.

If and when “Free Basics” becomes very popular, which in all likelihood it will, if government does not ban it, then people will mostly probably stop renewing their mobile data plans. That means they will be able to access only “basic” sites when on the go. If tomorrow a startup creates a competing social network – Coolbook, there is no chance, no matter how good it is, Facebook will allow it on its “Free Basics”. So that means a lot and lot of users who are now already used to “Free Basics” will rarely access that site, causing it to shutdown due to poor response, even if few people like us want to use it.

So, if majority supports “Free Basics” we are basically screwed since that will make Mark and FB to become our country’s internet gatekeeper; even if the minority does not like it. This is such an evil but genius scheme.

However, there is still slim sign of hope. In India we are very demanding customers, even when freeloading. When “Free Basics” takes off people are going to use it real heavily, and due to the sheer volume it will inevitably result into slowdown, and public outcry, giving it the much needed negative publicity.

Needless to say, all and everyone should oppose this. Do not bank on the small hope. Take action and goto