Blog Post Workaround: Working IRL

My computer had a hard drive failure that kept me offline for a little bit. It took longer than expected for me to get it back because my working computer is an older model that uses a rare/ obsolete connection for the drive. I had an SSD drive but the shop told me I needed to replace it with a PATA/IDE SSD drive. The Locating and delivery of the part was driving me crazy impatient. I did do offline work with the main author which was good. On one day, he reviewed my code, and he played "devil's advocate" regarding the front-end refactoring. He quizzed me on the decision I made with regards to the frontend. He asked me if I've designed the frontend to "fail gracefully". I hadn't.

Comments

Working IRL pt2

The new features require bootstrap and jquery dependencies, and I hadn't thought through what if the CDN links fail.and I scheduled meeting with a javascript expert. We discussed the solutions available. He said 99.9% of the time the linking to the robust CDNs shouldn't fail, if the CDN fails, the internet is broken and not the code. However Weblogo functions as a web application and can be installed locally. If the user is working with the local installation that is not connected to the internet, the CDN would fail. However a workaround would be downloading a version of the bootstrap and jquery dependencies with the weblogo code. Then we can try to keep that updated with the build pipeline to include an npm install command to keep the dependencies automatically updated. I went back to the main author with these recommendations.

Working IRL pt3

On another day, I "shadowed" him while he worked through the open issues list for WebLogo. It was interesting for me to see how he diagnosed some "issues" as a "problem between the screen and the keyboard" aka user error. Either the user didn't read the documentation or that the application simply isn't designed to meet the person's need. One outstanding issues was to address an edge case for tool that involved the math that powers the tool. I didn't exactly understand the approximation formula that was throwing the error for the user. The error involved an esoteric math formula that measured distributions. We looked at the formula and he researched how other people tried to execute the distribution in python. He eventually fixed the bug, but he would be the only person in the world that could fix the tool. I see the necessity of open source communities to get many people to understand the code. This also the case for pair programming. It's a frail company that is built on the a product that only one person understands.

Working IRL pt4

We met again to continue the discussion of addressing issues, and one recommendations was to add a new file type support for the meme format. He showed me how weblogo processes different file formats that biologists use. Processing a new format would be writing a new method on how to parse the data that is still saved as a .txt file but using a different "style" of content presentation. I may be able to help with this in the future.

Working IRL pt5

On another meeting, we tested the bug corrections he made with the test suite that he built. And we discovered that there is a new bug that occurred due to the github migration b/c the application's build process drew the date of the build from subversion build process. We corrected the error in one file, but whole code base needs to be checked for this change. I may be able to play around in the core weblogo code to correct this error. The build process may need to be completely rethought now that the code sits on github. He actually made a production mistake and made changes before running the test suite for the first time since migrating to github, so he's actually not sure if the the test suite is broken or the code is broken. As of this report, he may be still chasing the bug. He said the moral of the story for me is to always run the test suite (if someone took the time to build one) first before making any changes.

Working IRL pt6

At our last meeting, he also walked me through the task list for documenting the API, which I couldn't locate as it was buried in the init.py file. I have a better understanding of the API now I need to put in some extra hours on the weekends to catch up to meet the pencils down deadline. I was excited to be invited to look into the core python code in addition to the front-end assignment.

Putting in face time with a project's main author is rare luxury in GSOC or open source communities in general, but he was very gracious about giving me a path to keep learning and contributing to WebLogo while my computer was out for repair.