Friday, September 23, 2005

What have I been upto?

I feel the need to explain the lack of recent posts on my blog. Contrary to the usual reason that I used to have (shortage of ideas), I have too many ideas to share this time :-). I am trying to put them all together and will try to list one of them here. I must warn you that they are not drastically new, but they are new for me (in terms of the investment of time and thought into the matter). This idea is just of the top of my head, I have not researched too much into this. In Parallel, I have other thoughts spinning in my mind and keeping me occupied.

Let me start explaining my thought with a simple scenario

Signal Sharing

Lets say, I design an electrical circuit and I want to troubleshoot some part of my circuit. The obvious thing would be to go grab an oscilloscope to debug. I power up the circuit and see the waveform between any two points. The interesting thing to note here is that due to the physical properties of electrons, it is ok for us to have some load in parallel with the working circuit.

Is it possible to do something similar in computing? Can we extract data without impacting the program that is being run? The answer is "yes". I am aware of some techniques of achieving this.

  1. The first is to use a hardware trace to extract data from registers and memory.
  2. There is a project called dprobes, that does something similar to what I discuss here, but I am not sure of the exact implementation methodology.

I am wondering if there is any other mechanism of doing this using the existing resources on the system? This problem can be restated as -- Can be find ways and means of applying physical laws to software to solve some of our development and debugging issues?


NGM said...

One of the solutions is dynamically weave debugging code with your code at runtime, This is possible with langauges such as C# and Java which traget a virtual machine.

Balbir Singh said...

I am not aware of weave debugging, I must research it further

Dynamic programming for the binomial coefficient

More fun things, this time with some visualisation of what happens when memoisation is used and what happens when we don't. I don'...