Programming

Fast Fourier Transform
Lets the user draw an arbitrary time domain signal on a graphics surface. On every update of the time domain signal, the program calculates its FFT and draws it. It also draws the reconstructed signal with a certain cutoff specified by the user.
Universe
An Interactive 3D simulation of the Solar System and the Galaxy. It especially intends to show the various phenomenon related to the orbital mechanics of the earth and the moon.
Antenna Radiation pattern plotter
Plots perspective projection of radiation pattern for antennas like Long wire resonant antenna, Broad side array and End fire array.
Electron bunching in a two cavity Klystron Amplifier
Shows bunching of electrons in the drift space due to the RF signal applied to the buncher cavity.
Derivative and Integration
Explains the concept of Derivative and Integration graphically. Given a function, the program can plot the its derivative and integral.
Bash script to resize images in a directory
This bash script resizes all the jpg images in a given directory to fit in the size of 1024x768 maintaining the original aspect ratio of the image.
Tetris, the brick game
The classical brick game

A Brief History of my Programming life

The first language I learnt was GW-BASIC in the 8th grade. I did not have a PC at that time. In May 1998, after completing my Diploma in Industrial Electronics, my father got me a PC and then the real programming "Matrix" began for me. I studied C in 1998. In 1999, I studied C++, initially from the book by Robert Lafore & later, in 2001, from the two volumes of "Thinking in C++" by Bruce Eckel. I did not just read the books, but experimented with the language as I read. Good programming, I believe, is self taught. In 2000, I learnt Java, since my final year degree project was in Java. In 2001, I switched to programming on the GNU/Linux platform and have been there (more or less) ever since then.

I used emacs for program editing for a few years. I used to love it. :-) But after heavy use of emacs, my fingers, especially the pinky, used to hurt due to the heavy use of the 'Ctrl' key in almost every command of emacs! These days I am a vim fan. But for large projects, I use Netbeans which I think is quite a decent IDE. Like its said, "All IDEs suck, this one just sucks less"!

Initially for a few years, I used Mesa (the free implementation of OpenGL), GLUT and SDL (Simple Direct Media Layer) for graphics programming stuff. These days I am using GTK+ for UI & GtkGLExt widget for OpenGL/visualization/drawing stuff. It also makes programs portable to be run on Windows and other OSes. A while ago, I also used Qt.

As of Sept 2008, its been more than 10 years since I first started programming and hence have a considerable collection of small and medium sized programs. I had developed a small library for orthographic and perspective projection of points, hidden point removal and shadow calculations. I had done the calculations independently without referring to any book of computer graphics, only referred books on solid geometry and math. That was in September 1999. Here are some of my programs available for download and some of them would become available for download some time later.