Hi! I’m Harvey Lim, a 3rd-year student at Aalto University. I also go by “rv” or “shzhe02” online.
This website is for documenting my personal projects and general blogging.
Hope you find something interesting!
Hi! I’m Harvey Lim, a 3rd-year student at Aalto University. I also go by “rv” or “shzhe02” online.
This website is for documenting my personal projects and general blogging.
Hope you find something interesting!
This is going to be a really long, detailed report about my exchange semester at NUS. Some parts are just about administrative processes and paperwork, which may be boring, so feel free to skip and read as needed. I’m simply going into a lot of detail as I myself wished I had known everything about what to expect before my exchange. Also, get ready to remember a whole lot of abbreviations. ...
Unless stated otherwise, checking off a learning goal involves completing a project using the thing that is learnt. Tech-related General Launch 1 project Launch 2 projects Launch 3 projects Create an app that includes some kind of chat functionality Create an IoT enabled device (Alarm clock with wireless connectivity?) Web Development General Set up a reverse proxy Run multiple services on one machine. Frontend Svelte Vue HTMX Hugo templates Backend ScyllaDB Utilize Pocketbase to develop an app Learn about database security and encryption Build a basic backend in Go Build a basic backend in Rust Automation Tools Create a backend that can be deployed with a single docker/podman compose file Learn to use GitHub actions for CI Use CD to automatically create releases Embedded Design and commission a PCB relying on a RP2040 board Design and commission a PCB relying on a nRF52840 board Design and commission a PCB relying on an ESP32S3 board Design and commission a PCB relying on a ESP32C6 board Implement a parallel adder in SystemVerilog Implement an ALU in SystemVerilog Design a simple CPU in SystemVerilog Simulate a SystemVerilog design using a Verilog emulator (like Verilator) Low-level Programming Microcontrollers Learn to write bare-metal code using C++ Learn to write bare-metal code using Rust Learn how USB works GPU Programming Draw a triangle using Vulkan/Vulkano Use GLSL to implement a shader Implement any algorithm on the GPU using Vulkan Learn about Vulkan Kompute
Update: Completed 42/60, 70% Food Tsukemen Gyudon Ramen Onigiri Cup ramen Bento Karaage Katsudon Japanese curry Takoyaki Conveyor belt sushi Okonomiyaki Grilled fish Sashimi Onsen egg All-you-can-eat KFC Any buffet Gyoza Wankosoba Chawanmushi Energy jelly Sukiyaki Drinks Matcha Experiences Take a shinkansen Eat an ekiben on a shinkansen Take a train Get a meal from a konbini Get onigiri from an onigiri store (not konbini) Sleep in a capsule hotel Use a foot bath Use a bidet Karaoke Walk around a city park Hike up Takao-san (Mt. Takao) Get corn soup from a vending machine (Pokka) Buy a stamp Stamp a notebook using public stamps Places Tokyo Shibuya crossing Shinjuku station Akihabara Teamlab planets Sukiya Matsuya Yoshinoya 7-eleven Lawsons FamilyMart Discount store Stationary shop Yodabashi camera Uniqlo (in Tokyo) Daiso Any 100 yen store Mega Don Quijote Godzilla 2D cafe Shinokubo Snoopy cafe (Tokyo) Nara deer park Round 1 Entertainment (Osaka)
Update: Completed 59/67, 88% Food Nasi lemak Mee goreng Roti prata Roti canai Fried rice Chicken rice Ramen Biriyani Rice covered with cheese Sushi (of any kind) Bibimbap Cup ramen (of any kind) Satay Dim sum Xiao long bao Tempura Maggi goreng Curry (of any kind) Chicken curry (of any kind) with rice Katsudon Fried chicken (KFC) Fried chicken (Jollibee) Duck rice Ban mee (any dish) Chee cheong fun Asam laksa Rendang (of any kind) Kuih (of any kind) Pei dan juk Otak-otak Char kway teow Kaya toast + half-boiled egg Ais kachang Pizza (of any kind) Mushroom soup (the canned kind?) KBBQ Drinks Milo Horlicks Barley Chrysanthemum tea (specifically Yeo’s) Winter melon tea (specifically Yeo’s) Teh tarik Teh C 100 Plus Lychee drink (with actual lychee) Boba Experiences Take the MRT Take a bus Take every MRT line Visit every MRT station Go to JB via Woodlands Checkpoint Have sushi from a conveyor belt Buy pastries from a bakery Roam around Changi/Jewel Fly out of any Changi terminal except T1 Take Changi’s skytrain Places Go to Marina Bay Go to Sentosa Go to a Shopping mall (any) Go to a Daiso Go to a Popular Go to a Uniqlo Go to Woodlands checkpoint Go to Johor Bahru Go to Kuala Lumpur Go to Botanic gardens Go to a Mamak stall (any)
There were many things I wish I did differently for my exchange, so I’ve decided to break down everything I would do or wish I’d known if I were to do this all over again. Pre-departure Glossary: SEA: Southeast Asian EA: Eastern Asian AC: Air Conditioning OSE: Offsite Enrollment IPA: In-principle Approval NIR: National Immunisation Registry Course Selection Check NUSMods for course reviews by previous local students to get a grasp of what the courses are like. If you want to travel: Pick courses that have no midterms (then you’re free to travel for ~11 days during recess week) Recess week is good for travelling to Australia + other SEA countries. EA countries (China, Japan, Korea) are likely near 0 degrees, so I’d save that for reading week/exam week. Pick courses that have no final exam (then you’re free to travel for ~25 days) Reading week + exam week is great for travelling to EA countries, but try avoiding Golden Week to avoid crowds. Try cramming your courses into consecutive such that you will have 3-day weekends (or even better, 4-day weekends). If you aim to live in a hall or a house, avoid selecting courses with evening lectures (6-9 PM), because they are likely to interfere with hall/house events. If you are aiming for PGPR or UTR, then there won’t be many events to worry about skipping. On-Campus Accommodation At NUS, there are three types of accommodations: ...
Warning: I am not a UI/UX designer. I haven’t learnt anything formally, so my method of designing interfaces is essentially: Make sure I can figure out how to use it fairly intuitively Make it not look like an eyesore Design 0.1: Paper Sketch As I am not very familiar with design software, I decided to go with my most comfortable design medium: pen and paper. Here’s my initial design. (Pardon the illegible handwriting) ...
When I tried to use habit trackers, they actually worked for the first couple weeks. However, I soon noticed a few shortcomings with some habit trackers: Gamifying habit tracking doesn’t seem to work for me, as it abstracts away the actual habit a bit too far away. If my goal is to play a game, doing the habit itself feels like a chore. I want my habit tracker to be very in-touch with reality. Habit trackers with friend features don’t work very well for me because my competitive spirit ends up getting in the way. If I feel like I’m falling behind, I’d want to quit, and if I’m too far ahead, it’d get boring and I’d also quit. Or I might be tempted to skip the habit altogether to get easy points and win against others. I feel like habits should be an individual thing. Some habits are easier to others, and some are harder for others. It’s fundamentally unfair for a habit to lead to a standardized score which can be compared with others. Some habit trackers lack good visual representation for off-days. For example, strength training is something that should not be done on a daily basis as that may put too much strain on the body. However, with some habit trackers, it feels like I’m breaking a streak when I’m taking a rest day. I feel it’s important to recognize when I’m supposed to not do the habit, but still have it count somehow. Since habit trackers are basically a phone-only thing, with the only method of recognizing a habit as complete being me manually tapping a button, there is a lot of friction when it comes to habit tracking. What I mean by friction is that I need to go out of my way to mark a habit as complete, even though the act of completing the habit isn’t actually part of performing the habit. For example, tapping the checkmark on my phone to signify that I have done the laundry doesn’t actually contribute to doing the laundry. An attempt to fix the habit tracker The main purpose of the Habit Management System (HMS) is to create a new type of habit tracker that reduces the amount of friction when it comes to marking habits as complete, while having a clean user interface that addresses the remaining non-friction-related points mentioned above. My idea to achieve this involves a habit tracking app, similar to the ones that already exist, but with an IoT interface on the cloud side that allows sensor modules to automatically check off something as done. ...
Course Selection At Aalto, our course selection process simply involves checking Sisu (our course management system) and registering for courses during their registration period. They rarely check for prerequisites, and it’s almost guaranteed to get any course you need. Registering for exercise sessions is done alongside the course registration; you simply select which exercise group you wish to be in as part of the course registration process. It sounds a little complicated, but in reality, it involves ticking a few checkboxes before hitting the “register” button. ...
Landing After landing in Singapore, I went to pick up my SIM card from one of Singtel’s pickup points. Upon picking up my SIM, the person working at the kiosk also offered to sell me a NETS card. Transport/General-use Prepaid Cards Singapore has a couple prepaid cards they use. These cards are usually used for public transport, but some of the types of cards can be used elsewhere for paying for other things. The two primary ones used are EZ-Link cards and NETS cards. Both can be used for public transport as well as for purchases, but NETS cards are much more accepted as a general payment method compared to EZ-Link cards. ...
Applying In January 2023, I applied to go on an exchange semester at the National University of Singapore (NUS) for spring of 2024. It was a all-in decision, as in that if I didn’t get the opportunity, I wouldn’t go on exchange at all. Luckily, my application was successful and I was nominated to go on the exchange by my home university, despite NUS being the second most applied to exchange destination at Aalto. ...