summaryrefslogtreecommitdiff
path: root/data/events
diff options
context:
space:
mode:
Diffstat (limited to 'data/events')
-rw-r--r--data/events/infocomm.md86
-rw-r--r--data/events/noai.md45
-rw-r--r--data/events/noi.md24
-rw-r--r--data/events/nytc.md68
-rw-r--r--data/events/tinkertanker.md66
5 files changed, 282 insertions, 7 deletions
diff --git a/data/events/infocomm.md b/data/events/infocomm.md
new file mode 100644
index 0000000..5083c39
--- /dev/null
+++ b/data/events/infocomm.md
@@ -0,0 +1,86 @@
+---
+title: Ngee Ann Secondary School Infocomm (Media Creation) Club CCA
+type: CCA
+---
++-+-+-
+
+[← Return to About Me](/about/)
+# Vice President of Infocomm (Media Creation) Club CCA {: .heading }
+
+{{{
+
+![AV duty, Class of 2026 and Class of 2025.](/assets/images/education/events/av.jpg)
+{: .flex-flex }
+
+![AV duty, Class of 2026 and Class of 2025.](/assets/images/education/events/av.jpg)
+{: .flex-flex }
+
+}}}
+
+The Infocomm (Media Creation) Club of Ngee Ann Secondary School is a CCA for students interested in media creation such as video editing, animation, and audio visual systems.
+
+For 2025 (and 2026), I've been chosen as one of the vice presidents for the Infocomm (Media Creation) Club CCA. Here are some things that we've done as a CCA, and some valuable things I've learnt from this journey.
+
+-+-+-+
+
++=+=+=
+
+# 2025–2026 CCA Accomplishments
+
+Here are some of the things that our CCA has accomplished, achieved, or volunteered at.
+## AV Operator for Major School Events
+
+{{{
+![](path/to/file)
+
+![](path/to/file)
+}}}
+
+
+
+## Values-in-Action Project @ Tampines East Community Club
+
+{{{
+![](path/to/file)
+
+![](path/to/file)
+}}}
+
+## MINDS Charity Car Wash Promotional Video Volunteering
+
+Read more [here](/video/minds/).
+
+## Official Video Projects for School
+
+Our CCA has been trusted by Ngee Ann Secondary School to create high-quality videos for various school events, usually for outreach promotional purposes. We often have passionate members that are willing to work on different projects the school has asked us to do. These projects include:
+
+* Value Creators of the Community Symposium Video
+* [2025 NAS Open House Video](/video/openhouse/)
+
+I have also led the production of a few of our video projects before, together with other presidents of the CCA.
+
+## Founder's Day Certificate of Commendation for Outstanding Community Service Recipient
+
+
+
+-+-+-+
+
++=+=+=
+
+This leadership opportunity has undoubtedly been such an invaluable experience for me, and I've learnt so much from it. Here are some of the things that I've learnt throughout the journey.
+# Personal Reflections
+
+## Service-first Leadership
+
+This part is more or less about me finding out what kind of leader I want to be. This leadership opportunity has made me realise this.
+
+Empowerment Empathy Growth Stewardship
+
+Of course, I also believe that this style of leadership may not work for all circumstances. In some situations, a more assertive and autocratic approach may be needed, and as a leader, one should be confident enough to take the actions for the progress of the team.
+
+## Mentoring by Example
+
+Beyond service, ultimately, I also want to be able to uplift my team and be able to contribute to their self-improvement.
+
+
+-+-+-+ \ No newline at end of file
diff --git a/data/events/noai.md b/data/events/noai.md
index e69de29..844814e 100644
--- a/data/events/noai.md
+++ b/data/events/noai.md
@@ -0,0 +1,45 @@
+---
+title: NOAI 2026
+type: Achievement
+---
++-+-+-
+
+[← Return to About Me](/about/)
+# National Olympiad in Artificial Intelligence 2026 { .heading }
+
+{{{
+<div id="flex-300">
+<img alt="Screenshot of my JupyterLab AI notebook thingy" src="/assets/images/education/events/ai_jupyter.png" style="max-width: 100%">
+</div>
+
+NOAI (Singapore) relatively new annual programming competition about AI programming, covering Machine Learning, Deep Learning/Neural Networks, Computer Vision, and Natural Language Processing. A new initiative by AI Singapore and NTU to forge young AI talents in Singapore.
+{ .flex-flex }
+
+}}}
+
+For quite a while, I've been really curious of how AI, more specifically machine learning and neural networks work. I've seen people experimenting that for image recognition and sometimes in games even. I've always wanted to try to code something AI-related and experiment with it too, but never did. As we all know, AI has now become incredibly relevant in today's tech. When my teacher told me about NOAI this year, I took it as an opportunity to finally start experimenting with AI programming like machine learning and beyond!
+
+When I participated in NOAI this year, there were two rounds. The first round was the qualification round which was a 300 questions MCQ test about AI programming including theory questions and debugging. The second round was the final round consisting of a 20 question MCQ test and 5 programming tasks.[^1] This year, I advanced into the final round and attained the bronze medal, which was pretty cool.
+
+Here are some things I've learnt.
+
+[<i class="fa-solid fa-download"></i> Download my certificate](path/to/file)
+{: .info-box }
+
+-+-+-+
+
++=+=+=
+
+# Knowledge: AI programming
+
+
+
+-+-+-+
+
++=+=+=
+
+///Footnotes Go Here///
+
+-+-+-+
+
+[^1]: [https://aisingapore.org/talent/national-olympiad-in-artificial-intelligence/](https://aisingapore.org/talent/national-olympiad-in-artificial-intelligence/) \ No newline at end of file
diff --git a/data/events/noi.md b/data/events/noi.md
index 43fdd75..9cb63c0 100644
--- a/data/events/noi.md
+++ b/data/events/noi.md
@@ -2,10 +2,28 @@
title: "NOI 2026 (and 2025)"
type: "Achievement"
---
-
+-+-+-
-NOI 2026 (and 2025)
-{ .heading }
+[&larr; Return to About Me](/about/)
+# National Olympiad in Informatics 2026 (and 2025) { .heading }
+
+NOI (Singapore) is an annual, and well, prestigious, programming and algorithmic problem-solving contest for secondary school to junior colleges and polytechnic students in Singapore.
+
+I was first exposed to competitive programming last year when I was in Secondary 3 by my Secondary 4 scholar senior. I told myself, “Sure, why not? Sounds quite interesting.”, and it was!
+My senior also invited me to participate in NOI 2025, which I did. I didn’t get into the finals, which was very okay to me back then.
+
+I’m still continuously learning algorithmic problem-solving/competitive programming. This year, I decided to participate again and got into the finals! I even got the bronze medal, which was a nice surprise!
+
+Here are some things I’ve learnt.
+
+[<i class="fa-solid fa-download"></i> Download my certificate](https://files.altafcreator.com/school/certs/noi2026.pdf)
+{: .info-box }
-+-+-+
+
++=+=+=
+# Algorithms, of course.
+
+
+
+-+-+-+ \ No newline at end of file
diff --git a/data/events/nytc.md b/data/events/nytc.md
index aa74308..d8daae1 100644
--- a/data/events/nytc.md
+++ b/data/events/nytc.md
@@ -6,7 +6,7 @@ type: Achievement
+-+-+-
[&larr; Return to About Me](/about/)
-# National Youth Tech Championship 2025 { .heading }
+# National Youth Tech Championship 2025 {: .heading }
<div class="shadow-filter" markdown="1">
![National Youth Tech Championship 2025 banner, Season 3: AI Drone Derby.](https://www.imda.gov.sg/-/media/imda/images/content/news-and-events/upcoming-events/2025/nytc-2025/national-youth-tech-championship-2025-banner-desktop.webp)
@@ -20,11 +20,11 @@ Visit their official site [here](https://www.imda.gov.sg/activities/activities-c
National Youth Tech Championship (NYTC) is the premier tech competition in Singapore organised jointly by IMDA and Google for Infocomm (and Robotics) CCA students.
-<div class="flex-container flex gap-row" markdown="1">
+{{{
<div class="flex-flex" markdown="1">
<div class="shadow-filter" markdown="1">
![July 18 2025 Issue of The Straits Times. Page A18, section Singapore, Headline: "ROBOT WARS: AI drones, land rover robots battle it out in youth tech championship"](https://files.altafcreator.com/media/ROBOT%20WARS_cropped.png)
-</div>
+}}}
Page A18, the headline page of Singapore section of July 19 2025 Issue of The Straits Times. Courtesy of The Straits Times.
{: .img-caption }
@@ -45,7 +45,7 @@ Here are some things I've learnt along the way.
+=+=+=
-# Problem Solving, of course.
+# Adapting and Solving Problems
The night before the final day we were testing and refining our drone’s code. A usual occurrence for these past few weeks. Drones have this very annoying issue of being quite unreliable. Major issues include where they drift around while idle, and that movement commands are not consistent. Despite the documentation saying that the input parameter for movement commands are in centimetres, in practice it doesn’t seem like it. We’ve tried recalibrating it multiple times, but the issue seems to persist. 
@@ -55,7 +55,67 @@ That is where we decided to run some tests and experiments. From that, we found
In fact, it worked very well during the actual finals! We got some pretty good scores for 2 of the obstacles, and somehow a full score for one obstacle about pushing balls around (I’ll elaborate on this more).
+## Lessons Learnt
+
+So, this moment did teach me the lesson of how to adapt properly, which is a form of problem solving.
+
+Generally, the process of problem solving is pretty iterative. First steps usually involve observing the current situation, then looking more into the details, and come up with possible solutions based on the details we know.
+
+So, in the context practical engineering and problem solving, adaptation means finding out how things really work and adjust our actions based on that. We can do this by testing true behaviour multiple times by isolating one variable at a time. Hopefully from that, relationships between other variables can emerge. Then, we can finally adjust our solutions from real-world, empirically tested behaviour that will work better.
+
# Simple solutions are often good enough
+{{{
+
+Drawing here
+
+On the finals, there was this one obstacle where we had to use drone's downwash (that is, the wind currents created by the drone's propellers) to push coloured balls into the correct colour-coded holes. There were three balls—red, yellow, and blue—and these balls were placed on top of a square platform 1.7 m-wide on each side. I think the main challenge of this obstacle is two of the balls need to go diagonally across the whole platform to get into its correct hole, as seen in my beautiful drawing.
+{: .flex-flex }
+
+}}}
+
+Our code was very simple.
+
+```{ .py .long-code }
+# ...
+ uapi.single_fly_takeoff()
+ uapi.single_fly_Qrcode_align(0, 0)
+ uapi.single_fly_up(int(70 / CM))
+ time.sleep(2)
+ uapi.single_fly_left(int(70 / CM))
+ uapi.single_fly_forward(int(75 / CM))
+ uapi.single_fly_down(int(40 / CM))
+ uapi.single_fly_up(int(40 / CM))
+ uapi.single_fly_back(int(75 / CM))
+ time.sleep(3)
+ uapi.single_fly_right(int(70 / CM))
+ uapi.single_fly_right(int(70 / CM))
+ uapi.single_fly_forward(int(85 / CM))
+ uapi.single_fly_down(int(40 / CM))
+ uapi.single_fly_up(int(50 / CM))
+ uapi.single_fly_back(int(85 / CM))
+ time.sleep(2)
+ uapi.single_fly_left(int(60 / CM))
+ uapi.single_fly_Qrcode_align(0, 0)
+ uapi.single_fly_up(15)
+ uapi.single_fly_forward(int(120 / CM))
+ uapi.single_fly_down(int(40 / CM))
+ uapi.single_fly_up(int(40 / CM))
+ uapi.single_fly_back(int(65 / CM))
+
+ uapi.single_fly_touchdown()
+```
+<i class="fa-solid fa-code"></i> Source: [<i class="fa-brands fa-github"></i>/leejiaq/nytc/2.2.py](https://github.com/leejiaq/nytc/blob/bf147375b8c2810f188a451dcfd51aecc599621a/2.2.py#L39-L64)
+{: .img-caption}
+
+In fact, it was just a hard-coded step-by-step movement instructions based on the given obstacle measurements. Fly up, left, forward, down, up, go back, right, forward, down, up, go back, forward, down, up, and you're done. The only slightly more complicated feature we used is aligning to QR code at the start. Yet somehow, we scored full credits on this obstacle, meaning that we successfully moved all three balls into the correct holes.
+
+If I may compare, when I talked to other teams, they described that their code involves much more complicated systems/methods, like aligning the drone to the ball to minimise drifting errors, or using the detected drone speed to calculate distance travelled. To be fair, their code may actually work much better in a wider array of circumstances, unlike our code where it's only written for this specific case. Yet, if my memory doesn't fail me, we were the only ones who got a full score for this obstacle, somehow.
+
+## Lessons Learnt
+
+So, I guess from here, we can learn that we don't always need to come up with the best and most fancy solutions. In some cases, especially when we need to come up with a solution of a one-off problem, a simple solution is good enough. But again, it depends, simple solutions that lack complexity usually can only do well in the circumstance it was developed for. Fancier and more complex solutions can be more comprehensive but may introduce unnecessary overhead for simpler circumstances.
+
+It's really a trade-off between our time and energy and the needed results and the nature of the problem. One would probably be better off spending less time creating quick and straightforward code for a problem they only need to solve once than writing a very sophisticated solutions. Of course, for higher-stakes situations like where a solution needs to be pushed into production, where there will be a wide variety and complexity of situations that our solution will be subjected to, it is best to come up with the most sophisticated solutions that are more adaptive and reliable.
-+-+-+ \ No newline at end of file
diff --git a/data/events/tinkertanker.md b/data/events/tinkertanker.md
new file mode 100644
index 0000000..d49a131
--- /dev/null
+++ b/data/events/tinkertanker.md
@@ -0,0 +1,66 @@
+---
+title: Internship at Tinkertanker
+type: Internship
+---
++-+-+-
+
+[&larr; Return to About Me](/about/)
+# 2025 End of Year Internship at Tinkertanker {: .heading }
+
+{{{
+
+![Image of me and my friends at Tinkertanker](path/to/image.png)
+{: .flex-flex }
+
+![Internship project](path/to/image.png)
+{: .flex-flex }
+
+}}}
+
+In November 2025, a couple of my friends and me was granted the opportunity from the school to attend a 2-week Computing-related Internship (since we all took O-Level Computing as a subject). This internship was with Tinkertanker Pte Ltd, a Singaporean technology and education company that teaches electronics, software, and tech in general, and also builds (and sells) cool tech-related stuff. You can visit their website at [https://tinkertanker.com/](https://tinkertanker.com/).
+
+-+-+-+
+
++-+-+-
+
+# Personal Reflections
+
+
+
+## Taking the Initiative
+
+This internship has shown me that you should take the initiative more, especially if your intention is to improve something or help others.
+
+Initially, we thought that Tinkertanker would give us tasks for us to do throughout the whole internship. Instead, we realised that Tinkertanker actually encourages us to just create things that we want, and they expected us to take the initiative. If we have an idea of something, they encouraged us to discuss about it with them in which they are very happy to do so, which is really cool.
+
+
+
+* See problems or things you want to do or maybe you want to help
+* Ask
+* Then do! Everyone happy. Even did this for LaundryWeb
+# Projects I developed
+
+I've contributed to quite a few projects during my time there. If you want to see more details of the major projects I contributed to/made, click one of the projects below!
+
+<div class="info-box flex-container gap">
+<div class="flex full-img-card gallery-card"
+ style="background-image: url(/assets/images/game-hero/esp32-blockly.png);">
+ <a href="https://github.com/altaf-creator/droid-esp32-blockly" class="fill-div gradient-overlay">
+ </a>
+ <div class="img-card-titlebox">
+ <span class="img-card-subtitle"><i class="fa-solid fa-briefcase"></i> Internship</span>
+ <span class="img-card-title">ESP32 Blockly</span>
+ </div>
+ </div>
+<div class="flex full-img-card gallery-card"
+ style="background-image: url(/assets/images/game-hero/tinkertanker-examples.png);">
+ <a href="https://altaf-creator.github.io/tinkertanker-examples/" class="fill-div gradient-overlay">
+ </a>
+ <div class="img-card-titlebox">
+ <span class="img-card-subtitle"><i class="fa-solid fa-briefcase"></i> Internship</span>
+ <span class="img-card-title">Tinkertanker Web Dev</span>
+ </div>
+ </div>
+</div>
+
+-+-+-+ \ No newline at end of file