User:Abdallah Elshamy: Difference between revisions

Jump to navigation Jump to search
(13 intermediate revisions by the same user not shown)
Line 5: Line 5:
* Google summer of code is an excellent opportunity for a student like me to work with other developers on a sophisticated software that has a lot of users. I hope to become a better and more experienced developer and to hone my soft skills by collaborating with the developers/maintainers of Octave.
* Google summer of code is an excellent opportunity for a student like me to work with other developers on a sophisticated software that has a lot of users. I hope to become a better and more experienced developer and to hone my soft skills by collaborating with the developers/maintainers of Octave.
** I don't have any previous experience with the GSoC.  
** I don't have any previous experience with the GSoC.  
* I used octave a lot as an open-source alternative to Matlab. It was extremely helpful for me as a student.Thus, I want to help in enhancing and adding to this important project.
* I used Octave a lot as an open-source alternative to MATLAB. It was extremely helpful for me as a student.Thus, I want to help in enhancing and adding to this important project.
 
== C: Contact ==
== C: Contact ==
* User name on Savannah and Nick name on IRC: '''Abdallah_Elshamy'''
* User name on Savannah and Nick name on IRC: '''Abdallah_Elshamy'''
Line 12: Line 13:
== E: Coding experience ==
== E: Coding experience ==
* I have a good knowledge of C++ and used it in many projects.
* I have a good knowledge of C++ and used it in many projects.
* I have been using octave/MATLAB for about two years. I am familiar with some packages like: Control and Signals. I wrote many m-scripts and used Simulink.
* I have been using Octave/MATLAB for about two years. I am familiar with some packages like: Control and Signals. I wrote many m-scripts and used Simulink.
* I have a good knowledge of Qt and made two University projects using it.
* I have a good knowledge of Qt and made two University projects using it.
* I have a good knowledge of Python and a fair knowledge of Java.
* I have a good knowledge of Python and a fair knowledge of Java.
Line 20: Line 21:
** Helping in implementing the assembler  
** Helping in implementing the assembler  
** integrating the system.
** integrating the system.
* I have submitted a patch to add the new functions "startsWith" and "endsWith" to octave[https://savannah.gnu.org/bugs/?57041].
* I successfully added the new functions "startsWith" and "endsWith" to Octave[https://savannah.gnu.org/bugs/?57041].
* I submitted a patch to add the new function "clipboard" to Octave[https://savannah.gnu.org/bugs/?57699].


== F: Feeling fine ==
== F: Feeling fine ==
Line 26: Line 28:
* I am familiar with mailing list and subscribed to it.
* I am familiar with mailing list and subscribed to it.
* I used Mercurial to submit a patch and have a good experience with other version control systems like git.
* I used Mercurial to submit a patch and have a good experience with other version control systems like git.
* I built octave using make tool and was able (with the help of the maintainers) to add functions to the build system.  
* I built Octave using make tool and was able (with the help of the maintainers) to add functions to the build system.  
* What will make me actively stay in the community that I want to help in developing octave as it helped me in my study. besides, I believe that I will learn a lot from this.
* What will make me actively stay in the community that I want to help in developing Octave as it helped me in my study. besides, I believe that I will learn a lot from this.
 
== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?
* I heard about Octave approximately two years ago in my college as an open source alternative for MATLAB since we have projects that used MATLAB and we needed a software with similar capabilities.   
* I heard about octave approximately two years ago in my colleges as an open source alternative for MATLAB since we have projects that used MATLAB and we needed a software with similar capabilities.   
* The first question concerning Octave I could not find an answer to rather quickly was how to add to the build system. With some searching and help from IRC channel and maintainers I was able to solve it.
* The first question concerning Octave I could not find an answer to rather quickly was how to add to the build system. With some searching and help from IRC channel and maintainers I was able to solve it.
== P: Prerequisites ==
== P: Prerequisites ==
* I use Ubuntu 18.04.3 LTS.
* I use Ubuntu 18.04.3 LTS.
Line 45: Line 48:
* I prefer to discuss changes and to have a good vision about them before starting to code. Surely, all the details may not be clear and need further search but having a good general view about the system helps a lot and directs your search and your efforts to fruitful paths.  
* I prefer to discuss changes and to have a good vision about them before starting to code. Surely, all the details may not be clear and need further search but having a good general view about the system helps a lot and directs your search and your efforts to fruitful paths.  
* Prototypes definitely helps you understand what you are trying to do so coding and modifying them (with the risk to throw them away) may be useful to have a better understanding and a better implementation of the requirements.
* Prototypes definitely helps you understand what you are trying to do so coding and modifying them (with the risk to throw them away) may be useful to have a better understanding and a better implementation of the requirements.
== Y: Your task ==
* I chose JSON encode/decode project.
* My project will focus on creating MATLAB compatible jsonencode and jsondecode functions. This involves proper documentation of the work and unit tests to ensure the correctness of the implementation
* This is my elaborated proposal [https://docs.google.com/document/d/1wmQVZseVSDv6I33449r8hCDG1DmM1hei0zdkZspDpTQ/edit?usp=sharing]
* A detailed timeline is provided on the elaborated proposal. My milestones will be:
** Deliver the test suite.
** Deliver jsondecode.
** Deliver jsonencode.
[[Category: Summer of Code]]

Navigation menu