Joint plot with Matplotlib

Today I am releasing a simple module to create joint plot with Matplotlib on github. Joint plot is available in the excellent seaborn library but unfortunately it’s not always available on many systems. Recently I needed this functionality, so wrote this simple module with matplotlib.

The functionality is almost similar to seaborn but with limited feature. This has helped me in my work, releasing it in the hope that others might find it useful.

Sample usage:

Import Jointplot

Find the code at this github repository.

The origins of Internet of things

Anywhere you look in the engineering domain, people are talking about IoT (Internet of Things). All OEM’s and service providers to OEM and many start-ups are looking at this new thing.

But is it really new?

It turns out no. Its origin goes back to 1999. Today the focus is new, mostly because of the possibility of using advancing machine learning on the data generated with the sensors.

So if you are interested in IoT, the following short article by Professor Duncan McFarlane should be an interesting read.

Most of you have probably heard the Internet of Things, or the IoT, mentioned but have you ever wondered what it means and where it all began?

Well here’s my version of it:

In 1999, the Auto-ID Centre was founded, which subsequently formed a unique partnership between around 100 international companies and 7 of the world’s leading research Universities, including the MIT and University of Cambridge. Kevin Ashton, Professor Sanjay Sarma and David Brock were the early co-founders and I became involved as European Research Director a year later setting up the European side of things and pushing the industrial research.

The Auto-ID Centre’s aim was to investigate and understand what came next after the barcode – and particularly what an electronic barcode would look like. Sanjay came to see me in Cambridge in March, 2000.

We discussed barcodes and RFID as an electronic replacement and I think my initial comment was that it all seemed a reasonably dull research activity! I was of course later forced to eat my words as the project expanded but also in our research we realised that RFID was actually a solution to a manufacturing control problem we had been trying to resolve – how to establish an Internet connection for parts and products while they were being made.

The focus of the Centre from the beginning was to research ways in which an electronic tag could be put on every single object in the world, allowing each to be uniquely tracked and potentially controlled – and to do so in the most cost effective way. We realised that to make RFID cheap we needed the smallest chip possible – Silicon was/is expensive – and thus we needed to put all stored data in memory elsewhere. The Internet was the obvious place to start, hence the phrase “Internet of Objects” or “Internet of Things” became a clear reference point and the origin of the internet of things that we refer to today. Believe the term “Internet of Things” was in fact coined by Kevin Ashton in 1999 during a presentation he made at P&G.

Read the full article

Which language should I learn for computational science?

 Which language should I learn for computational science? Via this


  1. Start off directly using the numpy library, small scripts, and the ipython interactive shell.
  1. Get more advanced with the help of numerous free books and tutorials.
  1. Get more productive using scipy as a frontend to highly performant numerical routines and matplotlib for visualization
  1. Take advantage of well developed and powerful modules for scientific computing as Krypy, FeNiCS and lots of others
  1. Notice, that the smooth transition between flat and object oriented programming and the inherent modularity of Python make larger projects easy to handle.
  1. Make your code as fast as C or Fortran by simply rewriting critical parts in cython. You can also easily include routines written in Fortran or C.

This paraphrases what I think is the best way to approach a problem in scientific computing. Start with getting a hand on the problem by playing around with toy examples in small scripts. Become more systematic and set up a suite of code. Then make your code work!!! Finally, if necessary, do code optimization. Don’t reinvent the wheel and don’t do premature optimization.

By Jan

This is the exact way I have worked in the past and this is what I recommend to anyone who asks.

Quarterly Results Analysis with Python

Every quarter when results come out, I spend sufficient hours looking at the financial results of the stocks I am tracking to elicit nagging comments from my better half. So developed this simple python script which does the analysis and generates me the PDF which I email to myself to look at during office commute.

The code as always is available at my github page here.

Some sample plots

Intend to update the scripts for other analysis as and when I get some time.

Anybody can become angry 

It’s strange. You read or notice something somewhere and it keeps popping up in various others places from then on.

Same thing is happening with this quote. I heard it in an investor speech two months back and every since it has been popping up in my buffer, feedly and Twitter streams.

So had to pin it here.

Anybody can become angry -that is easy but to be angry with the right person and to the right degree and at the right time and for the right purpose, and in the right way – that is not within everybody’s power and is not easy -Aristotle