From Octave
Jump to navigation Jump to search

A: An introduction[edit]

  • My name is Nader Nabil Mansour, Egyptian student. Hard-worker, passionate software engineering student. Currently i am in my last year in college , studying computer and systems engineering at faculty of engineering - Ain-Shams University.
    • Languages I speak: Arabic (native) and English (very good).
    • I have a very good background in mathematics (ODEs, linear algebra, numerical analysis and calculus), electronic and electric circuits and computer science(oop , data srtucture , problem solving skills).
  • Google summer of code is a great opportunity to contribute in an open source project , and see a code of large software , dealing with different people , work in a team and learn from their experiences .
    • I don't have any previous experience with the GSoC.
  • After searching and seeing a lot of organizations ideas and projects , i found that octave has some interesting and understandable ideas . so i decided to work with octave this summer.

C: Contact[edit]

  • User name on Savannah and Nick name on IRC: nadern96
  • I live in Cairo (UTC+2). my location won't change over GSOC duration.
  • I usually code around 10.00 to 18.00 and could also try to start earlier (~8.00) for few days

E: Coding experience[edit]

  • Solid knowledge of C++ and used it in many projects.
  • I have been using octave/MATLAB for about two years,familiar with some packages like: Control and Signals. I wrote some m-scripts and used Simulink.
  • I have a good knowledge of Qt and made many college projects using it (PCI Bus Simulator, Scheduler , Parser , Scanner , Graph Centrality).
  • I have a good knowledge of Python and some knowledge of Java/JS.
  • I get used to work in a since the second year in college , in a lot of projects in college or in competitions. i don't have experience with open source.
  • The biggest project i have written code for is the PCI Bus Simulator and arbiters , we have developed 2 versions of that simulator. A non-Gui version that is implemented using Verilog and a GUI-version implemented Qt c++ . my role was:
    • Implementing the GUI interface using Qt.
    • Integrating the system.
    • Documentation and reporting
  • I have solved a bug in strncmp function , it is a Matlab compatibility issue [1]. I have already submitted a patch and got feedback from the maintainers and waiting for their evaluation after the modifications.

F: Feeling fine[edit]

  • I am familiar with IRC .
  • I am familiar with mailing list and used it in communication with the mentors.
  • I used Mercurial to submit a patch and have a good experience with other version control systems which is 'git'.
  • I am new to the wiki.
  • I am familiar with make , gcc ,not familiar with gdb.
  • To help completing the project i worked on during GSOC , helping other one to complete what i started.

O: Only out of interest[edit]

  • I heard about octave two years ago in college as an open source alternative for MATLAB since we have assignments that used MATLAB and we needed a software with similar capabilities.
  • I think that any question i searched for , i found it's answer in the wiki.

P: Prerequisites[edit]

  • I use Ubuntu 18.04.4 LTS.
  • I have my own laptop that i could access anytime.
  • I have full access and I can install any new software on it.
  • I will be able to access internet connection, a computer with my progressing work on any time on the day.

S: Self-assessment[edit]

  • Criticism is important and highly appreciated as it allows me to learn from other's experiences. To make the best of it I prefer it to:
    • Be as specific as possible.
    • Be supported with examples.
  • 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.
  • Coding a proof of concept gives an immediate feedback of the reliability of my work. It may set me in the right path faster than other cases where I can't get the accuracy of my results. Even if my work is thrown away, the most important thing for me is to learn and get knowledge. However, it also means that we have known one wrong path that should be avoided in future.
  • 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 "Using Python within Octave" project.
  • The goal is to is to add functions and types to Octave to allow calling Python functions directly from Octave.

List of deliverables :

    • Perform slice indexing on lists and other sequence objects using parentheses indexing syntax
    • Operate on Python objects using standard Octave arithmetic and logical operators
    • Load and save Python objects to Octave data files using the standard load/save commands
  • My proposal can be found here :