Adventures in Open Source Development
Tags: opensource, programming, osd600
Published: 2023-09-12 01:26:33

Hello, everyone! My name is Roy.

I am a 5th semester student in the Computer Programing and Analysis (CPA) program at Seneca Polytechnic (formerly Seneca College).
My first-ever blog post will be about my decision to take the Open Source Development course (OSD600), offered by the [Seneca Centre for Development of Open Technology](https://cdot.senecacollege.ca/) (CDOT), and the start of my journey in open source development.

I am taking this course because I want to build experience and skills contributing to open source software. One thing about Open Source that attracted me is the transparency in open source software. Unlike proprietary/closed source software, in open source software the source code is freely available for anyone to modify and curate. I feel this allows open source programs to be revised and upgraded faster than their closed-source counterparts.

In addition, I like how open source software can provide free alternatives to proprietary solutions. Recently, I purchased movie tickets for my mother and her friends in separate online transactions. For each transaction, the tickets were sent in a separate PDF File. To make things easier for my mother, I wanted to combine these PDF files into one file for my mother to present at the movie theatre. Adobe offers this functionality through [Acrobat Pro](https://www.adobe.com/ca/acrobat/complete-pdf-solution.html?ttid=annual-pro&sdid=DD5B1FFH&mv=search&mv2=paidsearch?mv=search&ef_id=Cj0KCQjw9fqnBhDSARIsAHlcQYSObWmnODPKIWBKXlAX8W3h6y4SBS3zbQcaWt_E5F7AzAeIm36lVz8aAgT7EALw_wcB:G:s&s_kwcid=AL!3085!3!495139191296!e!!g!!adobe%20acrobat%20pro!12198070712!122681202608&gad=1&gclid=Cj0KCQjw9fqnBhDSARIsAHlcQYSObWmnODPKIWBKXlAX8W3h6y4SBS3zbQcaWt_E5F7AzAeIm36lVz8aAgT7EALw_wcB), a complete version of Adobe Acrobat available for CAD $25.99/month after a 7-day free trial. However, after some searching, I found [Apache PDFBox](https://pdfbox.apache.org/), an open-source Java PDF library that gives several functionalities for working with PDF documents, including [merging PDFs](https://pdfbox.apache.org/docs/2.0.1/javadocs/org/apache/pdfbox/multipdf/PDFMergerUtility.html). Instead of subscribing to Acrobat Pro, After downloading PDFBox, I was able to experiment with it for my needs. Admittedly, I could not figure out how to merge the PDFs without errors, and due to time constraints, I ultimately decided to combine screenshots of each ticket into one image. However, this experience quickly showed me the value in Open Source software, and makes me want to pay it forward by making my own contributions to open source projects.

During this semester, I want to contribute to various open source projects, even if it's just by providing minor bugfixes. Some projects I'd like to contribute to include projects in software testing, computational biology, and video games. [RuneScape](https://oldschool.runescape.com/) is a game I played a lot during my childhood, and [RuneLite](https://runelite.net/) is a popular open-source client for the game, which provides many features and plugins that can improve user experience such as HD graphics and map markers. I don't know whether I will be able to contribute much to the project, but I think it would be something cool to do.

The GitHub trending repo I researched for this week is [nlohmann/json](https://github.com/nlohmann/json) (JSON for Modern C++), a project that lets C++ developers work with JSON objects and data. Its key features include intuitive syntax, heavy unit-testing, and trivial integration (the entire library is contained in one header file and written entirely in vanilla C++11). I chose this library because I enjoyed the OOP courses at Seneca, which teach C++, and I wanted to learn how project adds JSON functionalities to the language.

With this post, I now begin my adventures in open source development.