From Octave
Jump to navigation Jump to search

A: An introduction[edit]

  • My name is Amr Mohamed, a student from Egypt. I am a self motivated person who enjoys his work and I am a fourth year undergraduate student at faculty of engineering - Ain Shams University in computer and systems engineering.
  • I speak arabic as a mother tongue and have good command of english.
  • I have a background in Mathematics , Electronics and Computer Science. I have done courses on Linear Algebra, Numerical Analysis, ODEs, and Complex analysis.
  • I am interested in coding, and i find the GSoC an amazing opportunity to learn how to interface to other developers in a fruitful fashion.
  • I'm mainly interested in studying algorithms , signal processing and competitive programming which highly relies on C++.
  • I think contributing to a well-established organisation like Octave is a great experience that one will never forget. I hope that i can do my best to collaborate with the developers/maintainers of Octave in order to contribute to this great organisation.

I have been using Octave for nearly two years and was always impressed by having an open-source alternative to Matlab.I used many packages of the Octave Forge such as : Control - Serial - Signals and others.

C: Contact[edit]

  • My Nickname on the IRC, wiki is AMR_KELEG and amr_keleg on the Savannah bug tracker.
  • I live in Cairo,Egypt and my time zone is UTC+2:00.
  • I usually code from 18.00 to 23.00 and during the vacation i could also work from 11.00 to 15.30

E: Coding experience[edit]

  • I am programming using C++ as a main language.
  • I have been using MATLAB/Octave for more than two years now.I wrote m-scripts / GUI apps and Simulink programs.
  • I am currently implementing a college project using Qt.
  • I worked on a signal processing project during the last summer to detect the hand movement using EMG (Electromyography) and Octave was the project's main processing unit.Its main purpose was to detect hand gestures.
  • I have average knowledge of python, Ruby , Rails , Java , Android and Game development.

F: Feeling fine[edit]

  • General Experience with the required Octave tools:
    • I am comfortable with using the IRC and the Mailing list.
    • I am generally using Git but working with Mercurial isn't a big deal.
    • I had built the stable branch and used the gdb on Octave smoothly.
  • I am trying to fix the double-single computations bug [1] and hope i can contribute in solving the problem.I have submitted a patch but it requires some refinements.
  • Applying mathematical knowledge through programming was always my dream. I think contributing to Octave fulfills my passion.

O: Only out of interest[edit]

  • I have heard about Octave from my colleague three years ago. I loved the idea of having an Open Source application that can replace Matlab.
  • I still don't get the idea of adding packages to Octave Forge instead of adding them to the main Octave program.

P: Prerequisites[edit]

  • I am mainly using Ubuntu 14.04 for development and surfing the internet.
  • I use Windows 8.1 on my desktop computer for programs such as : Matlab -Proteus etc.
  • I have complete (sudo) access to the computer running Ubuntu 14.04 24-7.Installing new software does

S: Self-assessment[edit]

  • I am a self motivated person who tries to help people by sharing my experience with them. I always discuss my programs with my colleagues in order to share our knowledge. I am currently interested in Competitive Programming where continuous discussion among the team members is a must.
  • I prefer to have a clear plan before starting to implement the required algorithm / script rather than have unclear requirements and doing work that doesn't fit these requirements.
  • I might require frequent reviewing and feedback from my mentor to make sure that i am on the right track and improve the quality of the implemented functions.

Y: Your task[edit]

  • I am interested in working on the "Implement boolean operations on polygons" project.
  • The goal is to implement a Matlab-compatible set of boolean operations and supporting function for acting on polygons. These include the standard set of potential operations such as union/OR, intersection/AND, difference/subtraction, and exclusive or/XOR.
  • Milestones
    • 10-6 : polysplit - polyjoin
    • 8-7 : ispolycw - poly2cw - poly2ccw
    • 22-7 : polybool
    • 29-7 : poly2fv
  • My proposal can be found here :