Tuesday, January 30, 2018

Reflections on Open Source in Today's World

Why isn't open source hot among computer science students?

This article strives to address misconceptions held by those who are new to the computer science field. The author surveyed 26 attendees of a hack-a-thon for high school and college aged programmers. Personally, I believe this is too small of a sample, but I found my self agreeing with the points she makes. First she points out that novice programmers would rather work on their own projects than contribute to an open source project. When I was a freshman and software, I had several small projects which were nothing more than toys. I could have learned a lot more my attempting to contribute to an open source project. The author also points out that many new programmers do not feel that their skills are up to snuff. Contributing to a an open source project is intimidating and it can be difficult to figure out what is the best way to contribute early on. However, I have noticed that many open source projects are welcoming and have easier tasks set aside for on-boarding new developers. The last point the author makes is that young programmers often believe proprietary software is simply better than open source software. This is not true and its easy to point to examples like Firefox to show what open source is capable of. I am relatively new to open source, but I hope to contribute to open source projects in some capacity for a long time to come.

Can anonymity and accountability coexist?

The author starts by pointing out how anonymous communicative has always existed outside of the internet such as whistle-blowing, voting, and crowd sourcing. These forms of communication can lead to a more open flow of ideas. This thought is continued in the authors first example of reddit (my favorite website) allowing the free flow of creative and imaginative ideas through anonymity. However, as a regular user of the site, I have seen how anonymity has allowed the flow of dangerous or malicious ideas that would never be shared outside a cloak of anonymity. The author points out that there often is a lack of accountability. The author believes there should be other forms of non-anonymous communication to go along side anonymous communication channels.

Thursday, January 25, 2018

I'm Git'n it

Git vs Github
Git is a version control tool that is run from the command line or terminal. It allows multiple people to contribute to one project at the same time. It it is also helpful for retrieving past versions of a project if a developer is unhappy with recent changes to the project. Github is a collection of repositories where code is stored. It is where code is pushed to and pulled from when we use Git. Github has a social aspect in that most projects can be viewed by anyone. Many projects on Github are open source.

Previous Experience with Git
I have used both Git and Github for a few years now. I first learned it for my work in Dr. Bowring's CIRDLES lab. I remember there being a steep learning curve, and I often had difficulty keeping my branches up to date when others committed work. I got the hang of it with the help of my team members.

Git and Ubuntu
When I first began installing Git on my Ubuntu virtual machine, I expected there to be some sort of difficulty due to my past experiences. I can recall very few times when installing anything on Ubuntu didn't involve some sort of hiccup. I was almost surprised when installing git took only seconds and worked just as I expected it to.

Tuesday, January 23, 2018

Joining the Project

After looking into our original three choices for our FOSS project to work on, we thought we would work on Yoda-Pa. However, we found that there was a very small number of issues to working, meaning our overall body of work for the rest of the semester could potentially be small. We looked at other projects and decided on Jupyter Notebook. Jupyter notebook is an open source notebook project with a thriving community and hundreds of well documented issues to work on. Some issues are even tagged specifically for newcomers to work on to get a feel for the project.

Joining the community was easy. I joined the community mailing list with my google account to receive updates on the project as a whole. I also joined the Jupyter gitter for chatting with others working on the project. There is also a stack overflow page for solving issues related to Jupyter. Overall, it appears the community is thriving and welcoming to newcomers.

Thursday, January 18, 2018

H/FOSS Experiences and Reflections

Installing Open Source Software
I had some experience installing open source before, so I knew to expect some difficulty going in. I installed MIT's Yoda-Pa personal assistant on my Ubuntu virtual machine. The process was not too much of a hassle. The only issue I ran into was installing pip to make sure I had the correct dependencies and the correct version of python. Their website's documentation lacked detail and was somewhat ambiguous. I give credit to Yoda-Pa; their documentation was both up to date and detailed, which seems to be a rarity when working with open source software.

The Cathedral and the Bazaar
I found the metaphor of the cathedral and the bazaar to be true in my own experiences. In my experience as a Windows user, I feel like I'm often given one reality, or set of rules. Just like going to church and listening to the priest. The more experience I have with Linux systems, the more I feel I can truly use the system the way I want to, albeit with a little more work. I found the release early, release often component to be interesting. I know from experience working in the CIRDLES lab that this is often easier said than done. You and your team have to buy in to the idea completely. The upsides allow problems and wanted features to be addressed quickly. The author also talks about the benefit of many developers working on an open source project can wrangle in the complexity of large systems. The project leads must make sure that there is some sort of guidelines to contributing to project as far as documentation to make sure the code remains maintainable.

Ethics of Free Software and a Rebuttal
Meyer points out that free software often is and should be an ethical think to be a part of. However it is rare to see free software because developers simply need money to make a living. Throughout the article, Meyer is critical of Raymond, who wrote "The Cathedral and the Bazaar." He believes that Raymond's attempts to profit from the open source movement are unethical. He also criticizes Raymond's beliefs about Americans' rights to own guns. I agree with Meyer, but I do not think this article was the place to discuss gun rights. In the end, Meyer believes both commercial and free software are here to stay and both should work towards helping humanity.

One of the first things Raymond says in his response is that Meyer's truths are not proven, only that Meyer says they are "self-evident." Raymond does not like Meyer's commercial software developers, especially Microsoft. He does not think that developers have any obligation to help people and that they are fine just trying to maximize profits.


Tuesday, January 16, 2018

My H/FOSS Preferences

The first step in this course will be to select an open source project to work on throughout the semester. Specifically, we were looking for a humanitarian free and open source project (HFOSS). However, we found that many of these projects were either not kept up or were not looking for help. So we opened up our search to regular FOSS projects. For now, we narrowed our search to three projects:


MASTER HASH – MasterHash is a password manager that allows a user to have an almost infinite amount of passwords while only using their main one. What will make this product different from others on the market is that it will all be stored in one encrypted file which will allow easy transport. The software is written mainly in Java, with the GUI written in JavaFX.
YODA-PA – Yoda-pa is a small, fun, personal assistant via the command line.
SUGAR LABS – Sugar Labs® is a volunteer-driven member project of Software Freedom Conservancy, a nonprofit corporation. Originally part of the One Laptop Per Child project, Sugar Labs coordinates volunteers around the world who are passionate about providing educational opportunities to children through the Sugar Learning Platform. Sugar Labs® is supported by donations and is seeking funding to accelerate development.

Thursday, January 11, 2018

Introduction

Hello!

My name is Drew Bigelow. I am a senior computer science major at the College of Charleston in Charleston, South Carolina. From this point on, this blog will be used to show my progress in CSCI 462 - Software Engineering Practicum. The course is instructed Dr. Jim Bowring.