This is the second follow-up post from the UCOSP program this past fall. Besides creating new WebWorks plugins, some of our work has been to maintain the ones we have built in previous terms. Tim, from Thomson Rivers University in BC, spent his time working on a few different plugins. Here’s his account of the term:
The opportunity to contribute to a BlackBerry WebWorks plugin made me learn two important things that change the way I code: The importance of communication and never taking anything for granted.
Since starting to learn how to code, I have always coded alone and I rarely had the chance to sit with others and code together. If I encountered any problem I would look up the answer myself. In mid-September, I attended the code sprint in Toronto. During the sprint, people exchanged ideas about how to achieve the goal. Questions were asked and answered quickly when someone had encountered them before. At that moment I realized how efficient it was, and was enjoying being part of it. Even though the sprint is over and we are not co-located anymore, we continue meeting on a weekly basis, where members of the team share their progress and issues. I would say this is very important in the process of learning, thus I am happy I get to understand it through this opportunity.
BarcodeScanner, ExtractZipFile, and LowLatencyAudio are the three plugins that I worked on this term. Tasks like bug fixes, new features, and function modifications are what I spent time on. In order to modify the code, I needed to understand the code. I needed to know which part of the code is doing what job and understand why the former authors coded it in that way. During the process of understanding, I learned that things are not always as they appear. Here is one example: You would expect the barcode scanner to work on any data string, but instead it gave you an error when there is was a space in the string, and returned nothing to the user. When I examined the code, I thought native C++ code that created the JSON return object might be stripping off everything past the first space. Eventually I found out the bug was never in that code, but was in how the scan result was parsed and interpreted. Such simple mistake can be easily overlooked if you take code for granted, thus I now pay extra attention to those details which I think should be behaving properly.
Due to Tim’s work, ExtractZipFile now supports compressing directories and multiple files, LowLatencyAudio makes more efficient use of resources, and the BarcodeScanner is fixed to scan data with spaces. In addition, we’ve been able to release a major update to the BarcodeScanner so that it uses the native camera viewfinder when scanning. If you’re interested in following along with the student project, watch #bbucosp on Twitter, and all the code will be going into the public BlackBerry repositories on GitHub. If you want to get involved yourself, contact me to get started: @timothywindsor on Twitter, https://github.com/timwindsor on GitHub.