34
edits
(25 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 | * 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 == | |||
* User name on Savannah and Nick name on IRC: '''Abdallah_Elshamy''' | |||
* I live in cairo (UTC+2). my location won't change over GSoC duration. | |||
* I usually split my working hours to regain my focus so I code from 06.00 to 10.00 and from 12.00 to 17.00 | |||
== E: Coding experience == | |||
* 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 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 am comfortable with working with team and worked with many teams in university projects. | |||
* I Worked with a team to make a Verilog model for MIPS processor, an assembler for MIPS, a GUI where user can write assembly code and run it and an automated test for the Verilog model. my role over time was | |||
** Implementing the GUI using Qt. | |||
** Helping in implementing the assembler | |||
** integrating the system. | |||
* 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 == | |||
* I am familiar with IRC and used it to get advice. | |||
* 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 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. | |||
== O: Only out of interest == | |||
* 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. | |||
* 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 == | |||
* I use Ubuntu 18.04.3 LTS. | |||
* I own this machine and have full (sudo) access to it. 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 == | |||
* 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: | |||
** Be as specific as possible. | |||
** Be supported with examples. | |||
** 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]] |
edits