Finalizing visualizations and C++ backend

This week, I continued working on the visualizations for displaying the results of analyses using the plotly.js library. Previously, I have already implemented bar charts for illustrating the percentile scores of each performance record. The bar chart looks fine but I was not very satisfied with it because I feel that a user with little background knowledge in statistics might not find it interesting at all. I decided to explore plotly.js library a little further to see if there are Read more…

Spring Cleaning Part 5

Nothing much was done for this week, except for the fact that project thumbnails are now obtained from the server’s REST endpoint instead of a hardcoded image path. The REST endpoint basically extracts the thumbnail from a specific project archive, that is fetched from the cache or from user’s storage if not in the cache. Then, the thumbnail would be searched for in the archive and if found, it is extracted to a temporary directory. The thumbnail is searched based Read more…

Photo by Fabian Grohs on Unsplash

Final Testing and Cleaning Up

Week 11, last week I managed to use Wtemplate function inside the template file linking with the information that I needed. I am really excited about this because previously I had problem linking the information into the another function due to some c++ structure and syntax issue. To be more specific, the function I am using right now is “handleUnresolvedVariable()” which can be found in the member function documentation of Wt::Wtemplate Class Reference. I have customized the function so that Read more…

Flash Mutex check & Firmware OTA update

In last week, bearSSL server in CORS thread and bearSSL client in OTA thread can already run simultaneously except the bitstream download & firmware download part as both of them write to flash memory at different addresses (the board gets rebooted). Therefore, a mutex (mutual exclusion) check is needed to make sure only one instance of flash is running over all threads at one time. Since the multithread process is provided by freeRTOS, we need to use mutex API of freeRTOS Read more…

Photo by Nicolas Thomas on Unsplash
Photo by Charles Deluvio 🇵🇭🇨🇦 on Unsplash

UART Demo

Last week, I talked about how I was able to run STORE and LOAD related functions which are methods of JavaScript Objects. Maybe I have not explained this part very well, so, I will review it first. I have added methods to an object from which all modules objects inherit. Thus, these methods will be shared among all the modules. Let’s say we have only two methods declared in our objects, store() and load(), which are defined accordingly: store(data){ // Read more…

Spring Cleaning Part 4

The race against time continues as I strive to complete the things that I need to do for the project for good by the end of this month. One of the things that I have done for this week was implementing a basic search and sort functionality for the projects as part of the UI. In recent versions of Vuetify, they added a few new components, one of which helps to deal with auto-completion for a search bar which is Read more…

Photo by Giorgio Tomassetti on Unsplash

Syncing data from CRS and CMS, more visualizations

This week, I spent some time working on CRS to implement a new REST API endpoint for exporting data in the form of TSV. This is needed for CAS because the existing export function in CRS does not export any information regarding registrants. Next, I implemented a new class, CRSTSVParser in CAS to handle the parsing of string content from the imported TSV. Since I had already implemented a parsing class, CMSTSVParser before this, I thought it might be a Read more…

Programming Is An Art (Second Approach)

This week is already my tenth week at Aeste which means that I have only two more weeks left for this internship. I am still struggling to write the code for the generation of report as “not-hard-coded” as possible. Previously, Dr Shawn suggested me to write a customize function to do that. After some researches and helps from my colleague Wen Yan, I’m able to call the function inside the template. However, the issues never end. For now, I have Read more…

Photo by Tim Gouw on Unsplash
Photo by Jon Moore on Unsplash

Known-key mode of BearSSL

Continue from last week’s progress, I was feeding in hard-coded time data that is valid into bearSSL engine to pass the certificate date verification so that an SSL connection can start. This is definitely not a proper way to obtain the time, I did that just to make sure the bearSSL client actually works with a valid time data, to characterize the problem. So now, I am to get the actual time data from a public global time server. No worries, the Read more…

JavaScript Objects

Last week, I have mentioned that triggering the simulation has been done. I could make the modules blink for now. However, the goal now is to simulate every component on its own which is the main purpose of the simulation in the first place. To be able to simulate each and every component differently, we need to run unique Store() and Load() functions of each component. The best way to do that is to implement OOP (Object-oriented programming). Thus, I Read more…

Photo by Charles Deluvio 🇵🇭🇨🇦 on Unsplash