Difference between revisions of "User:Provana"

From Octave
Jump to navigation Jump to search
(Created page with "= Public application template = This part is answered in public on your '''user page'''. Please copy its source ('''edit''' tab) and then fill. Delete any e...")
 
Line 1: Line 1:
= Public application template =
+
== A: An introduction ==
This part is answered in public on your '''[[Special:MyPage|user page]]'''. Please copy its source ('''edit''' tab) and then fill. Delete any examples and annotations (''this markup'') afterwards. Same for questions that do not apply to your situation.
+
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.  
  
== A: An introduction ==
 
* Please describe yourself in three sentences, one of them regarding your current studies.
 
** Which languages do you speak?
 
** What's your overall background? ''The general field you work in or are studying, e.g. computer science, physics, artificial intelligence, control theory...''
 
 
* 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?
** 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 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?
 +
I chose Octave for a few reasons. The first reason is that for school I have to use mathematical languages like Matlab or R or Octave for many of my assignments, I want to be able to contribute to a project that I actually use. The second reason is that Octave interests me,  I am very interested in learning more about how math and programming languages interact. I see working with Octave as a step towards solidifying mathematical concepts I already am familiar with, and learning new ones through programming. Octave is also very similar to MATLAB, which I am already fairly familiar with.
  
 
== 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. ''We really want unique nicks. You might want to bold it.''
+
Email: alex.provan.ssh@gmail.com
* Which time zone do you live in? Will that change over GSoC duration? ''Perhaps DST adjustment or a relocation. Note that both UTC and GMT are not aware of daylight saving time! Please state UTC+x or -x.''
+
 
* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? ''Example: I usually code around 9.00 to 18.00 and could also try to start earlier (~7.00) for few days ;-)''
+
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.
 +
 
 +
time zone: UTC -5 (EST) this will most likely not change during GSoC
 +
 
 +
During GSoC I am best working between 13.00 to 21.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.
  
 
== 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 ;-)
+
C++:
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
+
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. 
* Please describe your experience with other programming languages.
+
 
 +
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
 +
 
 +
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.
 +
 
 +
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.
 +
 
* 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.
 +
The largest project by volume of total code in the project that I have written code for was an informal experiment I conducted with one of my friends. Using virtualbox we built a tiny linux distribution. It was largely just cross compiled utilities. Starting with just the linux kernel, and busybox. Initially the suckless.org init script was used. However eventually I was able to write an init in C and a minimal getty type program. It was a few hundered lines of code however the entire system booted up and was able to make use of the programs that I had written for it. Even though the system could not do a whole lot functionally I learned a good amount through the experience. Through the project I learned how to cross compile code for another system. I learned how the arch linux install system works. I learned the minimal components an operating system need to boot up and I learned how those components interacted. I learned how to take multiple projects that different people had written, some who weren't even around anymore and assemble them into a working whole.
 +
 
* 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.
  
 
== F: Feeling fine ==
 
== F: Feeling fine ==
 
* Please describe (in short) your experience with the following tools: ''We only use this question to determine where you need guidance, not for rating!  We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.''
 
* Please describe (in short) your experience with the following tools: ''We only use this question to determine where you need guidance, not for rating!  We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.''
 
** IRC and mailing lists
 
** IRC and mailing lists
 +
I have participated in other IRC channels and mailing lists before. I use open source and free software pretty frequently and use respective IRC channels and mailing lists to ask questions if I have them.
 +
 
** Mercurial or other source code management systems
 
** Mercurial or other source code management systems
 +
I have used Git before. I am not all that familiar with mercurial.
 +
 
** Mediawiki or other wiki software
 
** Mediawiki or other wiki software
 +
I am comfortable and familiar with wiki software.
 +
 
** 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.
 +
 
* 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 :-)''
 +
This community seems pretty cool. Octave seems like a nice project and I hope to participate after GSoC is over.
  
 
== O: Only out of interest ==
 
== O: Only out of interest ==
 
* Did you ever hear about Octave before?  
 
* Did you ever hear about Octave before?  
** If so, when and where? How far have you been involved already?
+
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.
** If not, where would you expect or advise us to do advertising?
+
 
 
* 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, …''
 +
"Where can I find more information on the mex.h header file and functions contained within?"
  
 
== P: Prerequisites ==
 
== P: Prerequisites ==
 
* Please state the operating system you work with.
 
* Please state the operating system you work with.
 +
Arch Linux, 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 access to Arch Linux on my personal desktop computer, laptop, and server. I have access to Windows 10 on my personal desktop computer.
 +
 
* 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
 +
I theoretically have access to all of these things 24hrs a day if need be. However I will put the times where I am comfortable having access to them(time outside of regular sleeping hours)
 
** an internet connection
 
** an internet connection
 +
12.00 - 2.00 UTC (8:00AM-10:00PM EST)
 
** a computer
 
** a computer
 +
12.00 - 2.00 UTC (8:00AM-10:00PM EST)
 
** a computer with your progressing work on
 
** a computer with your progressing work on
 +
12.00 - 2.00 UTC (8:00AM-10:00PM EST)
 
* 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.
 +
They are my personal computers so I have full permissions to install new software on them.
  
 
== 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.
 +
Useful criticism from my point of view is when the critic just tells me straight out what the problem is. That way they can either tell me what they would like me to do to fix whatever I am doing wrong, or we can both come to some sourt of solution. Useful criticism is best when it comes before something spirals out of control and becomes a big problem. I don't usually take things personally and would much rather someone tell me about something I am doing wrong before it causes significant problems.
 +
 
* How autonomous are you when developing:
 
* How autonomous are you when developing:
 +
I am very autonomous in the sense that I like to try to figure something out on my own if I have problems or if I am trying to learn a new technology or software.. I am usually able to figure something like that out on my own. However I do enjoy collaborating with people in order to have new and fresh ideas.
 
** 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.
 +
 
** 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.
 +
  
 
== 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?
 +
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.''
** 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?
+
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 ==
 
* 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:
 +
Get up to speed on how Octave as a language works, Familiarize myself with how the interpreter, the C++ interface works. Familiarize myself with the tools availible within and outside of the Octave program that pertain to my specific project. Familiarize myself and plan the functions that I will be implementing. Find appropriate libraries that I will need for my project. Begin writing code for my project.
 +
 +
May 23 -27: make descision as to what specific tools and libraries will be used for the project.
 +
 +
June 11-15:Have some of the smaller functions that do not require an outside library (polysplit, polyjoin) implemented and ready for bugtesting and documenting. Have made some progress on incorporating the chosen clipping library
 +
 +
June 20-27
 +
Midterm Evaluations
 +
 +
July 20:
 +
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
 +
 +
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]]

Revision as of 15:08, 22 March 2016

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.

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.

  • 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.

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

I chose Octave for a few reasons. The first reason is that for school I have to use mathematical languages like Matlab or R or Octave for many of my assignments, I want to be able to contribute to a project that I actually use. The second reason is that Octave interests me, I am very interested in learning more about how math and programming languages interact. I see working with Octave as a step towards solidifying mathematical concepts I already am familiar with, and learning new ones through programming. Octave is also very similar to MATLAB, which I am already fairly familiar with.

C: Contact

Email: alex.provan.ssh@gmail.com

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.

time zone: UTC -5 (EST) this will most likely not change during GSoC

During GSoC I am best working between 13.00 to 21.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.

E: Coding experience

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.

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

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.

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?

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.

  • 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.

The largest project by volume of total code in the project that I have written code for was an informal experiment I conducted with one of my friends. Using virtualbox we built a tiny linux distribution. It was largely just cross compiled utilities. Starting with just the linux kernel, and busybox. Initially the suckless.org init script was used. However eventually I was able to write an init in C and a minimal getty type program. It was a few hundered lines of code however the entire system booted up and was able to make use of the programs that I had written for it. Even though the system could not do a whole lot functionally I learned a good amount through the experience. Through the project I learned how to cross compile code for another system. I learned how the arch linux install system works. I learned the minimal components an operating system need to boot up and I learned how those components interacted. I learned how to take multiple projects that different people had written, some who weren't even around anymore and assemble them into a working whole.

  • 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.

F: Feeling fine

  • Please describe (in short) your experience with the following tools: We only use this question to determine where you need guidance, not for rating! We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.
    • IRC and mailing lists

I have participated in other IRC channels and mailing lists before. I use open source and free software pretty frequently and use respective IRC channels and mailing lists to ask questions if I have them.

    • Mercurial or other source code management systems

I have used Git before. I am not all that familiar with mercurial.

    • Mediawiki or other wiki software

I am comfortable and familiar with wiki software.

    • 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.

  • 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 :-)

This community seems pretty cool. Octave seems like a nice project and I hope to participate after GSoC is over.

O: Only out of interest

  • 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.

  • 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, …

"Where can I find more information on the mex.h header file and functions contained within?"

P: Prerequisites

  • Please state the operating system you work with.

Arch Linux, and Windows 10.

    • 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.

  • Please estimate an average time per day you will be able to access

I theoretically have access to all of these things 24hrs a day if need be. However I will put the times where I am comfortable having access to them(time outside of regular sleeping hours)

    • an internet connection

12.00 - 2.00 UTC (8:00AM-10:00PM EST)

    • a computer

12.00 - 2.00 UTC (8:00AM-10:00PM EST)

    • a computer with your progressing work on

12.00 - 2.00 UTC (8:00AM-10:00PM EST)

  • Please describe the degree to which you can install new software on computers you have access to.

They are my personal computers so I have full permissions to install new software on them.

S: Self-assessment

  • Please describe how useful criticism looks from your point of view as committing student.

Useful criticism from my point of view is when the critic just tells me straight out what the problem is. That way they can either tell me what they would like me to do to fix whatever I am doing wrong, or we can both come to some sourt of solution. Useful criticism is best when it comes before something spirals out of control and becomes a big problem. I don't usually take things personally and would much rather someone tell me about something I am doing wrong before it causes significant problems.

  • How autonomous are you when developing:

I am very autonomous in the sense that I like to try to figure something out on my own if I have problems or if I am trying to learn a new technology or software.. I am usually able to figure something like that out on my own. However I do enjoy collaborating with people in order to have new and fresh ideas.

    • 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.

    • 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.


Y: Your task

  • Did you select a task from our 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.

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

  • 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: Get up to speed on how Octave as a language works, Familiarize myself with how the interpreter, the C++ interface works. Familiarize myself with the tools availible within and outside of the Octave program that pertain to my specific project. Familiarize myself and plan the functions that I will be implementing. Find appropriate libraries that I will need for my project. Begin writing code for my project.

May 23 -27: make descision as to what specific tools and libraries will be used for the project.

June 11-15:Have some of the smaller functions that do not require an outside library (polysplit, polyjoin) implemented and ready for bugtesting and documenting. Have made some progress on incorporating the chosen clipping library

June 20-27 Midterm Evaluations

July 20: 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

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.