For Hacktoberfest, I completed 5 pull requests for 5 different issues in different repositories.
The following is a list of the issues I worked with.
- Fix error character “!” event not found #4
- Add a good about page layout #7
- Add two matrices #74
- Add program to count dyck paths #6
The following is a list of the pull requests that I made, referencing the respective issues above.
- Fix #4 Use ‘ ‘, Add equal #18
- About page #26
- Added addTwoMatrices.cpp -74 #82
- Fix 22 – Height of binary tree #49
- Count dyck paths #138
When I first started Hacktoberfest I was a bit nervous because I was pretty sure at the beginning that I would be working with coding geniuses and now that Hacktoberfest is done, I like to think that I was right. Mainly because of the collection of issues available and the amount of code that has been written.
The issue was that the “!” character was not found. The project was a program where a user would compile the program in Ruby, then enter a string and the string would be displayed in bigger letters. The letters weren’t increased in font size, but the letters were just made up of different characters and displayed in the following lines like the following image.
The problem was the if the user entered the “!” character, then the error,
-bash: !": event not found
After some research, it turns out that the user only had to enclose the string in single quotes, ‘ ‘. After completing the research and adding some code to create a giant equals sign, then making the pull request, I felt like I had gained some basic knowledge of Ruby, and it was something that I could put under my resume under technical skills. What also helped was working with Git Bash to make the pull request. It was my third pull request for the class and the extra practice helped because working with GitHub was always intimidating.
For the second issue, I had to work with HTML and CSS. The following is the issue that I chose to work on.
While deciding to chose an issue I had a lot of other course work at the time so I figured it would be better to work with an easy issue so I could complete it quickly and then go back to my other course work. The issue was asking to work on an About page to the already existing website. I made some additions in CSS to make certain sections of the About page standout and after making the additions, I made the pull request. This pull request served as a good review in styling with CSS since I don’t get a lot of work in that subject these days.
The third issue that I decided to work in was in C++. The issue was asking for a program where two 2-dimensional matrices can be added with each other. The following is the issue.
It had been sometime that I had worked with C++ so I felt that working on this issue was a good refresher in the subject. I had to first research if the matrices had to be the same dimension or not in order to be added. After doing the research I made the program and I made sure to have the user input the dimensions of the matrices which is done once. Then the user would enter the values and after, the matrices would be added with the sum displaying at the end. After completing this issue and making the pull request, I felt that working with GitHub and Git Bash was not as intimidating compared to when I first started this course. I felt that I was starting to realize how helpful GitHub was when it came to collaborating in different projects and being able to see the changes that are made in different projects and the issues available to the public.
The issue was to find the height of a binary tree. I had experience working with data structures which includes binary trees. At first a refresher was needed so I could remember, not how to code a binary tree, but how it is created and how values are inserted. After my refresher, I had an idea as to what needed to be done and how the height is solved so I created my short program to create a binary tree and to find the height of the binary tree. After creating a set of example numbers and running the program, I was able to correctly find the height of the binary tree. I also added two other functions to display the inserted variables in two different traversals which were preoder and inorder.
My fifth and final issue was using C++ again. This is towards the end of Hacktoberfest and at this time I had a lot of work for my other courses so I figured I would figure out an issue quickly just so I could continue with my other course work. I’ve taken two Calculus courses at a University level so I like to think that I have a good background when it comes to math. For this issue, I had to create a program where the number of Dyck paths could be found. A Dyck path is a staircase walk from (0, 0) to (n, n) that lies strictly below (but may touch) the diagonal y = x. The number of Dyck paths of order n is given by the Catalan number. Consider a n x n grid with indexes of top left corner as (0, 0). Dyck path is a staircase walk from bottom left, i.e., (n-1, 0) to top right, i.e., (0, n-1) that lies above the diagonal cells (or cells on line from bottom left to top right). The following is the equation that had to be used in order to find the number of Dyck paths.
Creating a program for this equation seemed straightforward, but by increasing the value n, the value of C goes a lot higher too. So I had to research data types with the highest range in order to get the exact value of the number of Dyck paths. At the end, I finished the program, made my pull request, and I was officially done with Hacktoberfest.
Looking back, Hacktoberfest was been a great learning opportunity when it comes to working in open source, and I am glad I participated in it because I have definitely improved my knowledge in GitHub and Git Bash. By continuously working on different issues and contributing code to different projects, I am able to say that I have a decent background in open source. At first, working with GitHub and Git Bash did not go so well, especially when I was not able to commit for some reason and having to do research, but eventually I was able to complete the pull requests with no problems. I think in the future I would like to work in larger open source projects, and work with programs with many lines of code, instead of just creating my own programs from scratch. That would be a good opportunity and learning experience when going into the professional field because I will have to work with existing programs and somehow improve or enhance what has been done already. At the beginning, I was very hesitant of taking the Open Source class because I knew I would have to work with existing projects that have been create by people around the world, but now I’m very pleased that I took this course because I feel I have expanded my knowledge and experience in different areas of the IT field.