User:Nvs-abhilash: Difference between revisions

Jump to navigation Jump to search
3,915 bytes added ,  7 April 2017
m
no edit summary
mNo edit summary
 
(28 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.
*: I am NVS Abhilash, I love mathematics and code.
*: My name is NVS Abhilash and I have a profound interest in Machine Learning and A.I.  
*: 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 a third-year/Junior student at NIIT University, Neemrana, Rajasthan, India.
** Which languages do you speak?
*: 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.
**: 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.
**: Some of the courses in my current semester include 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 presence in 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.  
*: 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.  
*: I hope to gain knowledge and experience working in a professional environment while meeting new people in the process.  
*: ''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 tries to become the open source alternative for MATLAB, and I believe in this ideology. Maybe that's why I like using Octave.  
*: Octave is the open source alternative for MATLAB, and I like working with 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: <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 29: Line 31:


* 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)  PM (in UTC+0)
*: I can work from 4:30 AM - 11:30 AM (in UTC+0)
*: 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.
*: I can also work from 1:00 PM-4:00 PM(in UTC+0) if my project requires it.


== E: Coding experience ==
== E: Coding experience ==
Line 36: Line 38:
* 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 good idea of classes and Object Oriented Programming in C++.
*::* I have 5 years of coding experience in C & C++. I have a thorough undertanding 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. But I am willing to learn them if my project demands it.
*:: I have no prior experience with either of them. However, 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 syntax and features 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 implement 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 61: 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 73: Line 82:
**: 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 in writing wiki pages.
**: I started using Mediawiki when I started writing this application. I am comfortable contributing to 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. And I am always pumped up in learning new tools if my project demands for it (or even just out of curiosity ;P )
**: 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).
* 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 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 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.


== O: Only out of interest ==
== O: Only out of interest ==
Line 85: Line 94:
**: 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?  
*: I think 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 are more than one wiki describing the same things with different ways.  
*: It is overwhelming as there exists more than one wiki explaining similar steps in various ways.  
*: It might be better to always update the Octave docs about the installation instruction.  
*: It might be better to update the Octave docs frequently with latest installation instructions.  
*: 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].  
*: 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 95: 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 104: 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?
** 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 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 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. ''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.''
* Please provide a rough estimated timeline for your work on the task.
*: 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]]
45

edits

Navigation menu