User:Provana: Difference between revisions

Jump to navigation Jump to search
835 bytes removed ,  24 March 2016
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
== A: An introduction ==
== A: An introduction ==
My name is Alex Provan I am from the Philadelphia area, and I am currently sophomore at Clarkson University, I am a mathematics student with a heavy interest in computer science and software engineering. At school I am involved in the local chapter of the National Society for Black Engineers, and the Clarkson Open Source Institute. I speak the english language.
My name is Alex Provan I am from the Philadelphia area, and I am currently sophomore at Clarkson University, I am a mathematics student with a heavy interest in computer science and software engineering. At school I am involved in the local chapter of the National Society for Black Engineers, and the Clarkson Open Source Institute. I speak the English language.


Currently I am studying mathematics with a focus on computer science, so I am taking courses in calculus, math modeling, and statistics, as well as courses in general programming in C++ and MATLAB. In the future I hope to get into graph theory and complex systems.  
Currently I am studying mathematics with a focus on computer science, so I am taking courses in calculus, math modeling, and statistics, as well as courses in general programming in C++ and MATLAB. In the future I hope to get into graph theory and complex systems.  
Line 6: Line 6:
* 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 want to participate in GSoC firstly because I would like to get experience contributing to a larger already established open source project, and experience working with others in software development. I think the skill of working within the context of something larger, as well as project management skills are incredibly valuable to have. Secondly I want to begin working with an open source project in specific, I frequently use open source software and would like learn how to work within the free software community as a whole. Lastly I would like to use GSoC as an opportunity to learn new programming skills and solidify programming skills that I am already familiar with.
I want to participate in GSoC firstly because I would like to get experience contributing to a larger already established open source project, and experience working with others in software development. I think the skill of working within the context of something larger, as well as project management skills are incredibly valuable to have. Secondly I want to begin working with an open source project in specific, I frequently use open source software and would like learn how to work within the free software community as a whole. Lastly I would like to use GSoC as an opportunity to learn new programming skills and solidify programming skills that I am already familiar with.
* Please also describe your previous experience with the GSoC, if any. ''Includes any community-bonding, mentor experience or application, not necessarily accepted. We use this subquestion to identify which students are unfamiliar with how the program goes, providing further support. It has no negative impact on your rating!''
I have no real previous experience with the GSoC, I followed it a bit last year, and I had afriend who did it, but this is the first year that I am eligible to participate and therefore the first time I have really looked into it in any depth.


* Why are you choosing Octave?
* Why are you choosing Octave?
Line 18: Line 15:
irc nick: '''provana'''
irc nick: '''provana'''


If I need to I can give my phone and facebook, I am on the IRC as much as I can be but the best way to contact me directly is phone or email.
Google hangouts: alex.provan.ssh@gmail.com


time zone: UTC -4 (EDT) this will most likely not change during GSoC
time zone: UTC -4 (EDT) this will most likely not change during GSoC


During GSoC I am best working between 14.00 to 22.00 UTC any day of the week, but I am very flexible. I will not be availible the week of April 25 2016 as that is the week I have final exams.
During GSoC I am best working between 14.00 to 22.00 UTC any day of the week, but I am very flexible. I will not be available the week of April 25 2016 as that is the week I have final exams.


== E: Coding experience ==
== E: Coding experience ==
C++:  
C++:  
In C++ I have experience working both by myself and contributing to projects in groups. Just using the C++ standard libraries last semester for class myself and 2 other students had to build a program that dealt with some sample student data (grades, account balance, attendance, etc). The program was not super complex but the project did allow me to get some experience working with other people on software projects. I have also worked with the GNU scientific library and boost libraries. Those have mostly been for working through some of the Project Euler challenges. Each of those things I have done both on windows and on linux. Outside of personal computing I have quite a bit of experience writing C/C++ scripts on the arduino platform. On the arduino platform I am familiar with the serial, networking, time, and lcd libraries.   
In C++ I have experience working both by myself and contributing to projects in groups. Just using the C++ standard libraries last semester for class myself and 2 other students had to build a program that dealt with some sample student data (grades, account balance, attendance, etc). The program was not super complex but the project did allow me to get some experience working with other people on software projects. I have also worked with the GNU scientific library and boost libraries. Those have mostly been for working through some of the Project Euler challenges. Each of those things I have done both on windows and on Linux. Outside of personal computing I have quite a bit of experience writing C/C++ scripts on the arduino platform. On the arduino platform I am familiar with the serial, networking, time, and lcd libraries.   


Octave/Matlab M scripts:  
Octave/Matlab M scripts:  
I use MATLAB almost daily with school, I first learned it in highschool and now I use it in many of my math modelling classes. I also use it outside of that if i need to generally calculate something. m scripts is something I am still learning but it is something I am actively experimenting with to get a good handle on it. As with C++ I am working through the Project Euler problems with Octave/MATLAB in order to learn some of the features. Since discovering Octave I have largely switched to using that in place of MATLAB (as long as assignments do not require it) as it is easier for me to run on my laptop. I have not done any large projects with MATLAB or GNU Octave
I use MATLAB almost daily with school, I first learned it in high school and now I use it in many of my math modelling classes. I also use it outside of that if i need to generally calculate something. m scripts is something I am still learning but it is something I am actively experimenting with to get a good handle on it. As with C++ I am working through the Project Euler problems with Octave/MATLAB in order to learn some of the features. Since discovering Octave I have largely switched to using that in place of MATLAB (as long as assignments do not require it) as it is easier for me to run on my laptop. I have not done any large projects with MATLAB or GNU Octave


Python:
Python:
I was introduced to programming through python, I mostly use it for computer organization or small scripts when I need to do something quick. In python I am comfortable programming procedurally or OOP. I am comfortable with the pythonic idioms.
I was introduced to programming through python, I mostly use it for computer organization or small scripts when I need to do something quick. In python I am comfortable programming using both procedural or OOP paradigms. I am comfortable with the pythonic idioms.


C programming language: This overlaps a lot with C++, I learned C before I learned C++. Most of my work with C has been working with/tweaking other peoples code for my own use. tools such as the suckless.org tools (dwm, dmenu) and busybox.
C programming language: This overlaps a lot with C++, I learned C before I learned C++. Most of my work with C has been working with/tweaking other peoples code for my own use. tools such as the suckless.org tools (dwm, dmenu) and busybox.


* Please describe your experience with being in a development team. ''Do you have experience working with open source or free projects?''
* Please describe your experience with being in a development team. ''Do you have experience working with open source or free projects?''
I have done lots of group programming projects in programming and math classes for university. In highschool I had to work in a group of 5 other people to create a mario clone using the DarkJDK 2d library over the semester. In university I worked with a team of 2 other students creating a simple program to manage and process an amount of sample student data.  
I have done lots of group programming projects in programming and math classes for university. In university I worked with a team of 2 other students creating a simple program to manage and process an amount of sample student data. In similar sized groups I have worked on smaller projects like small implementations of simple games.  


* 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.
Line 43: Line 40:


* 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.''
* 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 begun work implementing functions that are missing in the mapping package. Currently I have implemented the polyjoin and polysplit functions and have submitted them as a feature request for discussion. I am working getting those two functions formatted and documented. I have begun to work with the partial polybool implementation to figure out what needs to be done to complete it.
I have begun work implementing functions that are missing in the mapping package. Currently I have implemented the polyjoin and polysplit functions and have submitted them as a feature request for discussion. I am working getting those two functions formatted and documented. I have begun to work with the partial polybool implementation to figure out what needs to be done to complete it. A link to the proposed functions is included below, I will add to this as I complete other things.
 
[https://savannah.gnu.org/bugs/?4750 Link to feature request]


== F: Feeling fine ==
== F: Feeling fine ==
Line 57: Line 56:


** make, gcc, gdb or other development tools
** make, gcc, gdb or other development tools
I have used make and gcc before but I would not consider myself an expert on either or them. I have no real experience with gdb. When programming on linux I typically will use Clion as the editor and then switch to konsole and use make and gcc to actually build the program. I am fairly familiar with the whole process outside of this though. I frequently make use of make and gcc as I typically compile my own kernels for my server.
I have used and am familiar with make and gcc before but I would not consider myself an expert on either or them.  


* What will make you actively stay in our community after this GSoC is over? ''You can also tell us after applications close and we'll happily try to fulfill :-)''
* What will make you actively stay in our community after this GSoC is over? ''You can also tell us after applications close and we'll happily try to fulfill :-)''
Line 64: Line 63:
== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?  
* Did you ever hear about Octave before?  
I have heard about and used Octave before. I try to use free software and when I needed a replacement for MATLAB , Octave is what came up in archwiki when I searched for a replacement. Advertising seems to be pretty good in relation to other free software projects. Especially with the addition to the GUI along with the expansion of the project I definitly see more people using it and it being more widely recognized.  
I have heard about and used Octave before. I try to use free software and when I needed a replacement for MATLAB , Octave is what came up in archwiki when I searched for a replacement. Advertising seems to be pretty good in relation to other free software projects. Especially with the addition to the GUI along with the expansion of the project I definitely see more people using it and it being more widely recognized.  


* 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, …''
* 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, …''
Line 74: Line 73:


** 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 access to Arch Linux on my personal desktop computer, laptop, and server. I have access to Windows 10 on my personal desktop computer.
I have access to Arch Linux on my personal desktop computer, laptop, and server. I have access to Windows 10 on my personal desktop computer. I have access to FreeBSD as a VM on my server.


* 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
Line 92: Line 91:
** 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?


Before I start coding I usually write out the proposed changes on paper and write either some sort of pseudocode or flowchart or something. I typically like to have a solid idea of what I want to do and how that will affect other aspects of my project before I start writing any actual code.  
Before I start coding I usually write out the proposed changes on paper and write either some sort of pseudo-code or flowchart or something. I typically like to have a solid idea of what I want to do and how that will affect other aspects of my project before I start writing any actual code.  


** 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?


If I have an idea I do like to see how it would work with the rest of a project, I am fine with having that work thrown away I am usually not super attached to things like that. If I have an idea that is big enough that I would mind having the work thrown away, at that point I would however much rather like to discuss that with the others who are working on that project to make sure it fits in with the project before spending significant time on it. If it doesnt fit within the projects view that might be something I would pursue independantly on my own time.  
If I have an idea I do like to see how it would work with the rest of a project, I am fine with having that work thrown away I am usually not super attached to things like that. If I have an idea that is big enough that I would mind having the work thrown away, at that point I would however much rather like to discuss that with the others who are working on that project to make sure it fits in with the project before spending significant time on it. If it doesn't fit within the projects view that might be something I would pursue independently on my own time.  




Line 103: Line 102:
I selected a task from the list of proposals and ideas.
I selected a task from the 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.''
** 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.''
I chose the missing core matlab functions and would like to implement the boolean operations on polygon functions from the matlab mapping toolbox
I chose the missing core MATLAB functions and would like to implement the Boolean operations on polygon functions from the MATLAB mapping toolbox




==T: Proposed Timeline ==
==T: Proposed Timeline ==
* 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. ''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.''
April 22 - 23 May:
Week of April 25: Final Exam Week, cannot work.
Week of May 1:
Ensure I have a solid handle on the mathmatical concepts regarding polygon clipping and vector data formatting
Weeks of May 6 - May 23:
Begin working on programming.
June 11-15:Have a rough implementation of some of the functions finished.
June 20-27
Midterm Evaluations


July 20:
* April 22 - 23 May: continue familiarizing myself with Octave, the build and development systems, and the project culture. Continue to contribute functions as possible.
finish a rough version of the boolean polygon functions and use them to begin to expand the vector and polygon analysis functions that Octave has available
* April 25: Final Exam Week, cannot work.
*  May 23 - GSoC starts, community bonding period ends
*June 6 - Finish implementing poly2fv, polymerge.
* June 20 - Finish implementing polysplit, and polyjoin
* 27 June - Mid term evaluations are due.
* 11 July - Finish implementing ispolycw, poly2ccw, and poly2cw
* 25 July -  Finish polybool, polyxpoly
* 2 August - Finish linecirc.
* 7 August -  Finish bugtesting, tighten up code, check documentation for typos. Test on other platforms
* 15 August - final week
*23 August - final evaluations due


August 7-10: Milestone 3:finish writing code and documentation, check for bugs and typos in documentation. Implement bugfixes.
August 15-23: Implement final bugfixes, and finish testing.
Final week - final presentation for google SOC results.


[[Category: Summer of Code]]
[[Category: Summer of Code]]
8

edits

Navigation menu