User:Abdallah Elshamy: Difference between revisions

Jump to navigation Jump to search
No edit summary
(15 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 am trying to add the new functions "startsWith" and "endsWith" to octave[https://savannah.gnu.org/bugs/?57041]. I have already submitted a patch and got feedback from the maintainers and waiting for their evaluation after the modifications.
* 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 ==
* I am familiar with IRC and used it to get advice.
* I am familiar with IRC and used it to get advice.
* 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 36: Line 40:
* I will be able to access internet connection, a computer with my progressing work on any time on the day.
* I will be able to access internet connection, a computer with my progressing work on any time on the day.
== S: Self-assessment ==
== S: Self-assessment ==
* Please describe how useful criticism looks from your point of view as committing student.
* Criticism is greatly important and highly appreciated by me as it allows me to learn from other's experiences. To make the best of it I prefer it to:
* How autonomous are you when developing:
** Be as specific as possible.
** Do you like to discuss changes intensively and not start coding until you know what you want to do?
** Be supported with examples.
** 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?
** Use clear language and avoid ambiguity.
** Be given in points so I can track my improvement in a better way.
 
* 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.
 
== 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