Editing User:Nvs-abhilash

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
== 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 NVS Abhilash and I have a profound interest in Machine Learning and A.I.  
*: I am NVS Abhilash, I love mathematics and code.
*: I am a third-year/Junior student at NIIT University, Neemrana, Rajasthan, India.
*: I have a deep interest in Machine Learning and A.I. and currently, I am studying Computer Science and Engineering, specializing in Big Data and ML.  
*: I am majoring in Bachelor of Technology in Computer Science and Engineering, specializing in Big Data and ML.  
** Which languages do you speak?
*: I can speak and communicate well in English and Hindi.
**: I can speak and communicate well in English and Hindi.
** What's your overall background?
** What's your overall background?
**: I love mathematics and programming.
**: I am currently an undergraduate in Computer Science and Engineering (Third year / Junior).  
**: I have a good understanding of the process of Software Engineering, statistics, Linear Algebra, calculus, programming tools.
**: My area of specialization is Big Data and Machine Learning.  
**: I am learning in-depth about Information Retrieval, Internet of Things and Digital Image Processing in my current semester.
**: Some of the courses in my current semester include Information Retrieval, Internet of Things and Digital Image Processing.  
**: I have a good understanding in the processes of Software Engineering, Statistics, Linear Algebra, Calculus, and Programming Tools.
 
* Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
* Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
*: I think Google Summer of Code is a great opportunity for me to jumpstart my experience with the open source community.  
*: I think Google Summer of Code is a great opportunity for me to jumpstart my presence in the open source community.  
*: I hope to gain knowledge and experience working in a professional environment while meeting new people in the process.  
*: I hope to gain knowledge and experience working in a professional working environment and meet new people in the process and gain some reputation in the open source community.  
*: ''For the <3 of < />''
** Please also describe your previous experience with the GSoC, if any.
** Please also describe your previous experience with the GSoC, if any.
**: This is my first experience with GSoC.
**: This is my first experience with GSoC.
* Why are you choosing Octave?
* Why are you choosing Octave?
*: Octave is the open source alternative for MATLAB, and I like working with Octave.  
*: Octave tries to become the open source alternative for MATLAB, and I believe in this ideology. Maybe that's why I like using Octave.  
*: Also, Octave has a great community of developers. They are welcoming and motivating.
*: Also, Octave has a great community of developers. They are welcoming and motivating.
== 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.
*: nick: '''nvs232'''
*: nick: <strong>nvs</strong>
*: Github: '''nvs-abhilash''' [https://github.com/nvs-abhilash https://github.com/nvs-abhilash]
*: Bitbucket: '''nvs232''' [https://bitbucket.org/nvs232/ https://bitbucket.org/nvs232/]
* 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.  
*: I live in UTC+05:30.  
Line 31: Line 29:


* 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?
*: I can work from 4:30 AM - 11:30 AM (in UTC+0)
*: I can work from 4:30 AM - 11:30 AM (in UTC+0)  PM (in UTC+0)
*: I can also work from 1:00 PM-4:00 PM(in UTC+0) if my project requires it.
*: I am always ready to work more than the above time maybe also from 1:00 PM-4:00 PM(in UTC+0) if my project needs that.


== E: Coding experience ==
== E: Coding experience ==
Line 38: Line 36:
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
*: '''C++'''
*: '''C++'''
*::* I have 5 years of coding experience in C & C++. I have a thorough undertanding of classes and Object Oriented Programming in C++.
*::* I have 5 years of coding experience in C & C++. I have a good idea of classes and Object Oriented Programming in C++.
*: '''Octave or Matlab m-scripts'''
*: '''Octave or Matlab m-scripts
*::* I started using Octave for my online [https://www.coursera.org/learn/machine-learning ''Machine Learning Course by Andrew Ng'']
*::* I started using Octave for my online [https://www.coursera.org/learn/machine-learning ''Machine Learning Course by Andrew Ng'']
*::* I also use Matlab Image Processing Toolbox for my Digital Image Processing Course.  
*::* I also use Matlab Image Processing Toolbox for my Digital Image Processing Course.  
*::* I have also contributed to [https://github.com/cbm755/octsympy/commits/master?author=nvs-abhilash Octsympy (Symbolic Package)],[https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227 Pytave], and [http://hg.savannah.gnu.org/hgweb/octave/rev/e6bf4f8920d3 Octave core].
*::* I have also contributed to [https://github.com/cbm755/octsympy/commits/master?author=nvs-abhilash Octsympy (Symbolic Package)],[https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227 Pytave], and [http://hg.savannah.gnu.org/hgweb/octave/rev/e6bf4f8920d3 Octave core].
*: '''OpenGL and Qt'''
*: '''OpenGL and Qt'''
*:: I have no prior experience with either of them. However, I am willing to learn them if my project demands it.
*:: I have no prior experience with either of them. But I am willing to learn them if my project demands it.
* Please describe your experience with other programming languages.
* Please describe your experience with other programming languages.
*: '''Python'''
*: '''Python'''
*::* I have a fair idea of basic Python syntax. I have also learned to use some mathematical libraries like ''numpy'' and ''pandas''.
*::* I have a fair idea of basic Python syntax. I have also learned to use some mathematical libraries like ''numpy'' and ''pandas''.
*::* I have started learning the intricacies of ''sympy'', as it is helpful for the GSoC project.
*::* I have started learning the syntax and features of ''sympy'', as it is helpful for the GSoC project.
*::* I have a basic knowledge of calling Python/C API which is a necessity for removing boost dependencies in Pytave. 
   
   
* Please describe your experience with being in a development team.
* Please describe your experience with being in a development team.
*: I am new to the open source community.
*: I am new to the open source community.
* 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.
* 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.
*:* Algorithms for Graph-based trust models in Online Social Network: In this project, we had a large dataset of social users and we designed and implemented an algorithm to tackle the scalability problem in recommender systems.
*:* ''Algorithms for Graph-based trust models in Online Social Network'': In this project, we had a large dataset of social users and we were expected to design and implement an Algorithm to tackle the scalability problem in recommender systems.
*:* My contributions were to help in designing and implementing the graph partitioning algorithm in C++.  
*:* My contributions were to implement the graph partitioning algorithm in C++.  
* Please state the commits and patches you already contributed to Octave.
* Please state the commits and patches you already contributed to Octave.
*: I have contributed mostly to the  [https://github.com/cbm755/octsympy/ Symbolic Package], I have also contributed to [https://bitbucket.org/mtmiller/pytave Pytave] and [http://hg.savannah.gnu.org/hgweb/octave Octave core]:
*: I have contributed mostly to the  [https://github.com/cbm755/octsympy/ Symbolic Package], I have also contributed to [https://bitbucket.org/mtmiller/pytave Pytave] and [http://hg.savannah.gnu.org/hgweb/octave Octave core]:
*::* '''Symbolic package contributions''':
*::* '''Symbolic package contributions''':
*:::: '''''Merged'''''
*:::# sympref: add support to restore settings from a structure: [https://github.com/cbm755/octsympy/commit/b29bc8d24690747cf87630a188f291fbc1b01d67], [https://github.com/cbm755/octsympy/commit/9301334e83684128d1ca2b26ecf5dc54356cf491], [https://github.com/cbm755/octsympy/commit/9c216fae121ea857819f8ab0003c39fe04edcb67]
*:::# sympref: add support to restore settings from a structure: [https://github.com/cbm755/octsympy/commit/b29bc8d24690747cf87630a188f291fbc1b01d67], [https://github.com/cbm755/octsympy/commit/9301334e83684128d1ca2b26ecf5dc54356cf491], [https://github.com/cbm755/octsympy/commit/9c216fae121ea857819f8ab0003c39fe04edcb67]
*:::# @sym/prevprime: added prevprime: [https://github.com/cbm755/octsympy/commit/a2ad71a3a6730ac204c704e9d5851f22a530a8ce], [https://github.com/cbm755/octsympy/commit/853450c1b60b94b3e11b001df78fcc06638037bb],[https://github.com/cbm755/octsympy/commit/9de27024b776fe952ed6bfe80c5dde8594e35dbd]
*:::# @sym/prevprime: added prevprime: [https://github.com/cbm755/octsympy/commit/a2ad71a3a6730ac204c704e9d5851f22a530a8ce], [https://github.com/cbm755/octsympy/commit/853450c1b60b94b3e11b001df78fcc06638037bb],[https://github.com/cbm755/octsympy/commit/9de27024b776fe952ed6bfe80c5dde8594e35dbd]
Line 65: Line 61:
*:::# isequal: added isequal for @symfun class. (fixes #740): [https://github.com/cbm755/octsympy/commit/238bb57985a0364a4f538ed506a712618f75b604],[https://github.com/cbm755/octsympy/commit/af587cb6086f6de9fc4da73a81cdcfe1ad88d01a], [https://github.com/cbm755/octsympy/commit/e850fbdd7f22810b764e7679fe3f07705b68df2e], [https://github.com/cbm755/octsympy/commit/29c3f37cf32d7342c3da1cdf067928ff865aae8a], [https://github.com/cbm755/octsympy/commit/110d307cf9ea773904d4c987d30596ec09b0fa1f], [https://github.com/cbm755/octsympy/commit/eb28830d0a81cddde442da1d4e23d801bf1e6252], ''I got to learn a lot from this one, all thanks to Colin and Abhinav''.
*:::# isequal: added isequal for @symfun class. (fixes #740): [https://github.com/cbm755/octsympy/commit/238bb57985a0364a4f538ed506a712618f75b604],[https://github.com/cbm755/octsympy/commit/af587cb6086f6de9fc4da73a81cdcfe1ad88d01a], [https://github.com/cbm755/octsympy/commit/e850fbdd7f22810b764e7679fe3f07705b68df2e], [https://github.com/cbm755/octsympy/commit/29c3f37cf32d7342c3da1cdf067928ff865aae8a], [https://github.com/cbm755/octsympy/commit/110d307cf9ea773904d4c987d30596ec09b0fa1f], [https://github.com/cbm755/octsympy/commit/eb28830d0a81cddde442da1d4e23d801bf1e6252], ''I got to learn a lot from this one, all thanks to Colin and Abhinav''.
*:::# @symfun/isequaln: implemented isequaln to support NaN's equality in @symfun: [https://github.com/cbm755/octsympy/commit/95afb9a9f91f00c1fe69c234cd34a4b0c977b2a2]
*:::# @symfun/isequaln: implemented isequaln to support NaN's equality in @symfun: [https://github.com/cbm755/octsympy/commit/95afb9a9f91f00c1fe69c234cd34a4b0c977b2a2]
*:::# warning in subsref and subsasng removed (fixes #714): [https://github.com/cbm755/octsympy/commit/c53563b7eeca635f5bd114511da375962de2844d]
*:::: '''Issues opened
*:::# Cannot create abstract @symfun object using Pytave IPC: [https://github.com/cbm755/octsympy/issues/769] ('''Closed''')
*::* '''Pytave contributions''':
*::* '''Pytave contributions''':
*:::: '''''Merged'''''
*:::# * @pyobject/methods.m: OPTION to view private methods added (fixes issue #22): [https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227]
*:::# * @pyobject/methods.m: OPTION to view private methods added (fixes issue #22):[https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227]
*::* '''Octave core contributions''':
*:::# Rewrite exception handling using Python/C API [https://bitbucket.org/mtmiller/pytave/commits/f777dca5836119484c1c1a23e6614d6897a28ecc] - ''This commit is a step to remove all the boost dependencies in Pytave.''
*::* '''Octave core contributions''' ('''''merged'''''):
*:::# * data.cc (Fisinteger): Add BIST tests: [http://hg.savannah.gnu.org/hgweb/octave/rev/e6bf4f8920d3]
*:::# * data.cc (Fisinteger): Add BIST tests: [http://hg.savannah.gnu.org/hgweb/octave/rev/e6bf4f8920d3]


Line 82: Line 73:
**: I am very comfortable using git. I have started learning Mercurial and do understand the basics of generating a patch in Octave.
**: I am very comfortable using git. I have started learning Mercurial and do understand the basics of generating a patch in Octave.
** Mediawiki or other wiki software
** Mediawiki or other wiki software
**: I started using Mediawiki when I started writing this application. I am comfortable contributing to wiki pages.
**: I started using Mediawiki when I started writing this application. I am comfortable in writing wiki pages.
** make, gcc, gdb or other development tools
** make, gcc, gdb or other development tools
**: I am very comfortable in using make tool, gcc, and gdb. Furthermore, I am always pumped up in learning new tools if my project demands for it (or even just out of curiosity).
**: I am very comfortable in using make tool, gcc, and gdb. And I am always pumped up in learning new tools if my project demands for it (or even just out of curiosity ;P )
* 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 see lots of places where I can help. I am also interested in the Convolutional Neural Networks (CNNs) package. I would love to work upon that after my GSoC.
*: I see lots of places I can help. I am also interested in the Convolutional Neural Networks (CNNs) package. I would love to work upon that after my GSoC.


== O: Only out of interest ==
== O: Only out of interest ==
Line 93: Line 84:
** If so, when and where? How far have you been involved already?
** If so, when and where? How far have you been involved already?
**: I started using Octave for my online Machine Learning Course by Andrew Ng in Coursera.
**: I started using Octave for my online Machine Learning Course by Andrew Ng in Coursera.
* 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? ''Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …''
*: Complete steps to build Octave from source. The reason for that is that there is not much in the Octave docs.  
*: I think complete steps to build Octave from source. The reason for that is that there is not much in the Octave docs. And there are more than one wiki describing the same things with different ways. It might be better to always update the Octave docs about the installation instruction. Here is what the octave docs shows now: [https://www.gnu.org/software/octave/doc/v4.0.1/Building-the-Development-Sources.html#Building-the-Development-Sources link]. Apart from this the Octave manual has been very helpful with useful examples to understand the concepts.
*: It is overwhelming as there exists more than one wiki explaining similar steps in various ways.  
*: It might be better to update the Octave docs frequently with latest installation instructions.  
*: Here is what the octave docs show now: [https://www.gnu.org/software/octave/doc/v4.0.1/Building-the-Development-Sources.html#Building-the-Development-Sources link].  
*: Apart from this, the Octave manual has been very helpful with useful examples to understand concepts.


== P: Prerequisites ==
== P: Prerequisites ==
Line 104: Line 91:
*: Ubuntu 16.10 and Windows 10
*: Ubuntu 16.10 and Windows 10
** If you have access to more than one, please state them and the conditions under which you are granted this access.
** If you have access to more than one, please state them and the conditions under which you are granted this access.
**: I have complete access to both the operating systems. However, I prefer using Ubuntu for software development.
**: I have complete access to both the operating system, but I prefer using Ubuntu for my development.
* 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 113: Line 100:
**: 24 hours
**: 24 hours
* 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 complete root/administrator access.
*: I have complete root / administrator access.


== 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 think constructive criticism plays a vital role in developing a good product.  
*: I think a criticism is something really important for any student because it is one of the important methods to receive feedback.
*: I like receiving criticism because it means that my work matters to someone and I take that as motivation to make my work better.   
*: I really like to receive them because it means that your work matters to someone and I take that as a motivation to make my work better.   
* How autonomous are you when developing:
* How autonomous are you when developing:
*: While assessing myself I observed that I try to code first and then try to find bugs and remove the inefficiencies in my code.  
*: While assessing myself I observed that I try to code first and then try to find bugs and remove the inefficiencies in the code.  
*: Recently I was working with Colin on this [https://github.com/cbm755/octsympy/pull/749 PR], you can see that my initial changes were very naive and incorrect, but then Colin helped me understand what else could have been done. Then I reimplemented it using the right ideology.
*: Recently I was working with Colin on this [https://github.com/cbm755/octsympy/pull/749 PR], you can see there my initial changes were very naive and incorrect, but then Colin helped me understand what else could have been done. Then I reimplemented it using the right ideology.  
*: I think this methodology is what makes me learn more. I understand this might turn out to be a slow process, but I think this is what makes me more experienced.
*: And I will not repeat the same mistakes again.
*: Thomas Edison said, "'' I haven't failed, I've just found 10,000 ways that won't work. ''"
*: So, I think this methodology is what makes me learn more. I understand this might turn out to be a slow process, but I think this is what makes me more experienced.
*: With that said, I will also absolutely make sure that I take regular weekly feedback from my mentors so that I don't end up in a wrong path.
*: Thomas Edison said: '' I haven't failed, I've just found 10,000 ways that won't work. ''
*: With that said, '''''I will also absolutely make sure that I take regular weekly feedback from my mentors so that I don't end up in a wrong path.'''''


== 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?
*: Yes, I would like to work on the project: "Symbolic Package" [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Symbolic_package Wiki link to the project]
** 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.''
*:
** If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
* Please provide a rough estimated timeline for your work on the task.
* 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.''
*: During Google Summer of Code, I would work 40 hours per week. This is my rough estimated timeline:
*: '''May 5 - May 30, 2017''' (Community bonding period)
*::# Try to move from 'familiar' to 'proficient' in Octsympy and Pytave code base.
*::# I will make efforts to learn more about '''Python/C api''' so as to contribute more to Pytave to remove boost depedencies.
*::# Contribute as much as I can to Octsympy.
*::# Continuously interact with the mentors and better define the steps to complete the project.
*: '''May 30 - June 30, 2017''' (First term)
*:: '''Week 1-2''': Improve Pytave code
*::# Migrate away from Pytave legacy [https://bitbucket.org/mtmiller/pytave/issues/74/migrate-away-from-remaining-pytave-legacy #74] [https://bitbucket.org/mtmiller/pytave/issues/80/remove-code-for-calling-octave-from-python #80]
*::# Resolve [https://bitbucket.org/mtmiller/pytave/issues/79/sympy-function-objects-cause-errors #79], this causes test failures in Octsympy.
*::# Remove the boost dependencies from Pytave and use native API calls for the same.
*:: '''Week 3-4''': Making @sym a subclass of @pyobject.
*::# Fix core Octave classdef issues:
*::#: Understand the currently available features of classdef in Octave.
*::#: Fix the bugs related to classdef in core Octave. Some of the major ones that I want to focus on are:
*::#:* [https://savannah.gnu.org/bugs/?49169 49169] Defining a classdef superiorto some other classdef.
*::#:* [https://savannah.gnu.org/bugs/?45833 45833] support load/save of classdef objects.
*::#:* [https://savannah.gnu.org/bugs/?48693 48693] classdef subsref method is not called with correct nargout value.
*::#:* [https://savannah.gnu.org/bugs/?43047 43047] and [https://savannah.gnu.org/bugs/?49169 49169] Documentation problems in classdef (Optional)
*::#: Add more features if feasible.
*::# Make this [https://github.com/cbm755/octsympy/pull/590 PR] by Abhinav mergeable. (If possible in the time frame)
*::# Discuss and decide which implementation (classic @class style or classdef) style to use for the project.
*: '''July 1 - July 24, 2017''' (Second term)
*::# Make @sym instance a @pyobject instance by calling the constructors, and fixing tests and bugs.
*::# Implement all the class functions required to allow OO style function calling. (e.g. calling f.diff(x, x))
*::# Write tests for the new functionality added.
*::# Optimize the functions in @sym and @symfun to use the OO features added.
*::# Replace the python_cmd interface with the pytave fuctions.
*::## This step wants to directly use pyexec and pycall commands, instead of delegating the task to python_cmd.
*::# Write / Modify tests for the above changes.
*: '''July 28 - August 21, 2017''' (Final term)
*:: '''Week 9-10''': Write Documentation
*::# Complete any pending tasks (if any).
*::# Write documentation for Pytave both user's guide and developer's guide. (This will help in attracting more developers to use Pytave)
*::# Write extensive documentation for Octsympy.
*::# Write documentation for the current implementation of classdef in Octave. (I think this is not completed yet.)
*:: '''Week 10-12''': Fix further issues
*::# Fix issues in Pytave [https://bitbucket.org/mtmiller/pytave/issues?status=new&status=open issue list].
*::# Fix issues in Octsympy [https://github.com/cbm755/octsympy/issues issue list].
*::# Add missing functions and functionality to Octsympy.
*: This is a very rough timeline. The exact steps will become clearer when I do some more discussion with the mentors.
[[Category: Summer of Code]]
[[Category: Summer of Code]]
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)