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…

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…

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…

MLPack Experiments

As the end of my internship period was approaching, I was asked to move from feature extraction to working on the machine learning models. For the past few weeks I have been working with multiple libraries to retrieve information from musical tracks, and it was time to test what I had so far on machine learning models. The library that was chosen for the implementation of those ML models was the C++ library Mlpack, which is a machine learning library Read more…

Android Development with Cordova

Cordova is a framework that allows you to use your existing Web Application code and wrap it in a system Webview to be deployed as a mobile application. This week was spent mainly cleaning up and modifying the original app and testing it out on the Android tablets using Cordova. The importance of having a responsive layout was highlighted in this stage of development as the application showed apparent inconsistencies in the design when deployed on the tablet as opposed Read more…

Key Detection & Dynamic Complexity

The work on the new project continued; however, slow-paced. Experimentation and gathering data was the highlight of the whole week, as I started working with a new audio processing library “Essentia”. Essentia is a C++ library used for the purpose of analyzing and processing audio signals and files. It has a wide reach over the set of algorithms it contains, which made for an interesting exploration over the course of the week. Since our testing of the tempo deviation last Read more…

Tempo Detection

Unlike the past few weeks, the progress in this one was a bit bumpy and slow. The work for most of this week was based on the research done last week and a continuation of it. While a certain amount of time was spent writing and implementing code, the biggest chuck of this week was concerned with research and attempting to understand the problems presented as hand. The first test performed on the data samples involved measuring how good the Read more…

Higher-order Functions and Automation

A trap that novice web developers can fall into is being overwhelmed by the plethora of tools and frameworks out there, thereby leading them to jump from one tool to another rather than diving in deep with any particular one to discover and utilize it to its full prowess. Having gone back to my original application I realized there were a number of improvements that could be made to make the overall experience better. One such improvement was with regards Read more…

Reacting to React

This week went past fairly quick and smooth and I had the opportunity to delve in a little deeper into the React Ecosystem when configuring the components on our admin system dashboard. At the start of the week I managed to get the Admin system packaged and bundled with Electron to make it distribution ready for cross platform installation. Since I packaged Electron using Electron builder I had the chance to play around with the package.json file and see firsthand Read more…