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 http://www.compileonline.com/execute_matlab_online.php 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: http://pastebin.com/R9B4A1i8

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 the following task from GSoC projects page[2].
    • I would like to contribute to the mapping package, specifically the implementations of functions missing in Coordinates, Geodesy, Projections and Standard I/O. The list of functions in the map toolbox for Matlab are listed here[3]. I have already contributed the 3D coordinate functions to this package[4].
  • Rough time estimates:
  • For Mapping Package:
    • Detailed Schedule: [5]
    • Week 0 (May 19 to May 26): Familiarizing with Octave code. Research on the methods on how to implement the functions in standard file I/O [6], Map layout and axis [7] and functions in Coordinate systems and Geodesy.[8]. Creating a list of functions which can be implemented with the current features present in Octave.(Some functions that require methods which are not yet fully implemented in Octave, like classdef will not be included)
    • Week 1 to Week 4 (June 3 to June 25): Complete the implementation of missing functions that are selected in week 0 from Modelling the Earth[9] and Lengths and angles [10]. Clean the code of 3D Coordinate system functions that I have already implemented and perform tests. Submit the almost complete Coordinate systems and Geodesy functions package for mid term evaluation.
    • Week 5 to Week 7 (June 26 to July 14): Complete Map Display functions by using Mapnik [11] to render the maps. Complete testing of the functions by Week 7.
    • Week 8 to Week 11 (July 15 to August 9): Complete Standard I/O functions from the open source implementations present in the detailed schedule. Complete testing of the functions by Week 11)
    • Week 11 to Week 12 (August 10 to August 18): Fixing bugs, code clean up and Making the entire code Matlab compatible. Write remaining tests and Documentation. Code clean up and finalization. End of GSOC.
    • After GSOC: Maintenance of Mapping Package in Octave Forge.

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