45
edits
Nvs-abhilash (talk | contribs) (Initial changes to introduction completed.) |
Nvs-abhilash (talk | contribs) mNo edit summary |
||
(40 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 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. | |||
** What's your overall background? | ** What's your overall background? | ||
**: I | **: I love mathematics and programming. | ||
**: 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 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 | *: 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 environment while meeting new people in the process. | |||
** 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 | *: 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. | |||
== 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. | ||
* Which time zone do you live in? Will that change over GSoC duration? | *: nick: '''nvs232''' | ||
* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? | *: 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? | |||
*: I live in UTC+05:30. | |||
*: 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? | |||
*: I can work from 4:30 AM - 11:30 AM (in UTC+0) | |||
*: 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 == | ||
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 ;-) | 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. | * Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt. | ||
*: '''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''' | |||
*::* 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 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''' | |||
*:: 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. | ||
* Please describe your experience with being in a development team. | *: '''Python''' | ||
* 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 have a fair idea of basic Python syntax. I have also learned to use some mathematical libraries like ''numpy'' and ''pandas''. | ||
* Please state the commits and patches you already contributed to Octave. '' | *::* 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. | |||
*: 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. | |||
*:* 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++. | |||
* 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]: | |||
*::* '''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] | |||
*:::# @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] | |||
*:::# sympref: removed references to whichpython: [https://github.com/cbm755/octsympy/commit/bbd3784671ff61d917f3873c906e77c7da05f9ea] | |||
*:::# 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] | |||
*:::# 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''': | |||
*:::: '''''Merged''''' | |||
*:::# * @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] | |||
== 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 am comfortable using the mailing list and IRC. These are my interactions in the mailing list: [http://octave.1599824.n4.nabble.com/template/NamlServlet.jtp?macro=user_nodes&user=372104 Posts] | |||
** Mercurial or other source code management systems | ** Mercurial or other source code management systems | ||
**: 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. | |||
** make, gcc, gdb or other development tools | ** make, gcc, gdb or other development tools | ||
* What will make you actively stay in our community after this GSoC is over? | **: 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? | |||
*: 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 == | ||
* Did you ever hear about Octave before? | * Did you ever hear about Octave before? | ||
*: Yes, I have heard of GNU Octave before. | |||
** 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. | ||
* 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. | |||
*: 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 == | ||
* Please state the operating system you work with. | * Please state the operating system you work with. | ||
*: 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. | |||
* 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 | ||
**: 24 Hours | |||
** a computer | ** a computer | ||
**: 24 hours | |||
** a computer with your progressing work on | ** a computer with your progressing work on | ||
**: 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. | |||
== 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 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 my 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. | ||
*: 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. ''" | |||
*: 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 | *: | ||
* | * 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]] |
edits