User:Nvs-abhilash: Difference between revisions

Jump to navigation Jump to search
4,398 bytes added ,  7 April 2017
m
no edit summary
(→‎O: Only out of interest: Updated Only out of interest)
mNo edit summary
 
(21 intermediate revisions by the same user not shown)
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. I have a profound interest in Machine Learning and A.I., and currently, I am pursuing Computer Science and Engineering, specializing in Big Data and ML.  
*: My name is NVS Abhilash and I have a profound interest in Machine Learning and A.I.  
*: I am a third-year/Junior student at NIIT University, Neemrana, Rajasthan, India.
*: I am majoring in Bachelor of Technology in Computer Science and Engineering, specializing in Big Data and ML.  
*: 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 am currently an undergraduate in Computer Science and Engineering (Third year / Junior).
**: I love mathematics and programming.
**: I love mathematics and programming.
**: My area of specialization is Big Data and Machine Learning.  
**: I have a good understanding of the process of Software Engineering, statistics, Linear Algebra, calculus, programming tools.
**: I am learning in-depth about Information Retrieval, Internet of Things and Digital Image Processing.  
**: I am learning in-depth about Information Retrieval, Internet of Things and Digital Image Processing in my current semester.
 
**: 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 experience with the open source community.  
Line 22: Line 23:
== 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: <strong>nvs</strong>
*: nick: '''nvs232'''
*: 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 46: Line 49:
*::* 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 intricacies 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 were expected to design and implement 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 designed and implemented 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 help in designing and implementing 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 60: Line 65:
*:::# 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''':
*:::# * @pyobject/methods.m: OPTION to view private methods added (fixes issue #22): [https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227]
*:::: '''''Merged'''''
*::* '''Octave core contributions''':
*:::# * @pyobject/methods.m: OPTION to view private methods added (fixes issue #22):[https://bitbucket.org/mtmiller/pytave/commits/d1e00e614b4ced282f12ff23e7a6f1c24e000227]
*:::# 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 85: Line 95:
* 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?  
*: Complete steps to build Octave from source. The reason for that is that there is not much in the Octave docs.  
*: Complete steps to build Octave from source. The reason for that is that there is not much in the Octave docs.  
*: And there is more than one wiki describing similar things in different ways.  
*: 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.  
*: 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].  
*: 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 the concepts.
*: Apart from this, the Octave manual has been very helpful with useful examples to understand concepts.


== P: Prerequisites ==
== P: Prerequisites ==
Line 94: Line 104:
*: 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 system, but I prefer using Ubuntu for my development.
**: I have complete access to both the operating systems. However, I prefer using Ubuntu for software 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 103: Line 113:
**: 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 a criticism is something really important for any student because it is one of the important methods to receive feedback.
*: I think constructive criticism plays a vital role in developing a good product.  
*: 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.   
*: I like receiving criticism because it means that my work matters to someone and I take that as 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 the code.  
*: While assessing myself I observed that I try to code first and then try to find bugs and remove the inefficiencies in my code.  
*: 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.  
*: 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.
*: And I will not repeat the same mistakes again.
*: 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.
*: 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.
*: Thomas Edison said, "'' I haven't failed, I've just found 10,000 ways that won't work. ''"
*: 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.
*: 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]
*: 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]
*:
* Please provide a rough estimated timeline for your work on the task.
* Please provide a rough estimated timeline for your work on the task.
*: May 5 - May 30, 2017 (Community bonding period)
*: During Google Summer of Code, I would work 40 hours per week. This is my rough estimated timeline:
*:: In this period I will try to move from "familiar" to ""
*: '''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]]
45

edits

Navigation menu