Week 4
This week I will be listing open source software projects I have reviewed as candidates for receiving contributions in the Open Source Software course’s final project. Below each, I will list a very, very reduced form of some of the defining characteristics of an open source project, and check off where a project does, or does not, meet these criteria.
OpenCV
OpenCV, along with ROS, is one of the two open source projects I had in mind for potential future contributions upon entering this course. It is a popular and widely used computer vision library which has been in development for years and has multiple language support, namely C++ and Python. The main OpenCV repository appears to be well documented (though it is missing a code of conduct) and active; there are a large number of contributors, but it is a bit concerning to see so much activity surrounding the top contributor. There is no denying that some specialized knowledge is likely to come into play with any work on OpenCV, so it is with some hesitation that I check off the project tools/technology criteria below. That said, at this early stage at least, OpenCV seems like a viable project.
- Documents: critical documents present, readable, thorough
- Project Tools/Technology: familiar language, no specialized knowledge needed, good issue tracker system, and communication
- Project Activity: a healthy and manageable amount of activity
- Responsive and Nice Community
Robot Operating System (ROS)
ROS is, to my knowledge, the big robotics software project, not just the big open source robotics project. Just a couple of months ago, NASA put out a challenge which required the use of it. Personally, I have been working with it since last summer, and am therefore disappointed, though not terribly surprised, that the project doesn’t appear to check all the boxes below. ROS documentation is more generally all over the place, literally and in terms of quality. There is an abundance of repositories and not only is it not clear where to begin, but not every repository seems to have a license, readme, or even clues on where else to look. Even though I use C++ and Python, ROS is a very complex undertaking and my impression is, depending on where one tries to launch into it, contributing will require a lot of background knowledge. Moreover, while the parts of ROS seem fairly active, they also seem constrained to a small contributor core, likely because of the aforementioned need for expert knowledge.
All in all, I haven’t checked off most of the boxes below, because while the community is active and welcoming, it seems like a daunting project. That said, I will have to keep my eye open for perhaps a single repository / component of the ROS world that may serve as the perfect in and which otherwise checks off these boxes.
- Documents: critical documents present, readable, thorough
- Project Tools/Technology: familiar language, no specialized knowledge needed, good issue tracker system, and communication
- Project Activity: a healthy and manageable amount of activity
- Responsive and Nice Community
Jupyter
In class this past week the students were split into groups and my group was assigned to review the Jupyter project. Jupyter is a large project surrounding “interactive computing” but is perhaps best known for its popular product, Jupyter Notebook, of which I am a fan and a user. Allowing the combination of markdown and code “cells” (which can be run in isolation), Jupyter Notebook offers a tool for experimentation and presentation, which is particularly useful in machine learning, data sciences, and any science which involves data processing and visualization. While perhaps not my first choice, it checks off a number of the criteria below and is a leading contender.
- Documents: critical documents present, readable, thorough
- Project Tools/Technology: familiar language, no specialized knowledge needed, good issue tracker system, and communication
- Project Activity: a healthy and manageable amount of activity
- Responsive and Nice Community Check out this example!
Other Course-Related Activity:
- This week I made two additional OpenStreetMap contributions and also did my first blog editing activity. Details and links for these can be found on the Contributions page.