Week11
Getting Down to Earth With Vicky Brasseur
This past week our open source class received a particularly thought-provoking and passionate talk from Vicky Brasseur, who has quite the background in - particularly the business side of - the open source world. Ms. Brasseur is a former VP of the Open Source Initiative, currently serves as Director of Open Source Strategy for Juniper Networks, and is also the author of Forge Your Future With Open Source, which discusses how to contribute to open source projects. Her talk focused on the theme of “Four Ways to Spread the Four Freedoms”, referring of course to the freedoms to run, study, redistribute and improve software. While this sounds like the focus of a lofty and idealistic discussion, Ms. Brasseur instead laid out a positive, but nonetheless biting, message: the mission is not yet accomplished. The FOSS world has accomplished a lot, but there remains much to be done.
In a way I could not help but feel that Ms. Brasseur offered what seems fairly inevitable in the history of revolutions: a follow-up critique on how the revolution is incomplete and the stated goals and ideals of the revolution had not been met in full (or perhaps that the revolution had been betrayed or a was always a lie). The two most immediate reactions to that statement are likely: a) revolution?! and b) was the talk that negative? Regarding the former, I don’t believe its of much value to try to compare or contrast the open source movement to the likes of the French Revolution, but I will say that despite the relative youth of digital computers in the span of human existence, the open source movement was a revolution, rebelling against the dominant closed-source and proprietary forces of the day. Moreover, as with many revolutions, the open source movement has meant many things to many people, regardless of the official published manifestos and the declarations of its leaders.
As for Ms. Brasseur’s outlook: no, I would not say the talk was negative or that she proclaimed the movement shallow or betrayed. In fact, while not shying away from calling out some of the worst habits of the open source world - from thankless communities to documentationless projects - and the need for some desperate fixes, like a “no a**hole” policy in open source chats, her message was one of hope. The open source revolution mission is not accomplished, but nor is the effort out of ideas or steam. By focusing on the four general approaches Ms. Brasseur laid out - applicability, usability, inclusivity and humility - in combination with a healthy recognition of the privileged positions we have in our opportunities to choose and contribute to open source projects, the movement can continue to move forward and do better. Ignorance and cheap solutions are huge enemies, but not insurmountable, particularly if the values of the movement are well-defined and the participants strive to adhere to them with sincerity.
Code.gov
Professor Weiss recently pointed out a fascinating project, of which I had not heard of previously, to the open source class: Code.gov. The website acts as the gateway to the U.S. Federal Government’s steps in the direction of open source software: while the terms government and open source hardly seem to belong in the same sentence, and that explanation requires some qualification, your eyes do not deceive you. To be clear, the project is first and foremost an effort to share work and promote code reuse across Federal agencies (see here), and I must say that I wholeheartedly support that idea. The tendency towards tools developed in secrecy and behind closed-doors is a counterproductive one, both in government, industry or really any endeavor. Some may prefer Linus’ law here but perhaps the simplest relevant adage is: “don’t reinvent the wheel.” Will every agency - or even every department within an agency - require the same kind of wheel? No, but in the spirit of sharing, cooperation, and broad review, the best can be made of existing work and needs can be met quickly and cost-effectively. Who doesn’t like to imagine that their tax dollars are well spent?!
However, the initiative also contains an “Open Source Pilot Program” whereby agencies must release at least 20% of newly developed Federal source code to the public. (Notably the code.gov website itself is an open source project.) As with most things open source, I believe this can only be beneficial (provided careful security review and precautions) on both sides of the exchange: the public benefitting from usage of such code and opportunities to contribute, and the government benefitting from review, ideas and contributions. Without extensive background in web technologies and possessing only beginner knowledge of JavaScript, my own ability to contribute to the open tasks and issues may be limited but not out of the question. In particular, I found some opportunities to work on a CDC tool which seem interesting and of reasonable beginner difficulty here and here.
Coronavirus Data Repository by John Hopkins CSSE
Another project highlighted by Professor Weiss is the 2019 Novel Coronavirus COVID-19 (2019-nCoV) Data Repository by Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE), which contains the data behind the “2019 Novel Coronavirus Visual Dashboard” (links to the dashboard variants at the repository page). Interestingly, despite that the project appears to be open source with many issues and pull requests imbibed with volunteer spirit (a contributor claims it is a volunteer project here), the terms of use in the readme specify that the repo contents are “provided to the public strictly for educational and academic research purposes” and there is no license for the data repository, although there is an issue open on this matter.
For as much as it is not a software project with unknown technologies, and despite the plethora of open issues, it does not seem immediately obvious as to how to contribute to the project. The lack of a contributing guide and the fact that the vast majority of issues seem to surround mix-ups or bad imports in the data, which need to be verified and possibly corrected with self-crafted scripts rather than any repository-listed procedure, make it difficult. Moreover, the sheer number of open pull requests, some of which attempt these sorts of fixes, is a discouraging factor to attemtping these sorts of fixes on your own.
While the cause is most certainly a worthy one, and contributions may be possible with very careful measures, I cannot say this appears to be a straight-forward project in which to get involved.
FOSS Project Log:
Monday, April 20
In light of the frustration encountered by our final project group, which I expressed in last week’s blog, the group met with Professor Weiss to discuss our difficulties and next steps. Unfortunate as these difficulties are, they are not unheard of in open source projects, particularly as priorities change and maintainers engage in other responsibilities. Professor Weiss graciously permitted us the freedom to change projects if we did not see our contributions as likely to have any impact and if we were not going to enjoy engaging in the Atom project. Thus our group resolved to carry out further research into other possible projects where our efforts may be better directed.
Saturday, April 25
Saturday was spent primarily looking at OpenCV tutorials and issues, as well as the scikit-learn project proposed by Boubacar. I have used scikit-learn, commonly abbreviated as sklearn, before, and have done considerable work with other Python libraries, but had not considered these as potential sources of open source opportunities! I may be biased given my own affinity for computer vision, but OpenCV, which does have some issues and wiki documents regarding improving tutorials and documentation, seems viable. Sklearn will require deeper digging to confirm viability.
Sunday, April 26
Due to a very serious health matter in my family (and a night of poor sleep), Sunday did not turn out to be nearly as productive as planned. Progress on the final project - aside from looking at opportunities to contribute in the aforementioned coronavirus data project - was unfortunately limited to discovering that the Pandas library for Python is also open-source and some discussion with the group regarding their thoughts and findings.
Other Course-Related Activity:
Nothing further at this time.