C4G BLIS Dev Diary #2
In the past two and half weeks since the last update, I have been quite busy with other activities outside of work that have taken a fair amount of my time outside of BLIS, but I have still put a fair amount of effort in.
Pivot
In our first meetings of the semester, I asked our stakeholders what they thought of the setup process involing the bootstrap script I wrote and the documentation written by another group of students. Surprisingly (to me,) they told me that the setup process pretty much worked as expected and there were no big issues.
This threw off my plans for the blis-cloud-cli tool. The tool might still be useful, but if there is no actual user need for this tool, I don’t think my time is most wisely here.
Run & Debug
Georgia Tech is a Microsoft campus, so unfortunately this means that if I want a nice interface for email and editing documents, I have to use Windows or MacOS and not my preferred Ubuntu setup1. This is especially true for BLIS, which uses a portable WAMP stack (see previous dev diary for what that is.) My work last year involved moving BLIS to a Docker image, which will run easily on Linux. But this year I am working on some features that also need to work in the standalone Windows version.
To make my life a little easier I added a WINE launcher script and I am pleasantly surprised that it works very well!
Test Data
When making features for websites, it’s crucially important that you have a big set of test data that simulates something “close enough” to the data you would see in a real, production instance of your website or application. BLIS kind of has this baked in with some test databases, but the feature I am working on does uses a flow that has made it difficult to use the existing test data. I am still trying to figure out how to work around this.
Big Files
BLIS is old by most modern software standards, and it’s been contributed to by many graduate students over the years. I strongly believe in understanding and respecting what came before, rather than scrapping systems and completely rewriting them. In this case that means trying to understand files that are thousands of lines long with lots of branching and different languages and paradigms. This is making the feature work a more difficult than expected as even just finding where to insert code is a little different.
It’s hard to restrain myself when I encounter a file like that - I just want to tear it apart and fix it all. But, that approach has issues and can create an even bigger pile of spaghetti than what is already there. Instead, I want to go for a more modular approach by creating an “escape hatch” from the existing code into the new code, which will be formatted using more modern practices.
Feature Work
Something that BLIS users have wanted for a long time is the ability to export data to an Excel spreadsheet. This sounds easy on paper, but the aforementioned problems of large files and disjointed existing features make it difficult to know just what this will actually mean. To aid this, I took the advice of a teammate, who suggested making a small mockup of the feature and gathering feedback before starting work. I did this, and I believe I have enough to go on to get started.
- I can do these things on Ubuntu of course, but it’s a bit nicer to use the full-featured applications. Also, Outlook Web Access is always super buggy for me.