Git Visualisation with Git revision tree

There are many tools that help you visualise a git repo, like gitk, gitg, git log. But when recently I was looking in to a project that got very complex git branching stuctures, none of this could visually illustrate a branching graph. Something like revision tree in SVN or Clearcase. There are few attempts to better visualise a git branching like the GitRevisionTree project from crc8 .

GitRevisionTree is written in .Net, was not readily compiling on Linux (ubuntu). So I forked it and ported it to linux and added instructions to build it. Until the fork is pulled upstream , you can get the Linux ported version from

sudo apt-get install mono-devel graphviz
git clone
cd GitVersionTree
xbuild /p:Configuration=Release

Its Little tricky file browsing from a .net app on Linux. So Am adding a screenshot as well.

gitrevisiontree select repository
gitrevisiontree select repository

To See a sample visualisation go here

iftop with colours

Recently I was involved in a lot of trouble shooting a complex network flow. Close to 8 iftops keep running on my extended monitors and at time it becomes difficult to differentiate the download and upload bandwidth with one look. So I thought let me top this excellent bandwidth monitor tool from Paul Warren and Chris Lightfoot with colors. here is how it looks.

screenshot of iftop command with colour output
iftop command with colour output

The code is available in github. If you are using ubuntu, you can directly install iftop colour version from this PPA. Basically I have patched on the latest code avaialble for ubuntu 13.10 (Saucy). David Heidelberger has ported it to Gentoo

[Update: 24May2014] updated ppa for ubuntu 14.04 – Trusty Tahr . Git has the latest code.

Battle ground Biryani – A Biryani delivery strategy

Ambur Briyani Bombers
Mission hot as Briyani

Battle ground Biryani – the code name for my new top secret biryani delivery strategy. Mission is to relieve the innocent civilians from the torture of eating less than delicious biryani, whatever type it is. Of all the great biryani avaialble in India like Hyderabadi Biryani, Middle East, Hyderabadi Biryani, Lucknowi (Awadhi) Biryani, Sindhi Biryani, Bombay Biryani, Calcutta Biryani, Ambur Biriyani, Bhatkali Biryani, Memoni biryani, Malabar Biriyani, Dindigul Biriyani, ,Beary biryani, Karachi Beef biryani, Kalyani biryani one hero stands out. The Ambur biryani.

Unlike other biryani where the pieces and rice can be cooked separately and mixed on demand, Ambur or Vaniyambadi biryani is prepared by mixing both and cooking together. Usually it is prepared in huge container in kitchens and sent to the hotels where it is served. Once the container is finished, the hotel cannot serve any more biryanis because it is difficult to make these delicious biryani on demand basis in small kitchen. A typical Ambur biryani can be identified by the spicy thick oily brinjal/egg plant gravy served along with it.

I have spent many years in Bangalore And still have not relished on one good Ambur biryani. The cosmopolitan nature of the city, demand hotel to serve multiple types of biryani, and most hotels themselves don’t know what they end up serving. Try Dum biryani, you might end up with Hyderabadi biryani. Order Mogul biryani, All you get is Arab biryani. Worst some small biryani outlets declare themselves as Ambur biryani or thalapakatti biryani or Dum biryani and serve random crap. And Malabar biryani is technically white rice with chicken meat. Bangaloreans can smell a beer and identify where its malt grew , but sadly can’t judge what kind of biryani they are eating even after gorging half of it. Well enough of the stereo typing. Lets get back to the mission.

The architecture is derived from real time battle ground strategy. I have accomplished many military missions in my real life while playing “Battlefield” and “Call of duty”. With that immense knowledge let me strategize this mission. The attack is coordinated by three step approach viz.
Command center, Mother ship and bombers. Target terrains are the IT tech parks, colleges, exhibitions, Bachelor neighbourhoods. No.Malls are not our target, they are decoy. Nobody comes to malls to eat or shop. Only for Surveillance. You know what I mean.

Command center

Central command unit for all Motherships. Also called as call center takes requests from civilians who needs their pathetic office/college canteen lunch to be bombed. Triangulates the location of the incoming request using google maps and instructs the nearby Mothership.

Mother ship:

Mothership (van or truck) carries sufficient biryani containers required for the mission from the Depot (Kitchen). Motherships are strategically anchored near the Target terrain. Collects and analyses the request for bombing (delivery). Once minimum request is obtained for a building, bombers (two wheeler delivery) with enough bombs(biryani packets) are set off. Diligent officers on board take care of packing the bombs from the containers.


Two wheelers that can navigate enemy terrain (traffic). Covers the last mile. Pilots are responsible for executing COD (Cash on Delivery). Bombers should swiftly complete the bombing mission and return to mothership for refilling supplies and prepare for the next mission. Mother ship can have multiple bombers based on the scale of the mission.

Navy Depot:

Also called as kitchen by some cadres. Quality controlled hygienic preparation of biryani. The taste can be guaranteed because of the centralised production.

Call for Backup:

Not everything can be calculated in War. Sometimes troops might encounter unexpected spike in request for bombing. Typical reasons could be like CEO of a company decided to withdraw work from home benefits, college symposiums or cricket match. In times of stress, Mothership can call for SOS from bombers of nearby Motherships. Or swap its place with other mothership with more resource (biryani). The Command center also receives the SOS call and arranges for necessary backup ships and bombers.

With careful coordination we can bomb a target within 10 minutes of the request. Similar timing precision was achieved in another battle in Italy,famously known as Battle of Pizzas. Based on the situation Navy can be put on alert in the night as well.

Though the strategy is designed for the AB bombers ( Ambur biryani bombers) it can be extended to other types of bombs as well. If you ever want to attempt this Battle I can be your military consultant.

Check airtel 3g balance on Huawei e303c from Ubuntu linux

To check Airtel 3G balance on huawei e303c ubuntu Linux perform the following steps

  1. Install Gsm-ussd. For ubuntu or debian Linux download the deb and for Redhat or RPM based Linux download the rpm binary.
  2. connect your Huawei E303c 3g modem to the computer. if this is the only modem connected , it will create three usb serial devices named ttyUSB0, ttyUSB1, ttyUSB2. You can verify that by running
    dmesg | grep ttyUSB
  3. Then run the following command from shell.
    sudo gsm-ussd '*123*11#' --no-cleartext -m /dev/ttyUSB2

The output will look like this

Your current 3G Mobile Internet balance for your airtel number are: 1Amt 1421.14 MB&VD Jun 27 2013 ;2Amt 0.00 MB&VD Jun 26 2013.

Issues you might face
For some reason the gsm-ussd tool is not consistent. Sometimes the above command will throw this error even though the Sim is not protected with pin.

ERROR: SIM card is locked, but no PIN to unlock given.
Use "-p "!

However waiting for few seconds and retrying the same command works. Looks like some device lock issue.

Sometimes running this command will disconnect you from internet. And any attempt to reconnect will fail. Sweat not, remove the dongle and connect back and try dialing. It will connect now.


Tools required for meaningful Human computer interaction in Indic Languages

Am trying to consolidate all the different type of language and interaction tools required to make computer better at understanding and interacting in human languages. I have captured it as a mind map in Xmind . This will be a living document and welcome any suggestions on tools / technologies that I have missed.

Interestingly most of the technologies like nlp, speech recognition and speech translation are still at very nascent stage. But sadly there is hardly any research being done for Indian / Indic languages like Hindi , Tamil etc. some technologies are relevant to only Indic languages for example Symbol translation. Languages like Tamil owing to its ancient nature, have different scripts at different stages of its evolution , namely Brahmi-tamil script, vateluthu (வட்டெழுத்து), modern script. Symbol translators convert a text from ancient script to modern script of the same language.