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

Spring Cleaning Part 3

It feels like there is no end to this. About 5 months have passed since I started working on this project, but even at this point there is still much to be done. Dr Shawn told me about the Pareto Principle, which I can relate to this project a lot. The formal definition states that 80% of effects come from 20% of the causes, for many events. It is also known to be the 80/20 principle. So why is it Read more

Regression via RInside, incremental import

Last week, I finished implementing the functions for calculating precision and recall values of judge scores. The final set of calculation that I need to implement is the regression of judge scores on categorical factors. First, I grouped up the judge scores according to venue, year, and judge_id. After grouping, each group would look something like this venue_id, year, judge_id, category_id, instrument_id, performance_id, absolute_score Penang, 2018, Judge-2, Under-12, Violin, 1, 80 Penang, 2018, Judge-2, Under-12, Violin, 2, 77 Penang, 2018, Read more

Photo by Giorgio Tomassetti on Unsplash
Photo by Tim Gouw on Unsplash

No Hard-Coding!

Here is a summary of what happened this week. The task that I am working on right now is the generation of reports for the Competition. I have faced a lot of problems while doing this task and I will briefly explain them later. Before that, just to let you all know that, my lecturer from University of Malaya visited me on 8th August. The purpose of the visit is for them to check on what I am doing and Read more

Starting on OTA

In our HID module, MD5 hash function was used for a number of reasons. Previously we were using wolfSSL API to compute the MD5 hash, now I have replaced these function with bearSSL substitutes. Although Harmony has a crypto library providing MD5 hash, but that in fact is just merely a wrapper around the wolfSSL API. We also need to generate RSA keys. The generation of device’s RSA key pair also rely on wolfSSL, but bearSSL do not support the generation Read more

Photo by Alexandre Debiève on Unsplash

Progress of Triggering the Simulation: Part 2

As I have stated last week, Dr Shawn recommended me with two ways to retrieve addresses where LOAD or STORE operation occur and to which module it happens. I will explain the two methods briefly. Method 1: When the simulation starts, get the map of variables and addresses that we set ourselves to make sure addresses are within a specific range. Meanwhile, get the ids of components on the schematic and sort them alphabetically. Plus, the content of the map Read more

Visualizations, Refactoring, and More

Last week, I was spent a lot of time exploring various options for writing the Rest API for returning a JSON string to the browser. I eventually came up with a template class (derived class of Wt::Resource)  to handle ‘queries’ to each table in the database, and made use of the Poco::JSON::Object for setting the key-value pairs of a JSON string. Thankfully, it took me just a few hours to implement this properly. My next task was to create some Read more

Photo by Giorgio Tomassetti on Unsplash

Spring Cleaning Part 2

So I’ve made a few more strides in my spring cleaning adventures this week. I finally managed to get all my cURL test scripts to passed, which was a boost of confidence for me. Also, any other things that I had conveniently hardcoded back then were at least moved to the server’s configuration file, or like for the project file extension (which is “.zip” for a Zip archive), since I was using it everywhere, I put that in a getter Read more

What I Know Is Just A Drop Of Water In The Ocean

So last week I had burst the quota of the maximum amount of emails we could send out a month and the quota hasn’t renew yet. So, this week I am focusing on my next task. What I have to achieve in task number 4 is to generate a final report for the competition. This report is going to be used by the organizers for archival purpose. Basically, the big picture of my task is to figure out a way Read more

Photo by rawpixel on Unsplash