From Octave
Revision as of 16:47, 11 March 2014 by Sandeepmv (talk | contribs)
Jump to navigation Jump to search

A: An introduction

  • I am Sandeep Venkat Manthi. I like to solve problems and write code. I am a self motivated person who enjoys his work and I am a fourth year post graduate student at NIT Rourkela (India) in Electronics and Communication engineering.
    • I can speak fluently in English, Hindi and Telugu.
    • I am a fourth year student in Electronics and Communications and my main area of research is image processing. However, I have completed courses in soft computing and adaptive signal processing.
  • I like to code and I want to contribute to the open source community that produces most of the software tools that I use.
  • Octave is a brilliant project to work on as it is challenging and involves a good deal of pure mathematics. I am interested in Octave because of my experience with it.

C: Contact

  • sunnyv is my nick on Octave IRC channel.
  • My time zone is UTC + 5:30. I live in India.
  • I usually code between 12.30 to 18.30 UTC and I start at 8.00 UTC during weekends and few days.

E: Coding experience

  • I have 2 plus years of experience in C++ and Matlab code. I mainly write programs for my Academics and research projects. I have also worked on few C++ projects on freelance websites like Odesk.
  • I am good with PHP and Python and have worked on a few web design projects as a freelancer.
  • I do not have any experience on working with open source projects or free projects. I hope to change that in the coming few days.
  • The biggest project I have worked on is on my internship with ECIL, Hyderabad. I have written C code for processing the data from E1 data converter chips in an embedded system that operated a multichannel radio. The device was called E1-Radio Interconnect. I was a part of team of 3 members which developed the program for data management in a FPGA which handled the routing of radio channels. The code which I wrote was 320 lines long and it managed the RCMS PCM radio stream coming from E1 data converter chip in the device. The RCMS channel is used to trigger alarms or switches remotely.
  • I have contributed 3D coordinate system functions for Geodesy in mapping toolbox for Octave.[1]

F: Feeling fine

  • Experience with the following tools
    • I am fine with IRC and Mailing lists.
    • I am comfortable working with Mercurial. I have installed it in my Ubuntu system and its working well.
    • I am familiar with MediaWiki and I am comfortable using it.
    • I had a little difficulty with the compilers at first, but after getting help from IRC channel, I was able to resolve all the dependency errors that were halting my build.
  • A proper guide for beginners is what I would like to have. I will be happy to help create it. I find the community exciting and I will contribute whenever I can to the Octave Community even after GSoC.

O: Only out of interest

  • Yes. Our institution uses Octave on to help beginners grasp the basic concepts of Matlab.
    • I expect Octave to advertise in the educational institutions as a free and open source alternative to Matlab.
  • My first problem with Octave was that I was not able to build it in my first go. A lot of dependencies were missing and the information on Ubuntu forums was not enough to install all the dependencies required to build Octave. A good person helped me out on IRC after I tried to resolve it for a while. I think you should include a page which lists down all the dependencies required for different operating systems. This was the link that helped me solve the problem:

P: Prerequisites

  • I work with Ubuntu and Windows 8. I run a VM with Ubuntu inside windows 8.
    • I have administrator access to the system.
  • I will be able to access
    • internet for 14 hours a day.
    • a computer for 24 hours a day.
    • a computer for my progressing work for 24 hours a day.
  • I am the owner of the computer and I can install any software which is supported by my operating system.

S: Self-assessment

  • I always view constructive criticism as a positive sign towards better development of a project. I respect opinions and if the criticism contains useful facts, I will always be happy to incorporate them.
  • How autonomous are you when developing?
    • Do you like to discuss changes intensively and not start coding until you know what you want to do?(YES)
    • Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?(NO)

Y: Your task

  • I have selected two tasks from GSoC projects[2].
    • Implementation of Geometric integrators for Hamiltonian Systems. I have good experience in m-file scripting and can read mathematics papers comfortably. These Geometric integrators are essentially used for Discrete element methods and a number of Physics computation methods. I am studying the methods listed on the projects page and will come up with a list of tasks once I get familiarized with them.
    • I would like to contribute to the mapping package, specifically the implementations of functions missing in Coordinates, Geodesy, Projections and Data Analysis. The list of functions in the map toolbox for Matlab are listed[3]. I have already contributed the 3D coordinate functions to this package[4].

I will prefer to work on mapping package if a mentor is interested in it and is available.

  • Rough time estimates:
    • Week 0, Week 1 (May 19 to June 2): To work with mentor on selecting the list of methods that need to be implemented and to study the mathematics of these methods in depth, Browsing through the Octave code to learn more.
    • Week 2 to Week 4 (June 3 to June 23): Start working on the essential methods and to finish the first half of the to do list that I will be creating during the community bonding period.
    • Week 5 to Week 8 (June 24 to July 22): Complete work on all the remaining methods. Finish the basic m-file scripts for all the methods intended to be implemented by end of week 7.
    • Week 9 (July 23 to July 29): Fixing bugs, code clean up and Making the entire code Matlab compatible.
    • Week 10 to Week 12 (July 30 to August 18): Write tests and Documentation. Code clean up and finalization.

I have planned a 25 to 30 hour work schedule for every week.