User:Avbm
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++
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.
Matlab/Octave
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.
Python
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
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.