User:Sudeepam: Difference between revisions

From Octave
Jump to navigation Jump to search
 
(62 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Summer of Code]]
== A: An introduction ==
== A: An introduction ==


*Please describe yourself in three sentences, one of them regarding your current studies.
*'''Please describe yourself in three sentences, one of them regarding your current studies.'''


:-My name is P Sudeepam. I like to code and make music.
:- My name is P Sudeepam. I like to code and make music.
:- I am a second year student of Jaypee Institute of Information Technology, Noida, Uttar Pradesh, India.
:- I am pursuing a majors in Electronics and Communication Engineering.


:-I am a second year student at Jaypee Institute of Information Technology, Noida, Uttar Pradesh, India.
*'''Which languages do you speak?'''
 
:-I am pursuing a majors in Electronics and Communication Engineering.
 
*Which languages do you speak?


:-I am comfortable with communicating in Hindi and English?
:-I am comfortable with communicating in Hindi and English?


*What's your overall background?
*'''What's your overall background?'''
 
:-I have been coding since my 6th standard and as such, I have developed a working knowledge of how programming problems should be approached.
 
:-My areas of interest include Machine Learning, Digital Signal processing, and Algorithms.
 
:-I learn Machine Learning through online resources such as open research papers, blogs, and MOOCs since my college does not offer a course on this subject till the final year.
 
:-Digital Signal Processing is one of the core subjects of my major. I have been learning that, and related subjects, such as 'Basics of Signals and Systems' for an year now.
 
:-I have been coding for many years now, knowledge of Algorithms is something that I have gained through those years of practice and repeated attempts to optimize my code. I will be taking a formal course on this subject in my next semester.


*Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
:- I have been coding since my 6th standard and as such, I have developed a working knowledge of how programming problems should be approached.
:- My areas of interest are Machine Learning, Data Structures, and Algorithms.
:- I learn Machine Learning through online resources such as open research papers, blogs, and MOOCs since my college does not offer a course on this subject till the final year.
:- I have been coding for many years now, knowledge of Data Structures and Algorithms is something that I have gained through those years of practice and repeated attempts to optimize my code.


:-The projects that I have been or will be doing as part of my major have a good part that they will be mentored and judged by a professor who has a deep understanding of the subject to which my project will be related. The bad part will be that the projects will restrict me to use the concepts that I have been taught by the University. Similarly, in self undertaken projects, I always have the flexibility to use whatever I want but then there is no one available to oversee those projects.
*'''Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?'''


:-My main reason to participate in the GSoC is directly related to this. A mentor will be available to oversee my project and as long as it is optimal, (which I'll make sure it is), I will have an opportunity to approach problems, the way 'I' would like to. The tools I'd be allowed to use (like the version control system) will probably be limited but that is well acceptable.
:The projects that I have been or will be doing as part of my major have a good part that they will be mentored and judged by a professor who has a deep understanding of the subject to which my project will be related. The bad part will be that for those projects, the University will restrict me to use the concepts that I have been taught by the University. Similarly, in self undertaken projects, I always have the flexibility to use whatever I want but then there is no one available to oversee those projects.


:-In addition to that, it will be a great opportunity to contribute to the Open Source community and most importantly, to learn how professional Software Development work is carried out.
:My main reason to participate in the GSoC is directly related to this. A mentor will be available to oversee my project and as long as it is optimal, (which I'll make sure it is), I will be able to approach the problems, the way 'I' would like to. The tools I'd be allowed to use (like the version control system) will probably be limited but that is understandable.


*Please also describe your previous experience with the GSoC, if any.
:In addition to that, it will be a great opportunity to contribute to the Open Source community and most importantly, to learn how professional Software Development work is carried out.


:-This is my first time applying for GSoC.
*'''Please also describe your previous experience with the GSoC, if any.'''


*Why are you choosing Octave?
:This is my first time applying for GSoC.


:-When I took up the course on 'Basics of Signals and Systems' as a part of my college coursework, about an year ago, I was required to use MATLAB for coding assignments. I never wanted to use MATLAB under a student's license because I thought that this would land me in a very uncomfortable situation when I no longer would be a student. That was when, the open source enthusiast within me told me to go for GNU Octave. Since then, I have been using Octave as one of my primary languages, I use it for Signal processing and Machine Learning, as do some of my peers.
*'''Why are you choosing Octave?'''


:-GNU Octave is a software that has become an integrated part of my academic life. It would be an honour for me to be able to contribute to a software that is so important to me. As a GSoC student, I will be able to entirely dedicate my time in contributing to Octave and hopefully, I will end up making some noteworthy contributions that, not only are beneficial for the Octave community, but also make me feel like I did my duty to pay back to the software that has been helping me get through my academics.
:When I took up the course on 'Basics of Signals and Systems' as a part of my college coursework, about an year ago, I was required to use MATLAB for coding assignments. I never wanted to use MATLAB under a student's license because I thought that this would land me in a very uncomfortable situation when I no longer would be a student. Even if I had decided to, I would not have been able to afford it. I started looking for open source alternatives and came across GNU Octave. Since then, I have been using Octave as one of my primary programming languages, I use it, mainly for Signal processing and Machine Learning.


:-Also, if I end up making some noteworthy contributions, I would genuinely be able to brag to my peers who use Octave, that a small part of the software that they have been using has been written by me.
:GNU Octave is a software that has become an integrated part of my academic life. As a GSoC student, I will be able to entirely dedicate my time in contributing to Octave and hopefully, I will end up making some noteworthy contributions that, not only are beneficial for the Octave community, but also make me feel like I did my duty to pay back to the software that has been helping me throughout my college. This is why I chose to contribute to GNU Octave.


== C: Contact ==
== C: Contact ==
* Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
* '''Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.'''
:-IRC Nickname: '''peesu'''
:-IRC Nickname: '''peesu'''


Line 53: Line 45:
:-Gmail: '''sudeepam.pandey@gmail.com'''
:-Gmail: '''sudeepam.pandey@gmail.com'''


* Which time zone do you live in? Will that change over GSoC duration?
* '''Which time zone do you live in? Will that change over GSoC duration?'''


:-I live in UTC+05:30 timezone.
:-I live in UTC+05:30 timezone.


:-No, the time zone will not change over GSoC duration.
:-'''No''', the time zone will not change over GSoC duration.


* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?  
* '''Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?'''


:- Although my work schedule is flexible and I could work at any time of the day, If I were to give an exact time slot then, I'd say I'll work between 4:30pm - 9:30pm (UTC+0) and 6:30am - 11:30am (UTC+0)
:- Although my work schedule is flexible and I could work at any time of the day, If I were to give an exact time slot then, I'd say I'll work between 4:30pm - 9:30pm (UTC+0) and 6:30am - 11:30am (UTC+0)


== E: Coding experience ==
== E: Coding experience ==
This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
* '''Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.'''
 
:'''MATLAB m-scripts:''' I am highly experienced with MATLAB m-scripts. A lot of my coursework assignments involve making m-scripts. Those assignments, have even asked me to make my own implementations of inbuilt MATLAB functions and I have been using that experience to contribute to Octave-Forge signal package. In addition to this, I also implement machine learning in Octave and have gained further experience of m-scripts by doing that. If selected, for GSoC 2018, I will approach my project, with m-scripts and so I consider my experience to be a big plus point.
 
:'''C++:''' I am quite familiar with the C++ programming language and have used it for personal projects and problem solving.
 
:'''OpenGL and Qt:''' I have never used OpenGL before. I have n:- I will be taking a formal course on Algorithms in my next semester.ever used Qt either but I've seen some Qt code of my friends.


* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
*'''Please describe your experience with other programming languages.'''


:- '''MATLAB m-scripts:''' I am highly experienced with MATLAB m-scripts. As I have said before, A lot of my coursework assignments involve making m-scripts. Those assignments, have even asked me to make my own implementations of inbuilt MATLAB functions. For example, I have done things like making a m-script that computes modulo-N circular convolution like MATLAB's cconv function (I have been using this knowledge to contribute to Octave-Forge signal package). In addition to this, I also implement machine learning in Octave and have gained further experience of m-scripts by doing that. If selected, I will approach the project that I have decided to work on, for GSoC 2018, by writing m-scripts and so I consider my experience to be a big plus point.
:'''Python:''' I am proficient in Python. I use it as my go-to language for various tasks, mostly Machine Learning.


:- '''C++:''' I am familiar with C++ but I have never made a formal project using it and I haven't been using it lately. I can quickly revise it if required. I was taught C and C++ in my first year, in a course called "Software Development Fundamentals". At the time I decided to use C and not C++ for my project. I passed that subject with an 'A grade' is all I can '''currently''' say about my C++ experience.
:'''C:''' I am comfortable with C and have made a number of projects using it.


:- '''OpenGL and Qt:''' I have never used OpenGL before. I have never used Qt either but I've seen some Qt code of my friends.
:'''JAVA:''' I have 4 years of experience with JAVA, but I haven't used it for making projects. I use this language primarily for problem solving (competitive programming) questions.


* Please describe your experience with other programming languages.
*'''Please describe your experience with being in a development team. ''Do you have experience working with open source or free projects?'' '''


:- '''C:''' I am comfortable with C and have made a number of projects using it.
:-The only experience I have with working on open source and free projects is the experience that I have got by
::a) contributing to some open source repositories on Github.
::b) contributing missing functions to the Octave-Forge Signal package.
:I do have the experience of working on a few projects with a team but those were small projects and we never used version control systems while making them.


:- '''JAVA:''' This was my first language, (well not exactly, my first language was BASIC), I have 4 years of experience with JAVA, but I haven't used it for making projects. I use this language mainly for problem solving (competitive programming) questions.
*'''Please describe the biggest project you have written code for and what you learned by doing so. Also, describe your role in that project over time.'''


:- '''Python:''' I am familiar with the language but I still am learning to use it effectively. I am learning it so that I can use it for Machine Learning problems if required.
:I'll assume that by 'biggest project', you mean the project which required me to play important roles and write a lot of code which required a lot of testing and debugging.


* Please describe your experience with being in a development team. ''Do you have experience working with open source or free projects?''
:In that sense, my biggest project was that of making an Arduino and LDR Sensors based maze solver bot with a team of four. The bot would traverse a maze in a 'trial run' and store all the correct paths (A path that would not lead to a dead end) in its memory whenever it encountered a 'T like' condition in the maze (A condition when more that one choice of path was available). After that, in any subsequent run, the bot would traverse the maze using the stored path (which avoided dead ends) and therefore, solve the maze in a shorter amount of time.


:-The only experience I have with working on open source and free projects is the experience that I have got by
:I was the team leader in this project and as the leader, my primary roles were to..
  a) contributing to some open source repositories for Digital Ocean's Hacktoberfest, and 
::a) Give directions to the team in a way that every team member's individual skill-set could be taken into use.
  b) contributing missing functions to the Octave-Forge Signal package.
::b) Boost the morale of the team whenever it seemed like the project would not get completed in time.
I do have the experience of working on a few projects with a team but those were small projects and we never used version control systems while making those projects.
:These were my primary roles as the leader. My technical role was to write the code or to make a 'functioning brain' of the bot. Roles of my team mates were to design the hardware, design testing tracks etc.


* Please describe the biggest project you have written code for and what you learned by doing so. Also, describe your role in that project over time.
:Some soft skills I learned from this project were..
:-I'll assume that by 'biggest project', you mean the project which required me to play the most important roles and write a lot of code that required a lot of testing and debugging.
::a) How to work with a team.
In this sense, my biggest project was that of making an Arduino and LDR Sensors based maze solver bot with a team of four. The bot would traverse a maze in a 'trial run' and store all the correct paths (A path that would not lead to a dead end) in its memory whenever it encountered a 'T like' condition in the maze (A condition when more that one choice of path was available). After that, in any subsequent run, the bot would traverse the maze using the stored path (which avoided dead ends) and therefore, solve the maze in a shorter amount of time.  
::b) The roles and importance of a leader.
:Some technical skills I learned were...
::a) Technicalities of Arduino, LDR Sensors, motor drivers etc.
::b) Technicalities of writing an Arduino/C code.


I was the team leader in this project and as the leader, my primary roles were to..
*'''Please state the commits and patches you already contributed to Octave.'''
  a) Give directions to the team in a way that every team member's individual skill-set could be taken into use.
  b) Boost the morale of the team whenever it seemed like the project would not get completed in time.
These were my primary roles as the leader. My technical role was to write the code or to make a 'functioning brain' of the bot. Roles of my team mates were to design the hardware, design testing tracks etc.


I am proud to say that we were able to successfully complete the bot in time and that the bot gave us expected results. I am also proud of the fact that with the technical skills I gained, I am able to help my juniors at my university with their maze solver bot codes. What disappoints me is that, performance of our bot could have been improved if only we had used better quality hardware. Unfortunately, that wasn't an option for us since we had to pay for the hardware out of our own pockets and we only had limited money on us.
:Patch submissions...
::- I've contributed a patch for the db2pow[https://savannah.gnu.org/patch/?9587] function of the signal package.
::- I've contributed a patch for the pow2db[https://savannah.gnu.org/patch/?9589] function of the signal package.
::- I've contributed a patch for the modulate[https://savannah.gnu.org/patch/?9409] function of the signal package.


Some soft skills I learned from this project were..
:Other small contributions...
  a) How to work with a team.
:- I have also helped review the cconv[https://savannah.gnu.org/patch/?9570] function by suggesting a faster algorithm. My suggestion was considered and acted upon.
  b) The roles and importance of a leader.
:- I have also helped by updating the signal package wiki page[https://wiki.octave.org/Signal_package#Missing_Functions] and bringing it up-to-date with the patch tracker. Discussions can be seen here [http://lists.gnu.org/archive/html/octave-maintainers/2018-03/msg00188.html].
Some technical skills I learned were...
  a) Technicalities of Arduino, LDR Sensors, motor drivers etc.
  b) Technicalities of writing an Arduino/C code.
another very important thing that I learned was '''never skip comments while writing code.'''


* Please state the commits and patches you already contributed to Octave. ''This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.''
:I have also coded a small implementation[https://github.com/Sudeepam97/Did_You_Mean] of the project I plan to work on[https://wiki.octave.org/Summer_of_Code_Project_Ideas#Command_line_suggestion_feature]. This is a rough implementation which has been done for demonstrative purposes only and needs a lot of work.


== F: Feeling fine ==
== F: Feeling fine ==
* Please describe (in short) your experience with the following tools
* '''Please describe (in short) your experience with the following tools'''


** IRC and mailing lists
** '''IRC and mailing lists'''
:: -I only started using IRC after I decided to apply for GSoC. I hangout in the #Octave channel and personally I seem to understand how an IRC works. I am not as familiar with the mailing lists as I am with IRC but I have used it a couple of times now and it seems like its pretty easy to use the mailing lists as well.
:: -I am comfortable with IRC and mailing lists.


** Mercurial or other source code management systems
** '''Mercurial or other source code management systems'''
:: -I am quite comfortable with git and while submitting patches to Octave-Forge I have understood how Mercurial works. I understand how patches are contributed in the Octave community.
:: -I am comfortable with git and while submitting patches for Octave-Forge I have understood how Mercurial works. I understand how patches are contributed in the Octave community.


** Mediawiki or other wiki software
** '''Mediawiki or other wiki software'''
:: -I learned a little while writing this application, I've used it no more than while writing this application so I'm not sure if I know too little or 'just enough'.
:: -I learned a little while writing this application and I feel comfortable using them.


** make, gcc, gdb or other development tools
** '''make, gcc, gdb or other development tools'''
:: -I have used the gcc compiler, and I have used make while building Octave 4.2.1 from source. I have not used gdb before.
:: -I have used the gcc compiler, and I have used make while building Octave 4.2.1 from source. I have not used gdb before.


* What will make you actively stay in our community after this GSoC is over?
* '''What will make you actively stay in our community after this GSoC is over?'''
:: -I'm sure that there will always be problems related to my areas of interests (mentioned in the introduction) to work on. Those problems, and the fact that Octave is such an important piece of software for me will make me stay in the community even after GSoC.
:: -There are many things that I would like to complete in/add to Octave. An example would be a signal package which is at par with MATLAB's signal toolbox. Things like these, and the fact that GNU Octave is such an important piece of software for me will make me stay in the community even after GSoC.


== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?


** If so, when and where? How far have you been involved already?
* '''Did you ever hear about Octave before?'''
:: -Yes I have heard about Octave before. I heard about Octave about an year ago when my college coursework required me to code assignments in MATLAB but I decided to search for an open source alternative.
:: -Yes I have heard about Octave before. I heard about Octave about an year ago when my college coursework required me to code assignments in MATLAB but I decided to search for an open source alternative.
** If not, where would you expect or advise us to do advertising?
:: -I have heard about Octave but I really would like to suggest the Octave community to advertise their software among college students like me, who require to use MATLAB or a similar tool for their coursework. This is because, I personally believe that every student should be introduced to the world of Open Source. I am doing something like that already, owing to my love for open source and free software, I have been trying to persuade my teachers to make use of Octave on our college systems and ask the students to use Octave more.


* What was the first question concerning Octave you could not find an answer to rather quickly?
* '''What was the first question concerning Octave you could not find an answer to rather quickly?'''
:: -I got most of my questions answered online or on the IRC channel itself. This may be a negative, but I keep asking till I have an answer so I haven't really encountered a situation when my question was not answered.
:: -I got most of my questions answered online or on the IRC channel itself. This may be a negative, but I keep asking till I have an answer so I haven't really encountered a situation when my question was not answered.


== P: Prerequisites ==
== P: Prerequisites ==
* Please state the operating system you work with.
* '''Please state the operating system you work with.'''
: -I mostly work on Linux Mint. I have used Windows before and can work on that if required.
: -I mostly work on Linux Mint. I have used Windows before and can work on that if required.


* Please estimate an average time per day you will be able to access
* '''Please estimate an average time per day you will be able to access'''


** an internet connection
** an internet connection
Line 152: Line 149:
:: -Any time of the day (i.e. 24 hours/day)
:: -Any time of the day (i.e. 24 hours/day)


* Please describe the degree to which you can install new software on computers you have access to.
* '''Please describe the degree to which you can install new software on computers you have access to.'''
:: -I have root access on my PC so I can install every software to the fullest on it. I'll be using my personal computer for most of the work.
:: -I have root access on my PC so I can install every software to the fullest on it. I'll be using my personal computer for most of the work.
:: -If required, I can access the computers of my University which use Windows 10 but I won't have administrative privileges on those Desktops.
:: -If required, I can access the computers of my University which use Windows 10 but I won't have administrative privileges on those Desktops.


== S: Self-assessment ==
== S: Self-assessment ==
* Please describe how useful criticism looks from your point of view as committing student.
* '''Please describe how useful criticism looks from your point of view as committing student.'''
:- I always appreciate constructive criticism.
:- I always appreciate constructive criticism.


* How autonomous are you when developing:
* '''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?
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
** 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?
** 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?


::- That depends on the task. Say I am working on something like a neural network. Neural networks are sometimes unpredictable so I believe that it is best to try out a small model first to 'see how it turns out'. However, if say I am working on a problem like a dictionary search through a trie, then I know that this would work out and so I'll intensively discuss the requirements of the project and then code accordingly. So I'd say that, if the concept is defined or at least predictable with some assurance, I'll discuss the problem and immediately get down to code. Otherwise, I'll code up a small model first to see if my approach really would work out and proceed thereafter.
::- That depends on the task. I'd say that, if the outcome is defined or at least predictable with some decent accuracy, I'll discuss the problem statement and immediately get down to code. Otherwise, I'll code up a '''small model''' first to see if the approach really would work and proceed thereafter.


== Y: Your task ==
== Y: Your task ==
* Did you select a task from our list of proposals and ideas?
* '''Did you select a task from our list of proposals and ideas? If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.'''
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. ''Please also wiki-link the page for your elaborated proposal here.''
:- Yes, I have decided to work on the command line suggestion feature. My special focus would be on the accuracy of the predictor. I'd like to to write a code, that is able to predict correctly spelled words despite the fact that a word can be misspelled in seemingly infinite number of ways.


* Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). If possible, include two or three milestones you expect.''
::Yes, I have decided to work on the '''command line suggestion feature [https://savannah.gnu.org/bugs/?46881]'''.
[[Category: Summer of Code]]

Latest revision as of 09:34, 21 December 2018

A: An introduction[edit]

  • Please describe yourself in three sentences, one of them regarding your current studies.
- My name is P Sudeepam. I like to code and make music.
- I am a second year student of Jaypee Institute of Information Technology, Noida, Uttar Pradesh, India.
- I am pursuing a majors in Electronics and Communication Engineering.
  • Which languages do you speak?
-I am comfortable with communicating in Hindi and English?
  • What's your overall background?
- I have been coding since my 6th standard and as such, I have developed a working knowledge of how programming problems should be approached.
- My areas of interest are Machine Learning, Data Structures, and Algorithms.
- I learn Machine Learning through online resources such as open research papers, blogs, and MOOCs since my college does not offer a course on this subject till the final year.
- I have been coding for many years now, knowledge of Data Structures and Algorithms is something that I have gained through those years of practice and repeated attempts to optimize my code.
  • Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
The projects that I have been or will be doing as part of my major have a good part that they will be mentored and judged by a professor who has a deep understanding of the subject to which my project will be related. The bad part will be that for those projects, the University will restrict me to use the concepts that I have been taught by the University. Similarly, in self undertaken projects, I always have the flexibility to use whatever I want but then there is no one available to oversee those projects.
My main reason to participate in the GSoC is directly related to this. A mentor will be available to oversee my project and as long as it is optimal, (which I'll make sure it is), I will be able to approach the problems, the way 'I' would like to. The tools I'd be allowed to use (like the version control system) will probably be limited but that is understandable.
In addition to that, it will be a great opportunity to contribute to the Open Source community and most importantly, to learn how professional Software Development work is carried out.
  • Please also describe your previous experience with the GSoC, if any.
This is my first time applying for GSoC.
  • Why are you choosing Octave?
When I took up the course on 'Basics of Signals and Systems' as a part of my college coursework, about an year ago, I was required to use MATLAB for coding assignments. I never wanted to use MATLAB under a student's license because I thought that this would land me in a very uncomfortable situation when I no longer would be a student. Even if I had decided to, I would not have been able to afford it. I started looking for open source alternatives and came across GNU Octave. Since then, I have been using Octave as one of my primary programming languages, I use it, mainly for Signal processing and Machine Learning.
GNU Octave is a software that has become an integrated part of my academic life. As a GSoC student, I will be able to entirely dedicate my time in contributing to Octave and hopefully, I will end up making some noteworthy contributions that, not only are beneficial for the Octave community, but also make me feel like I did my duty to pay back to the software that has been helping me throughout my college. This is why I chose to contribute to GNU Octave.

C: Contact[edit]

  • Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
-IRC Nickname: peesu
-Github: sudeepam97
-Gmail: sudeepam.pandey@gmail.com
  • Which time zone do you live in? Will that change over GSoC duration?
-I live in UTC+05:30 timezone.
-No, the time zone will not change over GSoC duration.
  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?
- Although my work schedule is flexible and I could work at any time of the day, If I were to give an exact time slot then, I'd say I'll work between 4:30pm - 9:30pm (UTC+0) and 6:30am - 11:30am (UTC+0)

E: Coding experience[edit]

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
MATLAB m-scripts: I am highly experienced with MATLAB m-scripts. A lot of my coursework assignments involve making m-scripts. Those assignments, have even asked me to make my own implementations of inbuilt MATLAB functions and I have been using that experience to contribute to Octave-Forge signal package. In addition to this, I also implement machine learning in Octave and have gained further experience of m-scripts by doing that. If selected, for GSoC 2018, I will approach my project, with m-scripts and so I consider my experience to be a big plus point.
C++: I am quite familiar with the C++ programming language and have used it for personal projects and problem solving.
OpenGL and Qt: I have never used OpenGL before. I have n:- I will be taking a formal course on Algorithms in my next semester.ever used Qt either but I've seen some Qt code of my friends.
  • Please describe your experience with other programming languages.
Python: I am proficient in Python. I use it as my go-to language for various tasks, mostly Machine Learning.
C: I am comfortable with C and have made a number of projects using it.
JAVA: I have 4 years of experience with JAVA, but I haven't used it for making projects. I use this language primarily for problem solving (competitive programming) questions.
  • Please describe your experience with being in a development team. Do you have experience working with open source or free projects?
-The only experience I have with working on open source and free projects is the experience that I have got by
a) contributing to some open source repositories on Github.
b) contributing missing functions to the Octave-Forge Signal package.
I do have the experience of working on a few projects with a team but those were small projects and we never used version control systems while making them.
  • Please describe the biggest project you have written code for and what you learned by doing so. Also, describe your role in that project over time.
I'll assume that by 'biggest project', you mean the project which required me to play important roles and write a lot of code which required a lot of testing and debugging.
In that sense, my biggest project was that of making an Arduino and LDR Sensors based maze solver bot with a team of four. The bot would traverse a maze in a 'trial run' and store all the correct paths (A path that would not lead to a dead end) in its memory whenever it encountered a 'T like' condition in the maze (A condition when more that one choice of path was available). After that, in any subsequent run, the bot would traverse the maze using the stored path (which avoided dead ends) and therefore, solve the maze in a shorter amount of time.
I was the team leader in this project and as the leader, my primary roles were to..
a) Give directions to the team in a way that every team member's individual skill-set could be taken into use.
b) Boost the morale of the team whenever it seemed like the project would not get completed in time.
These were my primary roles as the leader. My technical role was to write the code or to make a 'functioning brain' of the bot. Roles of my team mates were to design the hardware, design testing tracks etc.
Some soft skills I learned from this project were..
a) How to work with a team.
b) The roles and importance of a leader.
Some technical skills I learned were...
a) Technicalities of Arduino, LDR Sensors, motor drivers etc.
b) Technicalities of writing an Arduino/C code.
  • Please state the commits and patches you already contributed to Octave.
Patch submissions...
- I've contributed a patch for the db2pow[1] function of the signal package.
- I've contributed a patch for the pow2db[2] function of the signal package.
- I've contributed a patch for the modulate[3] function of the signal package.
Other small contributions...
- I have also helped review the cconv[4] function by suggesting a faster algorithm. My suggestion was considered and acted upon.
- I have also helped by updating the signal package wiki page[5] and bringing it up-to-date with the patch tracker. Discussions can be seen here [6].
I have also coded a small implementation[7] of the project I plan to work on[8]. This is a rough implementation which has been done for demonstrative purposes only and needs a lot of work.

F: Feeling fine[edit]

  • Please describe (in short) your experience with the following tools
    • IRC and mailing lists
-I am comfortable with IRC and mailing lists.
    • Mercurial or other source code management systems
-I am comfortable with git and while submitting patches for Octave-Forge I have understood how Mercurial works. I understand how patches are contributed in the Octave community.
    • Mediawiki or other wiki software
-I learned a little while writing this application and I feel comfortable using them.
    • make, gcc, gdb or other development tools
-I have used the gcc compiler, and I have used make while building Octave 4.2.1 from source. I have not used gdb before.
  • What will make you actively stay in our community after this GSoC is over?
-There are many things that I would like to complete in/add to Octave. An example would be a signal package which is at par with MATLAB's signal toolbox. Things like these, and the fact that GNU Octave is such an important piece of software for me will make me stay in the community even after GSoC.

O: Only out of interest[edit]

  • Did you ever hear about Octave before?
-Yes I have heard about Octave before. I heard about Octave about an year ago when my college coursework required me to code assignments in MATLAB but I decided to search for an open source alternative.
  • What was the first question concerning Octave you could not find an answer to rather quickly?
-I got most of my questions answered online or on the IRC channel itself. This may be a negative, but I keep asking till I have an answer so I haven't really encountered a situation when my question was not answered.

P: Prerequisites[edit]

  • Please state the operating system you work with.
-I mostly work on Linux Mint. I have used Windows before and can work on that if required.
  • Please estimate an average time per day you will be able to access
    • an internet connection
-Any time of the day (i.e. 24 hours/day)
    • a computer
-Any time of the day (i.e. 24 hours/day)
    • a computer with your progressing work on
-Any time of the day (i.e. 24 hours/day)
  • Please describe the degree to which you can install new software on computers you have access to.
-I have root access on my PC so I can install every software to the fullest on it. I'll be using my personal computer for most of the work.
-If required, I can access the computers of my University which use Windows 10 but I won't have administrative privileges on those Desktops.

S: Self-assessment[edit]

  • Please describe how useful criticism looks from your point of view as committing student.
- I always appreciate constructive criticism.
  • 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?
    • 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?
- That depends on the task. I'd say that, if the outcome is defined or at least predictable with some decent accuracy, I'll discuss the problem statement and immediately get down to code. Otherwise, I'll code up a small model first to see if the approach really would work and proceed thereafter.

Y: Your task[edit]

  • Did you select a task from our list of proposals and ideas? If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.
Yes, I have decided to work on the command line suggestion feature [9].