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

Week 11: Completing the Mobile Layout

Weekly Review On the 5th of October, I had my weekly review with Dr. Shawn, where I showed him my current progress with the Sayembara website. He was satisfied with the new descriptions I provided for each feature—safe for a few adjustments that I could make if I have the time to do so. However, he assured me that the most important that I need to do to complete the project before my internship ends is to finalize the mobile Read more

Week 11: Starting the Migration from C++ to Go

This week, I started my new main task: migrating the backend of the registration system from C++ to Go (Golang). I’m not familiar with either language, so most of my week went into understanding the existing code and learning the basics of Go. Understanding the Existing System Monday was a light day, as I spent most of it travelling back after the weekend event in Johor Bahru. In the time I had left, I went through the C++ code again. Read more

Week 10: Finalizing the Five Webpages

Weekly Review On 28th September, I showcased the five new webpages to Dr. Shawn to assess them. There were a lot of revisions that needed to be done regarding the descriptions, and how close they were to the edge of the screen, so I noted those down. I also had to add a disclaimer at the bottom of the website that the illustrations used were from Freepik. Time for Editing! I started by editing the descriptions’ margins so that they Read more

Week 10: From Warning to Blocking and Starting a Golang Migration

This week, I built the warning system for shared judge logins and then reworked it into a blocking system based on Dr Shawn’s feedback. After that, I started on my backend project and helped Team Euroasia prepare for and run their event. Building the Warning System I started by implementing the warning system in the admin app. It listens for changes to judges’ marks in real time and flags any mark that the judge app has saved more than once, Read more

Week 9: Finding a Practical Way to Detect Shared Judge Logins

This week, I presented my idea for detecting shared judge logins to Dr Shawn, revised it based on the feedback, and submitted a final proposal. At the end of the week, I also helped at an event at Da Men Mall, which was the first event to use the code I have developed for the admin app. Rethinking My First Approach My first idea was to create a backend API endpoint that gets device or session IDs from another project, Read more

Week 7 & Week 8: Completing the Vitest Migration and Starting a New Detection Task

Over the past two weeks, I completed the migration of the project’s automated tests from Jest to Vitest and got the changes merged. After that, I started a new task: researching how to detect when two accounts log in under the same role. Week 7 began with a setback, as I was admitted to the hospital on Monday with severe stomach pain and spent the day receiving treatment and resting. Learning Vitest and Migrating the Tests When I returned on Read more

Week 9: Creating the Additional Webpages

Weekly Review On 22nd September, I showed Dr. Shawn the new layout of the website, as well as the two versions that had different ‘Why Choose Us?’ sections. Due to the amount of faces being shown, however, we decided to scrap the section for the better. Since the main page is now 90% finalized, he suggested that I should start working on the individual pages for each section of the ‘flowchart’. The Making of Each Webpage I started doing my Read more

Week 8: Perfecting Presentation

Weekly Review On 14th September, I showcased both versions of the website to Dr. Shawn, one with real photographs and the other with stock illustrations. He much preferred the version with real photographs, though he suggested to switch some photos around for better presentation. Working through Troubles One notable suggestion was the addition of a group photo with a lot of participants holding certificates with the judges in the ‘Why Choose Us?’ section. I had a bit of trouble doing Read more

Week 7: The Helpfulness of Assistance Tools

Weekly Review On 7th September, I presented my current progress to Dr. Shawn. He told me that instead of using the current technique that I was using, I should get assistance from artificial intelligence tools to help search for the images I needed instead. He also pointed out that I shouldn’t be so focused on trying to accommodate every layout, and instead focus on the most important one—which was the mobile layout, since more people access websites exclusively on their Read more

Week 6: Investigating and Fixing the Login Blank Page Bug

This week, I investigated and worked on a fix for a login UX bug that could leave users facing a blank page for a while. The issue was difficult to reproduce consistently, so my first step was to understand what happened during the login process. Initially, I suspected a network problem. I inspected the browser’s Network tab while running the application locally and noticed that, during a first-time login, the system sent a request to a database address containing /null/. Read more