From Octave
Jump to navigation Jump to search

Amod Mulay's Application

A: An introduction

I am a graduate student at Stony Brook University. I have a master's in Mechanical Engineering and am pursuing a second one in Computer Engineering and my primary research interest is robotics. I speak English, Hindi and Marathi. Quite honestly I wanted to contribute to a FOSS project for some time. I chose Octave because a lot of the work I do requires Matlab and Octave is the one open source alternative which is most compatible with Matlab. Participating in GSoC has the added bonus of getting paid for your work ;).

C: Contact

I usually use the nick "white" on IRC and other public forums. I live in the EST timezone(UTC-5) and will be here all of summer. I am usually more comfortable working at night but don't mind being active during the day(since most of the contributors are more active on IRC during work hours).

E: Coding experience


C/C++ was the first programming language I learnt. Have been using it on and off for various projects for a little more than 6 years. I am fairly comfortable with C/C++ code and am familiar(not an expert/advanced user) with the GNU build system however I don't have any experience working with a large code base.


I have used Matlab for various college projects for the last 5 years. I began using Octave as a Matlab replacement about 2 years ago. The main uses have been for simulation and image processing. I am know most of the similarities and differences between Matlab and Octave.


I learnt python just for fun a few years ago. The only project that I have done using python is for my Computer Networks class. Other than that, I ported a few of my old college projects to python for practice but that's about it. I do like the language and would classify myself as an average user.


Other than the above three I have used some basic javascript & HTML. I am quite familiar with the Mediawiki framework and am one of the site maintainers for the Cyanogenmod wiki. I have used the CGal library for a graphics project. I have briefly dabbled with QT when we were experimenting with various frontend/interface for an embedded project which transmitted data on the serial port. I primarily used Labview for my Master's Thesis.

I am a bit familiar with mercurial(thanks to Jordi) and have submitted a couple of minor patches which fix Texinfo5 compatibility issues in Octave.

F: Feeling fine

  • IRC/mailing lists: familiar with using IRC.(IRC name: white) I have also used (subscribed and posted)the octave-maintainers list
  • Mercurial: new to using mercurial but I have the hang of it(thanks to Jordi)
  • Mediawiki: quite familiar with mediawiki including (slightly) advanced features such as templates
  • Average working knowledge of make and gcc. Haven't used gdb much.
  • I work much better in a group (of 2/3 than individually) and prefer to have regular (constructive) feedback. Since both of those are inherently a part of OSS I should be quite happy to continue contributing to Octave after GSoC during most of my free time.

O: Only out of interest

I guess I have covered most of the topics above. My two main gripes with octave are:

  • Not all of the image processing built-in functions are not supported including some of the more commonly used ones like the weiner filter
  • Octave is much slower than Matlab especially for non-vectorized code (which have many loops)

P: Prerequisites

My primary OS is linux (Arch linux distro if that matters). I also have access to Windows 7 professional. I should have access to the internet 24x7 unless I am on the road/travelling (which is a remote possibility). I have two computers (laptop + Desktop) and have complete access to them 24x7.

S: Self-assessment

  • I am quite capable of working alone for extended periods but I prefer working in small groups and periodic review/criticism. Also working alone(in a void) for a long time tends to get boring.
  • I prefer to have a sort of holistic view of the work ahead but prefer to write code iteratively/incrementally with small improvements and testing between each step. I usually jot down my algorithm and functional blocks on paper before I start writing the code. Also usually I tend to prefer simple working algorithms(even if they have poor performance) initially and to replace them, at a later time, with more complicated but efficient ones.
  • I don't mind throwing out chunks of my work if it doesn't fit with the overall project. I have worked in a student run lab for 5 years and we did on occasion have to chuck out weeks worth of work but what I learnt from it was that the effort is never wasted and that dumped code tends to find applications elsewhere later.

Y: Your task

I am interested in two tasks:

  • Expand the built-in image processing functions to support more/most of those already there in matlab.
  • Work on JIT compilation and expand it to work with matrices/other data types than scalars.

I am quite sure that I will have enough time for only one of the two and am leaning more towards JIT since that will be more useful in general.