I've been associated with Open Source/Free software for several years. I use Debian GNU/Linux and think it is an excellent distribution. Check my Linux page for more details.
In 1998, Arun Krishnaswamy and I informally started the Indian Linux Users Group Chennai chapter(ILUGC) I was coordinator of this LUG for four years. I met a lot of interesting people and learned a lot.
Software packages
In my spare time I develop some free software. My contributing code to the Open Source community is a means to give back to a community that has given me so much wonderful software. Here are some free software packages authored by yours truly:
MayaVi -- MayaVi is a powerful scientific data visualizer that is written in 100% pure Python and uses VTK. You might want to read an article on MayaVi and its history on the Python success stories page.
TVTK -- TVTK is an open source and Python friendly wrapper around the popular VTK visualization and graphics library. TVTK development has been graciously funded by Enthought Inc.
MayaVi2 -- Mayavi2 (M2) is the next generation of Mayavi and is part of the Enthought Tool Suite. M2 is an Envisage plugin which makes it easy to embed into applications using the Enthought framework. Here is a screenshot of Mayavi2 in action showing a transparent iso-surface, velocity vectors and streamlines:
Ygl_script (Last updated: Mar. 7, 2008): This provides Python, Perl and Tcl bindings for the Ygl library along with a simple wrapper class that allows one to do a rubber-band zoom using the mouse. Ygl is a graphical toolkit that emulates the 2D routines of SGI's GL, on X11. Ygl_script was developed using SWIG (Simplified Interface and Wrapper Generator). Read the README for instructions on how to compile and use Ygl_script. You can use this to make other SWIG supported language bindings too. The packaging at this point is primitive -- you have to edit the Makefile to suit your setup and build it. However the package is extremely simple so you should not really have much difficulty with it. I have updated it to work under Debian Woody. It also comes bundled with a pretty powerful plotting module for Python called plot.py. Email me if you have problems.
LaTeX class for dissertations submitted to IIT-M -- This tarball provides a LaTeX class along with a simple template thesis and synopsis. These can be used to easily write a thesis (or synopsis) suitable for submission at IIT-Madras. The class provides options to format PhD, MS, M.Tech. and B.Tech. thesis. It also allows one to write a synopsis using the same class file. Also provided is a BIBTeX style file that formats all bibliography entries as per the IITM format.
Software development
I've also helped a little with the development of a few Open Source packages.
VTK -- The visualization toolkit is a popular, powerful 3D visualization, graphics and imaging library. I have been making small contributions to VTK for several years now.
Enthought Tool Suite -- I've brought to the Enthought tool suite, TVTK and Mayavi2. I've also helped with testing, reporting and fixing bugs under Linux.
SciPy -- The SciPy project aims to bring powerful scientific computing libraries to Python. In the past I've helped a little with the development of SciPy. Of late I am too busy with my other software packages to do much SciPy development. My performance python article seems somewhat popular though.
Miscellaneous Python code
Python is a remarkably cool scripting language. There is very little you can't do with Python. There is enough information about Python on the net, so I won't bore you with more details.
Here are some scripts I've written that might be of interest to the general public (note though that these are quite dated).
doxy2swig.py -- Converts Doxygen generated XML files into a file containing docstrings that can be used by SWIG-1.3.x. Note that you need to get SWIG version >= 1.3.23 or use Robin Dunn's docstring patch to be able to use the resulting output in SWIG.
MailMsg.py -- A simple module that makes it easy to send MIME email messages (with attachments) from Python.
cartoons.py -- Downloads cartoons from various sites and mails it to you. It requires the MailMsg.py module.
dp.py -- This module is a trivial data file parser. It allows one to create commented text data files and be able to read them from Python. I find this remarkably useful to process text data produced from some of my other code. The implementation is pretty lousy but works.
dwnld.py -- A bunch of simple utlility functions that let me download stuff off the net. Especially useful when I need to download a whole bunch of files off a web page. I find this more convenient and flexible than using wget etc.
trace.py -- Implements a function tracer class that can be used to print the call graph of any Python function. Can be very useful when debugging. A unit test for this is also available as test_trace.py.
wxcd.py -- A simple CD player using wxPython and cdcd.