Martin Fowler, a Software Design Maestro said -
"Not all eyes that notice bugs in Open Source code belong to saints who will report or repair them >in the interest of the public good."
Thus, I tried to take my first step towards being a saint by starting with solving some issues present in the demo of the capture code present in Spectral-Workbench.js. It was really a fun task to do and also helped me to get acknowledged about the codebase of the project.
The bug was that whenever one started the capture demo in a browser, the camera as well all other functionalities won't work since an error related to flot.js library popped up which prevented the graph from being plotted. Here's the error that was popping up -
Uncaught Error: Invalid dimensions for plot, width = 0, height = 200 at getCanvasDimensions (jquery.flot.js:803) at setupCanvases (jquery.flot.js:853) at new Plot (jquery.flot.js:224) at Function.$.plot (jquery.flot.js:2690) at getRow (capture.js:341)
I had never used
flot before thus, I started to go through the documentation of the flot project. After some searching up and discussing with mentors, I came to find that the width was being set to 0 even though the
index.html file had
width:100% parameter in it. We had some discussion over it on the github issue thread and finally it was resolved by manually adding the width in the stylesheet and removing it from the html file instead.
Having done that, due to some personal circumstances I could not work and contribute for a few days. I am really lucky to have found such cooperating mentors who understood my situation and encouraged me to work.
Thus, currently I have been working on introducing a button in the demo to connect PiCamera with the Spectral-Workbench. Have implemented most of the part but some error is arising due to the breaking of Travis CI which we'll try to get fixed within this week.
Making First-timer-issues (FTOs)
In Public Lab, we have a culture of giving back to the community by making First timer issues which a new contributer can easily solve and thus, get known with -
- the basic objective of the project.
- the directory structure of the project.
- the git workflow we follow while solving issues and sending patches.
- the way one should communicate in communities with other members.
Also, it gives him/her the start and the boost to contribute further. Every great contributer once started with a small bug/patch and eventually goes on to become a frequent contributor to the project.
Thus, I made a few First-timer-only issues in the project and to my surprise one issue was patched the other day. This made me realise how well the culture of open-source is thriving and spreading. I felt really happy to review their Pull-Requests and encouraged them to contribute more.
Having completed the Connect to Raspeberry-Pi feature, I have the following tasks on my roadmap -
- Patch the download button not working problem.
- Use grunt and bundle the files.
- Ensure that both the features are working.
- Work on the
getUsermedia APIand ensure that the project works on iOS.
capture.jsinto independent components.
I have some more tasks to be completed after getting the above points ticked which I will chalk out after discussing with the mentors. As of now, my focus is to get the above milestones completed as soon and as efficiently as possible.
At the last, I would really like to thank all my mentors for their awesome guidance,belief and cooperation. I can't find better mentors than you.
:wq for now.