For our POSSE deep dive, we kicked around two good project ideas.
The first dealt with the need for a printed circuit board aggregation service at RIT that would lower the cost of getting hobbyist circuit boards fabricated. There is likely enough demand among hobbyists at RIT to support at least one PCB panel every few days. By purchasing on a panel basis, costs go down. We outlined the process flow for requesting a portion of the PCB and the online support tools to support this.
The second project was an existing open hardware, open software system for performing battery life cycle experiments. It uses Arduinos and PCs along with some dedicated printed circuit board designs. We decided to deep dive on this project and look at how it was structured, and how to use some the tools discussed in the POSSE class to expand the number of people working on the project.
At first we looked at the repository of hardware design files, user manual documentation, software code for the embedded Arduino and the PC side software in JAVA. We realized the repository had included many files that weren’t needed (e.g. backup of temporary files) so we went about cleaning it up.
Then we looked at what supporting document files were in there and determined that we needed to use links to web resources rather than posting copies of the files. For example, the datasheet for the intergrated circuits – posting a pdf copy might raise concerns about copyright, but posting a link would not. This is one of those things to be watched out for in the hardware side of open source – whereas the software you create, you can post your open documentation and GPL license its use, the same many not apply to datasheets for the hardware you use. We also looked at hardware open source licenses and added some guiding documentation on that subject.
On the good news side, the user manual documentation was fairly complete, and all the design files appeared in the repository. In the future, more of an overview needs to be added to the wiki, so that someone just browsing the project can get a quick feel for what it does. Assuming that development often occurs in fits and spurts, using IRC chats will help during times of rapid development. The idea of a hackfest to get folks together for an intense push seems to also be a good tool to use.
Reflecting on the week, it was interesting to go back and look at the open hardware battery cycler with a new set of eyes — eyes that are tuned into the practices of the open software community.
Day 3: POSSE: Several students in the class were able to modify the code of firefox, build it, and launch it as a new browser with a new feature. Pretty nifty. Chris pointed out that without knowing 99.999% of the code, and without understanding the overall architecture, you, as a coder are able to make a useful, noticeable change.
The open source mindset
Contributing to open source code requires a different mindset, one where you are comfortable modifying code without understanding the overall architecture and without reading through/understanding a large portion of the code.
While working on modifying the open source firefox code so that a new tab would be inserted to the left of the current working tab, a quirk was discovered in the code search tool dxr.mozilla.org/mozilla. When you search using dxr Internet Explorer, it doesn’t respond with anything other than a blank stare. However if you search using dxr in Firefox, your search results are happily displayed.
day 2: We are analyzing the open source project GNU Octave. Octave is an open source version of Matlab.
Ohloh.net has a nice set of analytical tools. For example, you can see a world map of where developers are located.
Details on the project can be found on Steve’s blog, linked here.
The first day of POSSE started with a discussion of copyright practices and how that resulted in some 120+ different licensing arrangements for open source software.
The afternoon dove into a dizzying array of communication tools – IRC, planets, blogs, etc. One of my favorites was zodbot that somehow allowed a chat session to be turned into a neat set of minutes and action items.
First day, getting communications working.