Preserving LVM Cache

While there are a lot of examples that describe how to set up a LVM cache on an SSD for a HDD backed storage, they mostly fail to describe an additional step needed to preserve the cache across a reboot on a Ubuntu system. The culprit is that the drivers needed to enable the LVM cache are not built into the kernel, nor available in the initrd. Therefore, these drivers need to be added to the initrd. Additionally, some cache Read more…

Internship – Week 4

This week, I mainly tied up loose ends and debugged. The issues were more fiddly than I thought they would be. Safari Issue #1 – Database Load Previously, during initialisation (log in), an API was used to estimate if there was enough storage to load the database in. This API wasn’t supported in Safari, so the app didn’t work on Safari. At the start of the week, it was a quick fix to remove the code using the API. However, Read more…

Photo by Fabian Grohs on Unsplash

Internship – Week 3

This week involved working on a mixture of not-too-big issues and features. The more substantial points I worked on includes: Access to Video Submission As I worked along displaying the video submission along with the marking sheet, some issues were revealed. The use of a YouTube video embed plugin limited us as responsive sizing wasn’t possible, neither was supporting videos from other non-YouTube platforms. Hence, after discussion, we decided to work with our initial method of displaying a plain marking Read more…

Internship – Week 2

After learning about Vue-related fundamentals, I started looking into the existing codebase for the app I will be working on. The app is used for controlling the flow and judging of a music competition. My current task focuses on the judging aspect of the competition, I will be tweaking the app to make it more user-friendly and suited for this year’s competition which will take place online due to COVID: Comment Display In previous years, judges watched the performances live, Read more…

Photo by Brooke Cagle on Unsplash
Photo by Brooke Cagle on Unsplash

Internship – Week 1

My main task for this internship will be to migrate an existing web application from Vue2 to Vue3, focusing on the front-end. The first week kicked off with learning some fundamentals: Version control – Git I’ve previously used Git across my university projects, and this was a great opportunity for me to build upon and fill in the gaps of my existing knowledge. I was able to further understand Git internals as well as less familiar operations such as re-basing. Read more…

Fixing “cURL error 60”

We have a number of sites that use webhooks, which were having trouble connecting to our back-end services. This problem only occurred recently as everything was working in the past. Searching for the specific error message, “cURL error 60: SSL certificate problem: unable to get local issuer certificate” gave a number of different fixes for PHP. Essentially, configuring PHP to search for trusted certs. Unfortunately, none of the fixes worked. No matter how much reconfiguration was done for PHP, it Read more…

Done and Dusted

This week was pretty stable and concluded with nearly finishing up all development related to the competition project. At the start of the week I altered my code to make all backend API calls pass through the Vuex store. This was done by making use of Vuex Actions, which is the only asynchronous method available in the Vuex store, and using it to perform the same operations that were performed in the Driver file from the Services folder. While this Read more…

Finishing Touches

This week was spent finalizing the react admin work from last week and making minor changes to the main application. For the forward linking between resources in react admin I had gone off on a journey of creating a whole new workflow based on systemically typed new components with custom functions that would allow me to reference one document to another. After consultation with Dr. Shawn I was told that this approach is not only difficult but also unnecessary as Read more…

Finally, Results!

Nothing trumps that feeling of seeing the results you so desire to see appear on screen. As the end of my internship period was approaching the stress started piling up on me, as nothing seemed to yield the results that I was looking for. However, this changed this week, with the use of MFCCs for timbre detection, the accuracy of the prediction of the model developed finally hit the peak that we were planning for. At the start of this Read more…

It’s a Wrap

At the start of this week I added a services folder and shifted all the backend API calls occurring in the Vuex store to pass through this services folder instead. It comprises of two files, the first of which holds all of the database methods called in our Vuex store, and the second contains global variables and functions that are used throughout different components in the code. This makes code management easier because instead of editing multiple copies of the Read more…

Cordova Updates

I spent the starting part of this week finalizing the QR code scanning and attendance taking. As per Dr. Shawn’s suggestion, I shifted from the usage of an in app Vuejs QR code scanner and instead added in the Cordova Camera plugin. The camera plugin was added along with a npm QR code decoding library which could pass the decoded JWT token to another npm library which subsequently verifies the secret from the QR code with another secret stored in Read more…